fftools/ffmpeg: only set InputStream.next_pts for decoding

It is write-only for streamcopy.
This commit is contained in:
Anton Khirnov 2023-03-27 08:26:18 +02:00
parent d867f9ab8c
commit 0feff04956
2 changed files with 3 additions and 3 deletions

View File

@ -1670,7 +1670,7 @@ static int process_input_packet(InputStream *ist, const AVPacket *pkt, int no_eo
if (pkt && pkt->dts != AV_NOPTS_VALUE) {
ist->next_dts = ist->dts = av_rescale_q(pkt->dts, ist->st->time_base, AV_TIME_BASE_Q);
if (par->codec_type != AVMEDIA_TYPE_VIDEO || !ist->decoding_needed)
ist->next_pts = ist->pts = ist->dts;
ist->pts = ist->dts;
}
// while we have more to decode or while the decoder did output something on EOF
@ -1811,7 +1811,6 @@ static int process_input_packet(InputStream *ist, const AVPacket *pkt, int no_eo
break;
}
ist->pts = ist->dts;
ist->next_pts = ist->next_dts;
} else if (!ist->decoding_needed)
eof_reached = 1;

View File

@ -370,7 +370,8 @@ typedef struct InputStream {
int64_t first_dts; ///< dts of the first packet read for this stream (in AV_TIME_BASE units)
int64_t dts; ///< dts of the last packet read for this stream (in AV_TIME_BASE units)
int64_t next_pts; ///< synthetic pts for the next decode frame (in AV_TIME_BASE units)
/* predicted pts of the next decoded frame, in AV_TIME_BASE */
int64_t next_pts;
int64_t pts; ///< current pts of the decoded frame (in AV_TIME_BASE units)
int wrap_correction_done;