diff cavsdec.c @ 11179:9a793cb05a85 libavcodec

add heuristic to discern the old sample clips from streams encoded with rm52j encoder, a marker_bit has been added in the I-Frame syntax
author stefang
date Mon, 15 Feb 2010 16:43:45 +0000
parents d69eaf40d1b8
children 8a4984c5cacc
line wrap: on
line diff
--- a/cavsdec.c	Mon Feb 15 16:37:13 2010 +0000
+++ b/cavsdec.c	Mon Feb 15 16:43:45 2010 +0000
@@ -483,6 +483,15 @@
         h->pic_type = FF_I_TYPE;
         if(get_bits1(&s->gb))
             skip_bits(&s->gb,24);//time_code
+        /* old sample clips were all progressive and no low_delay,
+           bump stream revision if detected otherwise */
+        if((s->low_delay) || !(show_bits(&s->gb,9) & 1))
+            h->stream_revision = 1;
+        /* similarly test top_field_first and repeat_first_field */
+        else if(show_bits(&s->gb,11) & 3)
+            h->stream_revision = 1;
+        if(h->stream_revision > 0)
+            skip_bits(&s->gb,1); //marker_bit
     }
     /* release last B frame */
     if(h->picture.data[0])