diff options
author | Gwenole Beauchesne <gbeauchesne@splitted-desktop.com> | 2009-01-30 17:13:03 +0000 |
---|---|---|
committer | Benoit Fouet <benoit.fouet@free.fr> | 2009-01-30 17:13:03 +0000 |
commit | 3021a8a70b44096aef84cc4656ff804028c57973 (patch) | |
tree | 146450254f251fda096a2574b81a0858791147db /libavcodec | |
parent | 5449a787c953f40f0f4312e6f5897775904ffc45 (diff) | |
download | ffmpeg-3021a8a70b44096aef84cc4656ff804028c57973.tar.gz |
Make ff_h263_resync() return the bit position of the resync_marker or
a negative number if none was found.
Patch by Gwenolé Beauchesne: gbeauchesne splitted minus desktop com
Originally committed as revision 16858 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/h263.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/libavcodec/h263.c b/libavcodec/h263.c index 396a69eafc..bdc020b652 100644 --- a/libavcodec/h263.c +++ b/libavcodec/h263.c @@ -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; } |