This patch allows decoders to set AVFrame->time_base, which determines the units that AVFrame->pts will use. Currently no decoders do this, but it will allow it in the future. --- fftools/ffmpeg.c | 3 ++- fftools/ffplay.c | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c index 0e1477299d..e3ea7a6c29 100644 --- a/fftools/ffmpeg.c +++ b/fftools/ffmpeg.c @@ -2274,7 +2274,8 @@ static int decode_video(InputStream *ist, AVPacket *pkt, int *got_output, int64_ } if(best_effort_timestamp != AV_NOPTS_VALUE) { - int64_t ts = av_rescale_q(decoded_frame->pts = best_effort_timestamp, ist->st->time_base, AV_TIME_BASE_Q); + int64_t ts = av_rescale_q(decoded_frame->pts = best_effort_timestamp, + decoded_frame->time_base.num ? decoded_frame->time_base : ist->st->time_base, AV_TIME_BASE_Q); if (ts != AV_NOPTS_VALUE) ist->next_pts = ist->pts = ts; diff --git a/fftools/ffplay.c b/fftools/ffplay.c index 9242047f5c..986b0831ac 100644 --- a/fftools/ffplay.c +++ b/fftools/ffplay.c @@ -1771,7 +1771,7 @@ static int get_video_frame(VideoState *is, AVFrame *frame) double dpts = NAN; if (frame->pts != AV_NOPTS_VALUE) - dpts = av_q2d(is->video_st->time_base) * frame->pts; + dpts = av_q2d(frame->time_base.num ? frame->time_base : is->video_st->time_base) * frame->pts; frame->sample_aspect_ratio = av_guess_sample_aspect_ratio(is->ic, is->video_st, frame); -- 2.37.3 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".