diff options
author | Anton Khirnov <anton@khirnov.net> | 2023-04-25 23:11:25 +0200 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2023-05-02 10:59:24 +0200 |
commit | ef69f6a9d24e5508294f4009b1011289c683284e (patch) | |
tree | 776206c0cdefa735c679549f3400a5c3805ac366 /fftools | |
parent | d85c6aba0cf27db2a6c4dfa3452cfb9c248d1b4a (diff) | |
download | ffmpeg-ef69f6a9d24e5508294f4009b1011289c683284e.tar.gz |
fftools/ffmpeg: stop using InputStream.pts for generating video timestamps
This was added in 380db569287ba99d903b7629f209b9adc7fd2723 as a
temporary crutch that is not needed anymore. The only case where this
code can be triggered is the very first frame, for which InputStream.pts
is always equal to 0.
Diffstat (limited to 'fftools')
-rw-r--r-- | fftools/ffmpeg.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c index 8dcc70e879..e9b083b05a 100644 --- a/fftools/ffmpeg.c +++ b/fftools/ffmpeg.c @@ -1122,12 +1122,9 @@ static int decode_video(InputStream *ist, AVPacket *pkt, int *got_output, int64_ best_effort_timestamp = ist->cfr_next_pts++; // no timestamp available - extrapolate from previous frame duration - if (best_effort_timestamp == AV_NOPTS_VALUE && - ist->last_frame_pts != AV_NOPTS_VALUE) - best_effort_timestamp = ist->last_frame_pts + ist->last_frame_duration_est; - if (best_effort_timestamp == AV_NOPTS_VALUE) - best_effort_timestamp = av_rescale_q(ist->pts, AV_TIME_BASE_Q, ist->st->time_base); + best_effort_timestamp = ist->last_frame_pts == AV_NOPTS_VALUE ? 0 : + ist->last_frame_pts + ist->last_frame_duration_est; 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); |