[FFmpeg-cvslog] fftools/ffmpeg: open decoders right after we know they are needed
Anton Khirnov
git at videolan.org
Mon Apr 17 13:07:26 EEST 2023
ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Tue Apr 11 13:27:44 2023 +0200| [2058402e001268e8bc68b33a8979429a73ed1b74] | committer: Anton Khirnov
fftools/ffmpeg: open decoders right after we know they are needed
Will allow initializing subtitle encoding earlier.
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=2058402e001268e8bc68b33a8979429a73ed1b74
---
fftools/ffmpeg.c | 5 -----
fftools/ffmpeg_demux.c | 6 ++++++
2 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c
index ba92b2aa84..c2dafeb46e 100644
--- a/fftools/ffmpeg.c
+++ b/fftools/ffmpeg.c
@@ -1882,11 +1882,6 @@ static int transcode_init(void)
ifile->streams[j]->start = av_gettime_relative();
}
- /* init input streams */
- for (InputStream *ist = ist_iter(NULL); ist; ist = ist_iter(ist))
- if (ist->decoding_needed && (ret = dec_open(ist)) < 0)
- goto dump_format;
-
/*
* initialize stream copy and subtitle/data streams.
* Encoded AVFrame based streams will get initialized when the first AVFrame
diff --git a/fftools/ffmpeg_demux.c b/fftools/ffmpeg_demux.c
index c7141abadf..5afb3ff2c8 100644
--- a/fftools/ffmpeg_demux.c
+++ b/fftools/ffmpeg_demux.c
@@ -566,6 +566,12 @@ static void ist_use(InputStream *ist, int decoding_needed)
ist->discard = 0;
ist->st->discard = ist->user_set_discard;
ist->decoding_needed |= decoding_needed;
+
+ if (decoding_needed && !avcodec_is_open(ist->dec_ctx)) {
+ int ret = dec_open(ist);
+ if (ret < 0)
+ report_and_exit(ret);
+ }
}
void ist_output_add(InputStream *ist, OutputStream *ost)
More information about the ffmpeg-cvslog
mailing list