aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/h263.c
diff options
context:
space:
mode:
authorGwenole Beauchesne <gbeauchesne@splitted-desktop.com>2009-01-30 17:13:03 +0000
committerBenoit Fouet <benoit.fouet@free.fr>2009-01-30 17:13:03 +0000
commit3021a8a70b44096aef84cc4656ff804028c57973 (patch)
tree146450254f251fda096a2574b81a0858791147db /libavcodec/h263.c
parent5449a787c953f40f0f4312e6f5897775904ffc45 (diff)
downloadffmpeg-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/h263.c')
-rw-r--r--libavcodec/h263.c10
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;
}