Browse Source

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 974ee16d6a)
tags/n3.3.1
wm4 Marton Balint 8 years ago
parent
commit
059db22040
3 changed files with 18 additions and 0 deletions
  1. +1
    -0
      ffmpeg.h
  2. +15
    -0
      ffmpeg_filter.c
  3. +2
    -0
      ffmpeg_opt.c

+ 1
- 0
ffmpeg.h View File

@@ -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);


+ 15
- 0
ffmpeg_filter.c View File

@@ -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;


+ 2
- 0
ffmpeg_opt.c View File

@@ -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) {


Loading…
Cancel
Save