[FFmpeg-cvslog] avformat/ac3dec: Use avpriv_ac3_parse_header2()

Michael Niedermayer git at videolan.org
Sat Mar 1 02:13:26 CET 2014


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Sat Mar  1 01:56:25 2014 +0100| [0c9dd939cdd16d3353382e06684b8d41fc4a3ce4] | committer: Michael Niedermayer

avformat/ac3dec: Use avpriv_ac3_parse_header2()

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=0c9dd939cdd16d3353382e06684b8d41fc4a3ce4
---

 libavformat/ac3dec.c |   17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/libavformat/ac3dec.c b/libavformat/ac3dec.c
index 3db2339..58ef44d 100644
--- a/libavformat/ac3dec.c
+++ b/libavformat/ac3dec.c
@@ -28,7 +28,7 @@ static int ac3_eac3_probe(AVProbeData *p, enum AVCodecID expected_codec_id)
 {
     int max_frames, first_frames = 0, frames;
     const uint8_t *buf, *buf2, *end;
-    AC3HeaderInfo hdr;
+    AC3HeaderInfo *phdr = NULL;
     GetBitContext gbc;
     enum AVCodecID codec_id = AV_CODEC_ID_AC3;
 
@@ -55,27 +55,28 @@ static int ac3_eac3_probe(AVProbeData *p, enum AVCodecID expected_codec_id)
                 init_get_bits(&gbc, buf3, 54);
             }else
                 init_get_bits(&gbc, buf2, 54);
-            if(avpriv_ac3_parse_header(&gbc, &hdr) < 0)
+            if(avpriv_ac3_parse_header2(&gbc, &phdr) < 0)
                 break;
-            if(buf2 + hdr.frame_size > end)
+            if(buf2 + phdr->frame_size > end)
                 break;
             if (buf[0] == 0x77 && buf[1] == 0x0B) {
-                av_assert0(hdr.frame_size <= sizeof(buf3));
-                for(i=8; i<hdr.frame_size; i+=2) {
+                av_assert0(phdr->frame_size <= sizeof(buf3));
+                for(i=8; i<phdr->frame_size; i+=2) {
                     buf3[i  ] = buf[i+1];
                     buf3[i+1] = buf[i  ];
                 }
             }
-            if(av_crc(av_crc_get_table(AV_CRC_16_ANSI), 0, gbc.buffer + 2, hdr.frame_size - 2))
+            if(av_crc(av_crc_get_table(AV_CRC_16_ANSI), 0, gbc.buffer + 2, phdr->frame_size - 2))
                 break;
-            if (hdr.bitstream_id > 10)
+            if (phdr->bitstream_id > 10)
                 codec_id = AV_CODEC_ID_EAC3;
-            buf2 += hdr.frame_size;
+            buf2 += phdr->frame_size;
         }
         max_frames = FFMAX(max_frames, frames);
         if(buf == p->buf)
             first_frames = frames;
     }
+    av_freep(&phdr);
     if(codec_id != expected_codec_id) return 0;
     // keep this in sync with mp3 probe, both need to avoid
     // issues with MPEG-files!



More information about the ffmpeg-cvslog mailing list