[FFmpeg-cvslog] fftools/ffmpeg_dec: pass AVCodecParameters through DecoderOpts
Anton Khirnov
git at videolan.org
Tue Jan 30 11:08:05 EET 2024
ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Tue Jan 23 18:42:20 2024 +0100| [1b2c539a0f4b48ed124ff6dc375bd67111efdddc] | committer: Anton Khirnov
fftools/ffmpeg_dec: pass AVCodecParameters through DecoderOpts
Do not retrieve it from InputStream directly.
This is a step towards decoupling Decoder and InputStream.
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=1b2c539a0f4b48ed124ff6dc375bd67111efdddc
---
fftools/ffmpeg.h | 1 +
fftools/ffmpeg_dec.c | 4 ++--
fftools/ffmpeg_demux.c | 1 +
3 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/fftools/ffmpeg.h b/fftools/ffmpeg.h
index b169b1a323..02c614d0ff 100644
--- a/fftools/ffmpeg.h
+++ b/fftools/ffmpeg.h
@@ -298,6 +298,7 @@ typedef struct DecoderOpts {
char *name;
const AVCodec *codec;
+ const AVCodecParameters *par;
/* hwaccel options */
enum HWAccelID hwaccel_id;
diff --git a/fftools/ffmpeg_dec.c b/fftools/ffmpeg_dec.c
index e41440b21d..c35fceeaf4 100644
--- a/fftools/ffmpeg_dec.c
+++ b/fftools/ffmpeg_dec.c
@@ -990,13 +990,13 @@ int dec_open(InputStream *ist, Scheduler *sch, unsigned sch_idx,
return AVERROR(ENOMEM);
}
- dp->sar_override = ist->par->sample_aspect_ratio;
+ dp->sar_override = o->par->sample_aspect_ratio;
dp->dec_ctx = avcodec_alloc_context3(codec);
if (!dp->dec_ctx)
return AVERROR(ENOMEM);
- ret = avcodec_parameters_to_context(dp->dec_ctx, ist->par);
+ ret = avcodec_parameters_to_context(dp->dec_ctx, o->par);
if (ret < 0) {
av_log(dp, AV_LOG_ERROR, "Error initializing the decoder context.\n");
return ret;
diff --git a/fftools/ffmpeg_demux.c b/fftools/ffmpeg_demux.c
index f66319aafe..6216b7c684 100644
--- a/fftools/ffmpeg_demux.c
+++ b/fftools/ffmpeg_demux.c
@@ -931,6 +931,7 @@ static int ist_use(InputStream *ist, int decoding_needed)
ds->dec_opts.name = ds->dec_name;
ds->dec_opts.codec = ist->dec;
+ ds->dec_opts.par = ist->par;
ret = dec_open(ist, d->sch, ds->sch_idx_dec,
&ist->decoder_opts, &ds->dec_opts);
More information about the ffmpeg-cvslog
mailing list