From patchwork Tue May 2 23:06:59 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: wm4 X-Patchwork-Id: 3560 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.3.129 with SMTP id 123csp2115529vsd; Tue, 2 May 2017 16:14:02 -0700 (PDT) X-Received: by 10.28.104.195 with SMTP id d186mr5607210wmc.111.1493766842295; Tue, 02 May 2017 16:14:02 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 30si16278624wro.335.2017.05.02.16.14.01; Tue, 02 May 2017 16:14:02 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@googlemail.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=googlemail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 70DAA6806CD; Wed, 3 May 2017 02:13:55 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr0-f196.google.com (mail-wr0-f196.google.com [209.85.128.196]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 62CC6680403 for ; Wed, 3 May 2017 02:13:48 +0300 (EEST) Received: by mail-wr0-f196.google.com with SMTP id g12so20055496wrg.2 for ; Tue, 02 May 2017 16:13:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=vJCJYZYiXLvLBKRfwSlciOMF4RtFDfOAhzFhe5RXaeU=; b=f69/cT1XOR3MhkeXh76MCb/rwQTUYvbOpC0rjXw9kuVcVWYzNKwg1AslFM2VixHabm RT70oPiJ0Bdoq4/G+U52Mn7ZYdUwr9q9fdv54TlMGQezl/Kj/LL8DQwfwFnZmCCTmTzz lUfXJRwsv0Zm+6BxQEAVxp3Wa5uM1WHVwa/G9icCujjU61WWtMdjeCebHOMFxi6YbJ3C ySTNbiWMQHl4IU9pPqB5sCqqdVQRQJZG08Hbp0Hfen0GTjs/sOUdB+lxmx4nMcAgDeAA vq+vwpP7IPAihEY1BZmrH1Bfrl4eIf30YKmkuPbe9EnMcHhDmyDdOnNMSJLxnefOpk67 MT0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=vJCJYZYiXLvLBKRfwSlciOMF4RtFDfOAhzFhe5RXaeU=; b=ZyO19YSN4NkBDzuxfdEELujXn/cexlMbk9a2ojQscZvW5keLhZlRO+hbN2qGkIYJh4 I4lAVI6frWP24J5oS09bpjgKDt/axKKqO+2OnS1gOCCCy8W2xA52tS66JfblHJvSuip3 2yLUJ+YE3+T4iytRIFtZFu+SPWmu0hdRwoMLnA/SauWuq94BULZW6wuSj4w0VCvrgB/k aToOWzhDF5stLPmu38gonlepMRrklibMkyyFcuIkikZYBgOkIEkWpc4/kGvj61RIr14T T+0zXMdjkV0q/ALbXqlr6E5ya9ZnZqra3s9JurdT1TcZPGppwCv5DYI57ev8G/F1AVh8 xWuA== X-Gm-Message-State: AN3rC/7ZiHstd9Deaaev6dul5f1GdbMx8GFV75OBaQMqueJGcaOuk9M5 cEhJzwoyrNjzqQ== X-Received: by 10.223.173.23 with SMTP id p23mr23440711wrc.117.1493766389833; Tue, 02 May 2017 16:06:29 -0700 (PDT) Received: from localhost.localdomain (p4FF0022F.dip0.t-ipconnect.de. [79.240.2.47]) by smtp.googlemail.com with ESMTPSA id 72sm2398337wmx.23.2017.05.02.16.06.28 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 02 May 2017 16:06:28 -0700 (PDT) From: wm4 To: ffmpeg-devel@ffmpeg.org Date: Wed, 3 May 2017 01:06:59 +0200 Message-Id: <20170502230659.28441-1-nfxjfg@googlemail.com> X-Mailer: git-send-email 2.11.0 Subject: [FFmpeg-devel] [PATCH] ffmpeg: check for unconnected outputs X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: wm4 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Fixes e.g.: ffmpeg -f lavfi -i testsrc -f lavfi -i testsrc -filter_complex "[0:v][1:v]psnr[out]" -f null none --- 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 896161a869..817f48f473 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) {