Commit efd8c1f6 authored by Michael Niedermayer's avatar Michael Niedermayer

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
parent cd0d9a9d
...@@ -2210,8 +2210,12 @@ static av_cold int decode_init(AVCodecContext *avctx){ ...@@ -2210,8 +2210,12 @@ static av_cold int decode_init(AVCodecContext *avctx){
h->outputed_poc = INT_MIN; h->outputed_poc = INT_MIN;
h->prev_poc_msb= 1<<16; h->prev_poc_msb= 1<<16;
reset_sei(h); 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; avctx->ticks_per_frame = 2;
}
return 0; return 0;
} }
...@@ -3776,9 +3780,6 @@ static int decode_slice_header(H264Context *h, H264Context *h0){ ...@@ -3776,9 +3780,6 @@ static int decode_slice_header(H264Context *h, H264Context *h0){
s->avctx->time_base.den *= 2; s->avctx->time_base.den *= 2;
av_reduce(&s->avctx->time_base.num, &s->avctx->time_base.den, av_reduce(&s->avctx->time_base.num, &s->avctx->time_base.den,
s->avctx->time_base.num, s->avctx->time_base.den, 1<<30); 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;
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment