ffmpeg | branch: master | Anton Khirnov <an...@khirnov.net> | Wed Dec 13 20:22:00 2023 +0100| [5c5140ded2c1bb74c79bed68f2c8d1b091d3e39b] | committer: Anton Khirnov
fftools/ffmpeg_sched: track dts+duration as last_dts This should be slightly (probably negligibly) more accurate for scheduling, but mainly it improves the final reported time. Reported-by: Paul B Mahol > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=5c5140ded2c1bb74c79bed68f2c8d1b091d3e39b --- fftools/ffmpeg_sched.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fftools/ffmpeg_sched.c b/fftools/ffmpeg_sched.c index ca440035e2..4fc5a33941 100644 --- a/fftools/ffmpeg_sched.c +++ b/fftools/ffmpeg_sched.c @@ -192,7 +192,7 @@ typedef struct SchMuxStream { //////////////////////////////////////////////////////////// // The following are protected by Scheduler.schedule_lock // - /* dts of the last packet sent to this stream + /* dts+duration of the last packet sent to this stream in AV_TIME_BASE_Q */ int64_t last_dts; // this stream no longer accepts input @@ -1625,8 +1625,8 @@ static int send_to_mux(Scheduler *sch, SchMux *mux, unsigned stream_idx, AVPacket *pkt) { SchMuxStream *ms = &mux->streams[stream_idx]; - int64_t dts = (pkt && pkt->dts != AV_NOPTS_VALUE) ? - av_rescale_q(pkt->dts, pkt->time_base, AV_TIME_BASE_Q) : + int64_t dts = (pkt && pkt->dts != AV_NOPTS_VALUE) ? + av_rescale_q(pkt->dts + pkt->duration, pkt->time_base, AV_TIME_BASE_Q) : AV_NOPTS_VALUE; // queue the packet if the muxer cannot be started yet _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog To unsubscribe, visit link above, or email ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".