fftools/ffmpeg_mux: stop rescaling timestamps in of_streamcopy()

This function converts packet timestamps from the input stream timebase
to OutputStream.mux_timebase, which may or may not be equal to the
actual output AVStream timebase (and even when it is, this may not
always be the optimal choice due to bitstream filtering).

Just keep the timestamps in input stream timebase, they will be rescaled
as needed before bitstream filtering and/or sending the packet to the
muxer.

Move the av_rescale_delta() call for audio (needed to preserve accuracy
with coarse demuxer timebases) to write_packet.

Drop now-unused OutputStream.mux_timebase.
This commit is contained in:
Anton Khirnov
2023-07-25 16:28:07 +02:00
parent ed5caaaf22
commit 8ecbb1f9af
5 changed files with 24 additions and 28 deletions

View File

@@ -75,7 +75,7 @@ typedef struct MuxStream {
int64_t stream_duration;
AVRational stream_duration_tb;
// audio streamcopy - state for av_rescale_delta()
// state for av_rescale_delta() call for audio in write_packet()
int64_t ts_rescale_delta_last;
// combined size of all the packets sent to the muxer