aboutsummaryrefslogtreecommitdiffstats
path: root/fftools
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2023-04-25 23:11:25 +0200
committerAnton Khirnov <anton@khirnov.net>2023-05-02 10:59:24 +0200
commitef69f6a9d24e5508294f4009b1011289c683284e (patch)
tree776206c0cdefa735c679549f3400a5c3805ac366 /fftools
parentd85c6aba0cf27db2a6c4dfa3452cfb9c248d1b4a (diff)
downloadffmpeg-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.c7
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);