[FFmpeg-devel] [PATCH 5/5] fftools/ffmpeg: move ts_scale to DemuxStream

Anton Khirnov anton at khirnov.net
Sat Feb 11 09:44:12 EET 2023


It is not needed outside of ffmpeg_demux.
---
 fftools/ffmpeg.h       |  1 -
 fftools/ffmpeg_demux.c | 10 ++++++----
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/fftools/ffmpeg.h b/fftools/ffmpeg.h
index 401f424f79..4d4433f5ba 100644
--- a/fftools/ffmpeg.h
+++ b/fftools/ffmpeg.h
@@ -385,7 +385,6 @@ typedef struct InputStream {
 
     int64_t nb_samples; /* number of samples in the last decoded audio frame before looping */
 
-    double ts_scale;
     int saw_first_ts;
     AVDictionary *decoder_opts;
     AVRational framerate;               /* framerate forced with -r */
diff --git a/fftools/ffmpeg_demux.c b/fftools/ffmpeg_demux.c
index f2a1391a29..2033c1de54 100644
--- a/fftools/ffmpeg_demux.c
+++ b/fftools/ffmpeg_demux.c
@@ -58,6 +58,8 @@ typedef struct DemuxStream {
     // name used for logging
     char log_name[32];
 
+    double ts_scale;
+
     int64_t min_pts; /* pts with the smallest value in a current stream */
     int64_t max_pts; /* pts with the higher value in a current stream */
 } DemuxStream;
@@ -225,9 +227,9 @@ static void ts_fixup(Demuxer *d, AVPacket *pkt, int *repeat_pict)
         pkt->pts += av_rescale_q(ifile->ts_offset, AV_TIME_BASE_Q, ist->st->time_base);
 
     if (pkt->pts != AV_NOPTS_VALUE)
-        pkt->pts *= ist->ts_scale;
+        pkt->pts *= ds->ts_scale;
     if (pkt->dts != AV_NOPTS_VALUE)
-        pkt->dts *= ist->ts_scale;
+        pkt->dts *= ds->ts_scale;
 
     duration = av_rescale_q(d->duration, d->time_base, ist->st->time_base);
     if (pkt->pts != AV_NOPTS_VALUE) {
@@ -670,8 +672,8 @@ static void add_input_streams(const OptionsContext *o, Demuxer *d)
         ds->min_pts = INT64_MAX;
         ds->max_pts = INT64_MIN;
 
-        ist->ts_scale = 1.0;
-        MATCH_PER_STREAM_OPT(ts_scale, dbl, ist->ts_scale, ic, st);
+        ds->ts_scale = 1.0;
+        MATCH_PER_STREAM_OPT(ts_scale, dbl, ds->ts_scale, ic, st);
 
         ist->autorotate = 1;
         MATCH_PER_STREAM_OPT(autorotate, i, ist->autorotate, ic, st);
-- 
2.39.1



More information about the ffmpeg-devel mailing list