fix codec timebase and timestamps

Originally committed as revision 5998 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Michael Niedermayer 2006-08-14 18:17:14 +00:00
parent 0f812f5291
commit 94c8fbdcad

View File

@ -781,7 +781,14 @@ static int h261_decode_picture_header(H261Context *h){
} }
/* temporal reference */ /* temporal reference */
s->picture_number = get_bits(&s->gb, 5); /* picture timestamp */ i= get_bits(&s->gb, 5); /* picture timestamp */
if(i < (s->picture_number&31))
i += 32;
s->picture_number = (s->picture_number&~31) + i;
s->avctx->time_base= (AVRational){1001, 30000};
s->current_picture.pts= s->picture_number;
/* PTYPE starts here */ /* PTYPE starts here */
skip_bits1(&s->gb); /* split screen off */ skip_bits1(&s->gb); /* split screen off */
@ -998,10 +1005,6 @@ assert(s->current_picture.pict_type == s->pict_type);
*pict= *(AVFrame*)s->current_picture_ptr; *pict= *(AVFrame*)s->current_picture_ptr;
ff_print_debug_info(s, pict); ff_print_debug_info(s, pict);
/* Return the Picture timestamp as the frame number */
/* we substract 1 because it is added on utils.c */
avctx->frame_number = s->picture_number - 1;
*data_size = sizeof(AVFrame); *data_size = sizeof(AVFrame);
return get_consumed_bytes(s, buf_size); return get_consumed_bytes(s, buf_size);