]> rtime.felk.cvut.cz Git - frescor/ffmpeg.git/commitdiff
Make ff_h263_resync() return the bit position of the resync_marker or
authorbenoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Fri, 30 Jan 2009 17:13:03 +0000 (17:13 +0000)
committerbenoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Fri, 30 Jan 2009 17:13:03 +0000 (17:13 +0000)
a negative number if none was found.
Patch by Gwenolé Beauchesne: gbeauchesne splitted minus desktop com

git-svn-id: file:///var/local/repositories/ffmpeg/trunk@16858 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b

libavcodec/h263.c

index 396a69eafcebe3435a2e8f07dbeb2f9b3ad83c35..bdc020b652086306ffd5348b04117b1b37088245 100644 (file)
@@ -3296,10 +3296,10 @@ void ff_mpeg4_clean_buffers(MpegEncContext *s)
 
 /**
  * decodes the group of blocks / video packet header.
- * @return <0 if no resync found
+ * @return bit position of the resync_marker, or <0 if none was found
  */
 int ff_h263_resync(MpegEncContext *s){
-    int left, ret;
+    int left, pos, ret;
 
     if(s->codec_id==CODEC_ID_MPEG4){
         skip_bits1(&s->gb);
@@ -3307,12 +3307,13 @@ int ff_h263_resync(MpegEncContext *s){
     }
 
     if(show_bits(&s->gb, 16)==0){
+        pos= get_bits_count(&s->gb);
         if(s->codec_id==CODEC_ID_MPEG4)
             ret= mpeg4_decode_video_packet_header(s);
         else
             ret= h263_decode_gob_header(s);
         if(ret>=0)
-            return 0;
+            return pos;
     }
     //OK, it's not where it is supposed to be ...
     s->gb= s->last_resync_gb;
@@ -3323,12 +3324,13 @@ int ff_h263_resync(MpegEncContext *s){
         if(show_bits(&s->gb, 16)==0){
             GetBitContext bak= s->gb;
 
+            pos= get_bits_count(&s->gb);
             if(s->codec_id==CODEC_ID_MPEG4)
                 ret= mpeg4_decode_video_packet_header(s);
             else
                 ret= h263_decode_gob_header(s);
             if(ret>=0)
-                return 0;
+                return pos;
 
             s->gb= bak;
         }