[SCM] libav/experimental: aaclatm: Eliminate dummy packets due to muxlength calculation.
siretart at users.alioth.debian.org
siretart at users.alioth.debian.org
Sun Jun 30 17:18:42 UTC 2013
The following commit has been merged in the experimental branch:
commit ebb7f7de8298b27326f6525859e1fa8a7ceaae22
Author: Alex Converse <alex.converse at gmail.com>
Date: Sun Nov 7 03:05:12 2010 +0000
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
diff --git a/libavcodec/aacdec.c b/libavcodec/aacdec.c
index ab3a49a..c6e5951 100644
--- a/libavcodec/aacdec.c
+++ b/libavcodec/aacdec.c
@@ -2310,9 +2310,9 @@ static int latm_decode_frame(AVCodecContext *avctx, void *out, int *out_size,
if (get_bits(&gb, 11) != LOAS_SYNC_WORD)
return AVERROR_INVALIDDATA;
- muxlength = get_bits(&gb, 13);
+ muxlength = get_bits(&gb, 13) + 3;
// not enough data, the parser should have sorted this
- if (muxlength+3 > avpkt->size)
+ if (muxlength > avpkt->size)
return AVERROR_INVALIDDATA;
if ((err = read_audio_mux_element(latmctx, &gb)) < 0)
--
Libav/FFmpeg packaging
More information about the pkg-multimedia-commits
mailing list