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 974ee16d6a
)
tags/n3.3.1
@@ -638,6 +638,7 @@ void choose_sample_fmt(AVStream *st, AVCodec *codec); | |||||
int configure_filtergraph(FilterGraph *fg); | int configure_filtergraph(FilterGraph *fg); | ||||
int configure_output_filter(FilterGraph *fg, OutputFilter *ofilter, AVFilterInOut *out); | int configure_output_filter(FilterGraph *fg, OutputFilter *ofilter, AVFilterInOut *out); | ||||
void check_filter_outputs(void); | |||||
int ist_in_filtergraph(FilterGraph *fg, InputStream *ist); | int ist_in_filtergraph(FilterGraph *fg, InputStream *ist); | ||||
int filtergraph_is_simple(FilterGraph *fg); | int filtergraph_is_simple(FilterGraph *fg); | ||||
int init_simple_filtergraph(InputStream *ist, OutputStream *ost); | int init_simple_filtergraph(InputStream *ist, OutputStream *ost); | ||||
@@ -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) | static int sub2video_prepare(InputStream *ist, InputFilter *ifilter) | ||||
{ | { | ||||
AVFormatContext *avf = input_files[ist->file_index]->ctx; | AVFormatContext *avf = input_files[ist->file_index]->ctx; | ||||
@@ -3260,6 +3260,8 @@ int ffmpeg_parse_options(int argc, char **argv) | |||||
goto fail; | goto fail; | ||||
} | } | ||||
check_filter_outputs(); | |||||
fail: | fail: | ||||
uninit_parse_context(&octx); | uninit_parse_context(&octx); | ||||
if (ret < 0) { | if (ret < 0) { | ||||