bluez5: allow codecs to produce multiple packets from same data

Codecs may need to fragment a single encoder frame across multiple
packets that are sent consecutively.

Allow codec->encode() to set need_flush=NEED_FLUSH_FRAGMENT, so that
sink should immediately call start_encode + encode with NULL input data,
to produce the next packet.

Previously, other return values than need_flush=1 were unused, so no
need to bump codec ABI for this.
This commit is contained in:
Pauli Virtanen 2022-04-30 20:54:32 +03:00
parent 0cab700c06
commit 3d4eafcb0f
7 changed files with 66 additions and 6 deletions

View file

@ -493,7 +493,7 @@ static int codec_encode(void *data,
return -EINVAL;
*dst_out = out_args.numOutBytes;
*need_flush = 1;
*need_flush = NEED_FLUSH_ALL;
/* RFC6416: It is set to 1 to indicate that the RTP packet contains a complete
* audioMuxElement or the last fragment of an audioMuxElement */