mirror of
https://github.com/xiph/opus.git
synced 2025-06-07 07:50:51 +00:00
Multistream encoder: allocate an extra byte per stream for 100 ms
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
This commit is contained in:
parent
e564cc509d
commit
bcfe0f68e3
1 changed files with 6 additions and 0 deletions
|
@ -915,6 +915,9 @@ static int opus_multistream_encode_native
|
||||||
|
|
||||||
/* Smallest packet the encoder can produce. */
|
/* Smallest packet the encoder can produce. */
|
||||||
smallest_packet = st->layout.nb_streams*2-1;
|
smallest_packet = st->layout.nb_streams*2-1;
|
||||||
|
/* 100 ms needs an extra byte per stream for the ToC. */
|
||||||
|
if (Fs/frame_size == 10)
|
||||||
|
smallest_packet += st->layout.nb_streams;
|
||||||
if (max_data_bytes < smallest_packet)
|
if (max_data_bytes < smallest_packet)
|
||||||
{
|
{
|
||||||
RESTORE_STACK;
|
RESTORE_STACK;
|
||||||
|
@ -1036,6 +1039,9 @@ static int opus_multistream_encode_native
|
||||||
curr_max = max_data_bytes - tot_size;
|
curr_max = max_data_bytes - tot_size;
|
||||||
/* Reserve one byte for the last stream and two for the others */
|
/* Reserve one byte for the last stream and two for the others */
|
||||||
curr_max -= IMAX(0,2*(st->layout.nb_streams-s-1)-1);
|
curr_max -= IMAX(0,2*(st->layout.nb_streams-s-1)-1);
|
||||||
|
/* For 100 ms, reserve an extra byte per stream for the Toc */
|
||||||
|
if (Fs/frame_size == 10)
|
||||||
|
curr_max -= st->layout.nb_streams-s;
|
||||||
curr_max = IMIN(curr_max,MS_FRAME_TMP);
|
curr_max = IMIN(curr_max,MS_FRAME_TMP);
|
||||||
/* Repacketizer will add one or two bytes for self-delimited frames */
|
/* Repacketizer will add one or two bytes for self-delimited frames */
|
||||||
if (s != st->layout.nb_streams-1) curr_max -= curr_max>253 ? 2 : 1;
|
if (s != st->layout.nb_streams-1) curr_max -= curr_max>253 ? 2 : 1;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue