[FFmpeg-cvslog] bit: rewrite probe

Michael Niedermayer git at videolan.org
Sun Sep 25 05:45:41 CEST 2011


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Sun Sep 25 05:15:30 2011 +0200| [dfc571ff183401f59da1c5ebd7bb853c17a720de] | committer: Michael Niedermayer

bit: rewrite probe

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

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

 libavformat/bit.c |   22 ++++++++++------------
 1 files changed, 10 insertions(+), 12 deletions(-)

diff --git a/libavformat/bit.c b/libavformat/bit.c
index 5fb3d55..774ddcb 100644
--- a/libavformat/bit.c
+++ b/libavformat/bit.c
@@ -10,19 +10,17 @@
 
 static int probe(AVProbeData *p)
 {
-    int i;
-    i=AV_RL16(&p->buf[0]);
-    if(i != SYNC_WORD)
-        return 0;
-
-    switch(AV_RL16(&p->buf[2]))
-    {
-    case 0x40:
-    case 0x50:
-        return AVPROBE_SCORE_MAX/2;
-    default:
-        return 0;
+    int i, j;
+
+    for(i=0; i+3<p->buf_size && i< 10*0x50; ){
+        if(AV_RL16(&p->buf[0]) != SYNC_WORD)
+            return 0;
+        j=AV_RL16(&p->buf[2]);
+        if(j!=0x40 && j!=0x50)
+            return 0;
+        i+=j;
     }
+    return AVPROBE_SCORE_MAX/2;
 }
 
 static int read_header(AVFormatContext *s, AVFormatParameters *ap)



More information about the ffmpeg-cvslog mailing list