[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