Unverified Commit bcfe0f68 authored by Felicia Lim's avatar Felicia Lim Committed by Jean-Marc Valin

Multistream encoder: allocate an extra byte per stream for 100 ms

Signed-off-by: Jean-Marc Valin's avatarJean-Marc Valin <jmvalin@jmvalin.ca>
parent e564cc50
......@@ -915,6 +915,9 @@ static int opus_multistream_encode_native
/* Smallest packet the encoder can produce. */
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)
{
RESTORE_STACK;
......@@ -1036,6 +1039,9 @@ static int opus_multistream_encode_native
curr_max = max_data_bytes - tot_size;
/* Reserve one byte for the last stream and two for the others */
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);
/* 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;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment