Commit ebb7f7de authored by Alex Converse's avatar Alex Converse

aaclatm: Eliminate dummy packets due to muxlength calculation.

Muxlength does not include the 3 bytes of AudioSyncStream() before the
AudioMuxElement(). If these three bytes are not accounted for the last three
bytes of the LATM packet are sent back to the decoder again.

Fixes issue244/mux2.share.ts

Originally committed as revision 25685 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent c77549c5
...@@ -2310,9 +2310,9 @@ static int latm_decode_frame(AVCodecContext *avctx, void *out, int *out_size, ...@@ -2310,9 +2310,9 @@ static int latm_decode_frame(AVCodecContext *avctx, void *out, int *out_size,
if (get_bits(&gb, 11) != LOAS_SYNC_WORD) if (get_bits(&gb, 11) != LOAS_SYNC_WORD)
return AVERROR_INVALIDDATA; return AVERROR_INVALIDDATA;
muxlength = get_bits(&gb, 13); muxlength = get_bits(&gb, 13) + 3;
// not enough data, the parser should have sorted this // not enough data, the parser should have sorted this
if (muxlength+3 > avpkt->size) if (muxlength > avpkt->size)
return AVERROR_INVALIDDATA; return AVERROR_INVALIDDATA;
if ((err = read_audio_mux_element(latmctx, &gb)) < 0) if ((err = read_audio_mux_element(latmctx, &gb)) < 0)
......
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