From efd8c1f64d3b1673021162210e0b265bcd5ea4c8 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Sat, 28 Feb 2009 20:58:07 +0000 Subject: Adjust time_base exactly when changing ticks_per_frame to 2 this is safer and for some raw h264 we managed to change the timebase twice before. Originally committed as revision 17669 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/h264.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/libavcodec/h264.c b/libavcodec/h264.c index 3322877df1..b1c1f7054d 100644 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@ -2210,8 +2210,12 @@ static av_cold int decode_init(AVCodecContext *avctx){ h->outputed_poc = INT_MIN; h->prev_poc_msb= 1<<16; reset_sei(h); - if(avctx->codec_id == CODEC_ID_H264) + if(avctx->codec_id == CODEC_ID_H264){ + if(avctx->ticks_per_frame == 1){ + s->avctx->time_base.den *=2; + } avctx->ticks_per_frame = 2; + } return 0; } @@ -3776,9 +3780,6 @@ static int decode_slice_header(H264Context *h, H264Context *h0){ s->avctx->time_base.den *= 2; av_reduce(&s->avctx->time_base.num, &s->avctx->time_base.den, s->avctx->time_base.num, s->avctx->time_base.den, 1<<30); - }else if(!h->sps.time_scale && !s->avctx->frame_number){ - s->avctx->time_base.den *=2; - h->sps.time_scale= s->avctx->time_base.den; } } -- cgit v1.2.3