[FFmpeg-cvslog] ffmpeg: check for unconnected outputs
wm4
git at videolan.org
Sun May 7 21:00:29 EEST 2017
ffmpeg | branch: release/3.3 | wm4 <nfxjfg at googlemail.com> | Fri May 5 00:15:15 2017 +0200| [059db2204046c502f946ad6a80c6d76e428627fd] | committer: Marton Balint
ffmpeg: check for unconnected outputs
Fixes e.g.:
ffmpeg -f lavfi -i testsrc -f lavfi -i testsrc -filter_complex "[0:v][1:v]psnr[out]" -f null none
Fixes ticket #6323.
(cherry picked from commit 974ee16d6a71c31d0b5db4f139a40831c2f45776)
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=059db2204046c502f946ad6a80c6d76e428627fd
---
ffmpeg.h | 1 +
ffmpeg_filter.c | 15 +++++++++++++++
ffmpeg_opt.c | 2 ++
3 files changed, 18 insertions(+)
diff --git a/ffmpeg.h b/ffmpeg.h
index 4d0456c1fb..d34561275a 100644
--- a/ffmpeg.h
+++ b/ffmpeg.h
@@ -638,6 +638,7 @@ void choose_sample_fmt(AVStream *st, AVCodec *codec);
int configure_filtergraph(FilterGraph *fg);
int configure_output_filter(FilterGraph *fg, OutputFilter *ofilter, AVFilterInOut *out);
+void check_filter_outputs(void);
int ist_in_filtergraph(FilterGraph *fg, InputStream *ist);
int filtergraph_is_simple(FilterGraph *fg);
int init_simple_filtergraph(InputStream *ist, OutputStream *ost);
diff --git a/ffmpeg_filter.c b/ffmpeg_filter.c
index 219e473f69..4d425eaff2 100644
--- a/ffmpeg_filter.c
+++ b/ffmpeg_filter.c
@@ -678,6 +678,21 @@ int configure_output_filter(FilterGraph *fg, OutputFilter *ofilter, AVFilterInOu
}
}
+void check_filter_outputs(void)
+{
+ int i;
+ for (i = 0; i < nb_filtergraphs; i++) {
+ int n;
+ for (n = 0; n < filtergraphs[i]->nb_outputs; n++) {
+ OutputFilter *output = filtergraphs[i]->outputs[n];
+ if (!output->ost) {
+ av_log(NULL, AV_LOG_FATAL, "Filter %s has an unconnected output\n", output->name);
+ exit_program(1);
+ }
+ }
+ }
+}
+
static int sub2video_prepare(InputStream *ist, InputFilter *ifilter)
{
AVFormatContext *avf = input_files[ist->file_index]->ctx;
diff --git a/ffmpeg_opt.c b/ffmpeg_opt.c
index d1fe8742ff..e73a61059f 100644
--- a/ffmpeg_opt.c
+++ b/ffmpeg_opt.c
@@ -3260,6 +3260,8 @@ int ffmpeg_parse_options(int argc, char **argv)
goto fail;
}
+ check_filter_outputs();
+
fail:
uninit_parse_context(&octx);
if (ret < 0) {
More information about the ffmpeg-cvslog
mailing list