[FFmpeg-cvslog] fftools/ffmpeg_dec: move flags to DecoderOpts

Anton Khirnov git at videolan.org
Tue Jan 30 11:07:49 EET 2024


ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Tue Jan 23 18:28:57 2024 +0100| [e0a6cb07b21fe958f30b0ed47a5ae5b9d16693bd] | committer: Anton Khirnov

fftools/ffmpeg_dec: move flags to DecoderOpts

Will be useful in the following commit.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=e0a6cb07b21fe958f30b0ed47a5ae5b9d16693bd
---

 fftools/ffmpeg.h       | 4 +++-
 fftools/ffmpeg_dec.c   | 4 ++--
 fftools/ffmpeg_demux.c | 7 ++++---
 3 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/fftools/ffmpeg.h b/fftools/ffmpeg.h
index abf95f106b..b4288e7352 100644
--- a/fftools/ffmpeg.h
+++ b/fftools/ffmpeg.h
@@ -287,6 +287,8 @@ enum DecoderFlags {
 };
 
 typedef struct DecoderOpts {
+    int                         flags;
+
     /* hwaccel options */
     enum HWAccelID              hwaccel_id;
     enum AVHWDeviceType         hwaccel_device_type;
@@ -738,7 +740,7 @@ AVBufferRef *hw_device_for_filter(void);
  *                 is transferred to the decoder.
  */
 int dec_open(InputStream *ist, Scheduler *sch, unsigned sch_idx,
-             AVDictionary **dec_opts, int flags, const DecoderOpts *o);
+             AVDictionary **dec_opts, const DecoderOpts *o);
 void dec_free(Decoder **pdec);
 
 int dec_add_filter(Decoder *dec, InputFilter *ifilter);
diff --git a/fftools/ffmpeg_dec.c b/fftools/ffmpeg_dec.c
index 791df8d98c..2698e2683a 100644
--- a/fftools/ffmpeg_dec.c
+++ b/fftools/ffmpeg_dec.c
@@ -943,7 +943,7 @@ static const AVClass dec_class = {
 };
 
 int dec_open(InputStream *ist, Scheduler *sch, unsigned sch_idx,
-             AVDictionary **dec_opts, int flags, const DecoderOpts *o)
+             AVDictionary **dec_opts, const DecoderOpts *o)
 {
     DecoderPriv *dp;
     const AVCodec *codec = ist->dec;
@@ -957,7 +957,7 @@ int dec_open(InputStream *ist, Scheduler *sch, unsigned sch_idx,
     dp->sch     = sch;
     dp->sch_idx = sch_idx;
 
-    dp->flags      = flags;
+    dp->flags      = o->flags;
     dp->dec.class  = &dec_class;
     dp->log_parent = ist;
 
diff --git a/fftools/ffmpeg_demux.c b/fftools/ffmpeg_demux.c
index 0f426e3c2e..5ee07f706b 100644
--- a/fftools/ffmpeg_demux.c
+++ b/fftools/ffmpeg_demux.c
@@ -893,8 +893,6 @@ static int ist_use(InputStream *ist, int decoding_needed)
 
     if (decoding_needed && ds->sch_idx_dec < 0) {
         int is_audio = ist->st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO;
-        int dec_flags = (!!ist->fix_sub_duration * DECODER_FLAG_FIX_SUB_DURATION) |
-                        (!!(d->f.ctx->iformat->flags & AVFMT_NOTIMESTAMPS) * DECODER_FLAG_TS_UNRELIABLE);
 
         ret = sch_add_dec(d->sch, decoder_thread, ist, d->loop && is_audio);
         if (ret < 0)
@@ -906,8 +904,11 @@ static int ist_use(InputStream *ist, int decoding_needed)
         if (ret < 0)
             return ret;
 
+        ds->dec_opts.flags = (!!ist->fix_sub_duration * DECODER_FLAG_FIX_SUB_DURATION) |
+                             (!!(d->f.ctx->iformat->flags & AVFMT_NOTIMESTAMPS) * DECODER_FLAG_TS_UNRELIABLE);
+
         ret = dec_open(ist, d->sch, ds->sch_idx_dec,
-                       &ist->decoder_opts, dec_flags, &ds->dec_opts);
+                       &ist->decoder_opts, &ds->dec_opts);
         if (ret < 0)
             return ret;
 



More information about the ffmpeg-cvslog mailing list