fftools/ffmpeg: stop using InputStream.pts for generating video timestamps

This was added in 380db56928 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.
pull/389/head
Anton Khirnov 2 years ago
parent d85c6aba0c
commit ef69f6a9d2
  1. 7
      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);

Loading…
Cancel
Save