On Sat, 10 Sep 2022, Leo Izen wrote:

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.

This is patch is wrong, because it implies that decoders can output frames in time base different to stream time base. They can't, because that would be a breaking change. AVFrame->time_base was not introduced for that use case.

Regards,
Marton

---
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".

_______________________________________________
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".

Reply via email to