From patchwork Sun May 24 17:03:06 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul B Mahol X-Patchwork-Id: 19832 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id ADEB444B11A for ; Sun, 24 May 2020 20:11:33 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 985C56881F3; Sun, 24 May 2020 20:11:33 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ed1-f65.google.com (mail-ed1-f65.google.com [209.85.208.65]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E0EAB687F0C for ; Sun, 24 May 2020 20:11:27 +0300 (EEST) Received: by mail-ed1-f65.google.com with SMTP id g9so13226953edw.10 for ; Sun, 24 May 2020 10:11:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references; bh=jKXYaoc2LmJx9YYbKLGPSVW/H8CKAEd01u7TNMB/QDk=; b=XQtVK/f80k7vrGjA1J8xu+ww3m1ApNtECVaLeRmYbDMwcjQZfxuJtJdYJILPxlVGH8 4jY8QWlf9qmHkH2tojHyYCM03Q83NEAF6s/xawV4zKV9O/lxvfd8wy6fLonvVo4FTVte yCHB7AO0KuVzAfJ6hu18xsaY0P0XWBczKqHSGuDwJH1/gFfqLgwNdza+jWFtom3LAbZ4 eNA2KDFEXq10EP8WseOQHtLvqxwZ7j9AdjN01eWdm02sulkiwDMFc0CZm16gwmyzoQRI 6LeFQd1hZZDMBBxECS3THj/EfHF6VRmGEz/QQqWZPvNV09gs/X3Ybb4GhDsFx4yC3mDY bGYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references; bh=jKXYaoc2LmJx9YYbKLGPSVW/H8CKAEd01u7TNMB/QDk=; b=Vga/fkqQfvhKkdHGWKpYT4bVOjl3X+JO8qz5hdJhlmSn6nbOSXEF0t5xsid1wBt7uB M07Gt9hfRYO98Nyui0kbwmPqoJ9mhaEJuP1ehlQMbCyUPYXWOLKxr/0361kol2Em4q9t rjms0KIKx859MROB9NajM5y3uVqkjMMGDUadt/rhSdQWFLWizT8sG6v0NooPm0EQ7AWg +4QRM1dtAANW1WEjQU7WXltmfPu4EKuzggBx2ILS6NnTtTLBA4jtiphf6BZc/XNvqPMF M/5JrFSd/7nTdxy01kqiqe4Jo5ZioFTtG17GZKUMhNhUpMEjeZ4WOo/viJ5GP1S/q9Cr ZAug== X-Gm-Message-State: AOAM531kfnHE8hSm7EE3T9erj8pcvSQFsJOXZ5O6XH+m46MAi3LdzHVB mAe6fZuC27dY3SorVKeH0FwV2Cdr0ZY= X-Google-Smtp-Source: ABdhPJwo/r4h7E+IqBNUmnx8mh97TeHlI1JDhJ3r7susdGMV5RvK7aMNHuTmbW3/6rmpJsJAHGhMeQ== X-Received: by 2002:a17:906:c7d1:: with SMTP id dc17mr16893998ejb.166.1590339798977; Sun, 24 May 2020 10:03:18 -0700 (PDT) Received: from localhost.localdomain ([109.227.32.69]) by smtp.gmail.com with ESMTPSA id u10sm13431059edb.65.2020.05.24.10.03.18 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 24 May 2020 10:03:18 -0700 (PDT) From: Paul B Mahol To: ffmpeg-devel@ffmpeg.org Date: Sun, 24 May 2020 19:03:06 +0200 Message-Id: <20200524170308.9994-2-onemda@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200524170308.9994-1-onemda@gmail.com> References: <20200524170308.9994-1-onemda@gmail.com> Subject: [FFmpeg-devel] [PATCH 2/4] avfilter/af_biquads: switch to activate() 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 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Needed by following commits. Signed-off-by: Paul B Mahol --- libavfilter/af_biquads.c | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/libavfilter/af_biquads.c b/libavfilter/af_biquads.c index 81cdb0c10e..ef28db741a 100644 --- a/libavfilter/af_biquads.c +++ b/libavfilter/af_biquads.c @@ -67,6 +67,7 @@ #include "libavutil/opt.h" #include "audio.h" #include "avfilter.h" +#include "filters.h" #include "internal.h" enum FilterType { @@ -523,6 +524,30 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *buf) return ff_filter_frame(outlink, out_buf); } +static int activate(AVFilterContext *ctx) +{ + AVFilterLink *inlink = ctx->inputs[0]; + AVFilterLink *outlink = ctx->outputs[0]; + AVFrame *in = NULL; + int ret; + + FF_FILTER_FORWARD_STATUS_BACK(outlink, inlink); + + ret = ff_inlink_consume_frame(inlink, &in); + if (ret < 0) + return ret; + if (ret > 0) { + ret = filter_frame(inlink, in); + if (ret < 0) + return ret; + } + + FF_FILTER_FORWARD_STATUS(inlink, outlink); + FF_FILTER_FORWARD_WANTED(outlink, inlink); + + return FFERROR_NOT_READY; +} + static int process_command(AVFilterContext *ctx, const char *cmd, const char *args, char *res, int res_len, int flags) { @@ -547,7 +572,6 @@ static const AVFilterPad inputs[] = { { .name = "default", .type = AVMEDIA_TYPE_AUDIO, - .filter_frame = filter_frame, }, { NULL } }; @@ -567,19 +591,20 @@ static const AVFilterPad outputs[] = { #define DEFINE_BIQUAD_FILTER(name_, description_) \ AVFILTER_DEFINE_CLASS(name_); \ -static av_cold int name_##_init(AVFilterContext *ctx) \ +static av_cold int name_##_init(AVFilterContext *ctx) \ { \ BiquadsContext *s = ctx->priv; \ s->class = &name_##_class; \ s->filter_type = name_; \ - return init(ctx); \ + return init(ctx); \ } \ \ -AVFilter ff_af_##name_ = { \ +AVFilter ff_af_##name_ = { \ .name = #name_, \ .description = NULL_IF_CONFIG_SMALL(description_), \ .priv_size = sizeof(BiquadsContext), \ .init = name_##_init, \ + .activate = activate, \ .uninit = uninit, \ .query_formats = query_formats, \ .inputs = inputs, \