avformat/h263dec: shift data in state to make more bits available to probe
authorMichael Niedermayer <michaelni@gmx.at>
Wed, 7 May 2014 01:12:34 +0000 (03:12 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 2 Jun 2014 20:59:50 +0000 (22:59 +0200)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 04b15a6055fc230a655091ce21303f9d2a996ed9)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavformat/h263dec.c

index 19ed6a9..486e4b0 100644 (file)
@@ -34,21 +34,21 @@ static int h263_probe(AVProbeData *p)
 
     for(i=0; i<p->buf_size; i++){
         code = (code<<8) + p->buf[i];
-        if ((code & 0xfffffc0000) == 0x800000) {
-            src_fmt= (code>>2)&7;
+        if ((code & 0xfffffc000000) == 0x80000000) {
+            src_fmt= (code>>10)&7;
             if(   src_fmt != last_src_fmt
                && last_src_fmt>0 && last_src_fmt<6
                && src_fmt<6)
                 res_change++;
 
-            if((code&0x300)==0x200 && src_fmt){
+            if((code&0x30000)==0x20000 && src_fmt){
                 valid_psc++;
                 last_gn=0;
             }else
                 invalid_psc++;
             last_src_fmt= src_fmt;
-        } else if((code & 0xffff800000) == 0x800000) {
-            int gn= (code>>(23-5)) & 0x1F;
+        } else if((code & 0xffff80000000) == 0x80000000) {
+            int gn= (code>>(31-5)) & 0x1F;
             if(gn<last_gn){
                 invalid_psc++;
             }else