From patchwork Sun Feb 4 13:51:54 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 46013 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:7b08:b0:19e:8a94:b663 with SMTP id s8csp233696pzh; Sun, 4 Feb 2024 05:50:19 -0800 (PST) X-Google-Smtp-Source: AGHT+IHmd1cyC2KLCacQSxaFEO941h4flutjMd/+xqZnKlpVce0Kh2C5AazmBd+oCd0ylwDTlSlo X-Received: by 2002:a17:907:7ea1:b0:a37:45e0:d08b with SMTP id qb33-20020a1709077ea100b00a3745e0d08bmr4236488ejc.29.1707054618825; Sun, 04 Feb 2024 05:50:18 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCWv4cZX98a8Y6VhkniER2T/C0fu/3Co43i/Rn0AZ6U+/AN/5Epg3Cmon53wHLkFSf3DAQdAMJpKAQRbruMx/PCn76mOMfvBA9A/GNdCkoPdfH/0CfOMklaaviy9vMb3fJebxLswf9r2pAhXl+lW3pkajzSDAD1NIlMauG5MKCGuVHpgC+EngxNqVRdNQRzyd2CKLzAcWZY6bJ/WA+O+ZRtJ8c8YGXc9X8roat1oWyL8ajSCgIZUC0WSyWyN20a3lJQH1S/kWUqHFjuvp0aW3GBH5+IQYLLaZnHAjhrSQHJJAQf0+NPUkDpZ8OeyTMT3qnoiZipXSAO3Y8Uym/ADskSNbVe1T7aSm0ua9lnjK0t2tEOvF4myaqmEghEJYX40ooKK4bBzByY36eCpPHaPqqroL2qcIRMJC2+uVsqsibTMUsuT4zSZeuFTekIpdmiKKwd+ElTGlD6VxLG/fmrMrRQVDlxzzmeLMq8u3iMrDGtpSU9bAmA4Slq+eUwrVtW1lEzfwb1bJ+tDVt1qNNX/tGKy9cfeyZWuqv46Pjx7Lf1iyZXbzAiTMrFhjzRY1WGCqi4Dno6s+ll/sPtqME31XqvkFAAerCCXPxR0g3KFkXSErP2ZfgUGRUu19UsdcUsMFZyJJy3ubgf8kD9zu+Trr7N0iu2TU0v1YeGoPRGYWmr4NHRwen1rSmo77gja8wfMqVkGfzTXeZSWdYvUJAqEn+szvyUeHsPYpxQ4rfvhepgpa6EFYNM9N463miNcTURMM5CKV3A25DnJEGshSip9LudRjcHMieFQHeFwTXzCr7nxkOi2XKs8g8Im8I/gwTmPUkbEdjBmiq9s0tgVOcY3VobjoSoWtCT/qRg3bjMlFSp5EMNFBik41gzQhfomv7Iuws49xY9N+YOhlyxPHnlIQvl/JPP+Red7yJHvFWWqm/zmcLt+Rf9clLY8bCoECQ6MvPmkeo cJNk3z0wUuYJuChYdD+ToFWVN18mMRkCGkHO5ic8CgorN1A3qshUR9tWr+xEGMwOxQ5obtT6gS4YdXrTKs7FXqf5rPHqO/S/Fyi5MkcKfwNib6vvU8q6vH9iFCry5JCuMZR9RMVZLfDj2M7LwYAriMm5fHZIyHFvEJgV9XyLWbkuFySxQZ9u/5wPdOews7O5Ci43moPi3lPRz05yOiUTJUP4oz3axyCQGMUtsaB3GljxQRqw64TAr6AZKaAFs/7CZxTuZ16DOthwpdYIhBSWR31uYQgfCFvF9DxHM66LdjE86BouWBuEMV8o2yuXZ9ukDQvWvRzmHGWnTp5Gq0gS3i3cAQnpEuzBkzgQFOj9huZmOF0ji/MHlbKwVQj+hZrYcI1vYz2eNfSvxm7zSFGHnE6+rUFs+8Vmg8WIZZFIm8QY4yYxbV9gB1Mc2tA1QLzXL61mn63g31M0IXr/WpLkzW0oLpleKxQW5cW8Ooqv3CpumeQdcKtAwhZ3Z/2WOj7z1yi/fulh4KD/LOYC38J+e2Ge4ntTTcaVa8fkMYHmKqExlbP6gPOViZraNhDqWDu1y/jLx2CT7eL/2sSVWesvVaeg3CS52DGP4ROcXe Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id kh9-20020a170906f80900b00a35a0aa8eb0si2955657ejb.402.2024.02.04.05.50.18; Sun, 04 Feb 2024 05:50:18 -0800 (PST) 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=@outlook.com header.s=selector1 header.b=GU1mWGDB; arc=fail (body hash mismatch); 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=NONE sp=QUARANTINE dis=NONE) header.from=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 56C9868D12E; Sun, 4 Feb 2024 15:50:15 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01olkn2025.outbound.protection.outlook.com [40.92.64.25]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2044168BC30 for ; Sun, 4 Feb 2024 15:50:09 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=f+QftcWK+DhYZ611kuvZsjxGwc+NeUuBW3Nlb3gMFLjY1pSthd+YYWcsZJfhkwpkR8GknJkf3f9097w5bny9w1/YPKNEbCMRFHC2BkBcDtmVuEGfAGjNp0NTemSMEsNLX966OtUjPO0UnOepyl0oYxaNF/Z7Ss1y4PPITYIAze9ZUtF1zRlYnnH74c7hLQ9SqeLCvvvfPIQWIssO1aA1H8SpD91by+5Cpdv0dSYo5mitJpfqRLFXVy1L4Zi96ZoCmjcbLTQCTNnreMZJS9ToskOhQwZF8VfMAQMlYfNEdMNIlcxltuUvAQUhtOgRDvwMuCPdN79e0DPcPw4DRyEtdQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=LwRiUjDCvZiuaieQ7F04+m2dXz89jTbpNNBtME+l8vE=; b=LjMQ/eobL7mNup2maNWukPRtTgdGoI2klDhbyYye5761f8bmw3iyouz8oThTKOOVTRzPAjc1pT08ulSEZByFYJUQreQ1XKNe/RFnZ5/zWLq1dWQynfPYUS6uuS1Q2KyS+IvwxPT2tUQSrHAg4JZ6yHiT7q9e7Al2RL79lwmo9SeEy9L9KETYO7ca6C+n4tCElYMKVp06OhNCGtO3c7uF6A7cFolccKlNHJRHg02j6PzxlQ505lKItX/vgw0gsR0qENdgq9D3S6ods3kp9WqV0nPgNPGHDk+KGoXcBBz31+aBVE/fDH1xBpKWPlXgUJCMuXipDdXizLeg7nSjxhuwyg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=LwRiUjDCvZiuaieQ7F04+m2dXz89jTbpNNBtME+l8vE=; b=GU1mWGDBlmSjkdJMgZh76dH2KGkaRfb5Jhr62le/kHl+F+HXcMA8N8vaCVMIHlYZWK/gznKi7S8jND012EGeT84Xazln+v/slTzA6Ef2CCGY0Pyep4vd7g1bUNQ25X9bDUB7L9yDQS0qaDEgEN8hpkAYegmsyJe2Kf/mIpYsLhpBghNb9vdgTZvxlQOx7YFDq/HJ8GBx/9/dwjlGYxdthU09PoY8MCvDpJaRh3SJtWY2KTIJWQYWYuoDFlmFHFky99q6viL0f8I9XbW9tjZGP53N/cXEGZmx2SwRwvatHbDjE8qkqpYLl3m+NfeB56pYUpM61e1NzWSBdW/EEblcbA== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by AM8P250MB0344.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:32b::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7249.33; Sun, 4 Feb 2024 13:50:07 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::65aa:deb0:a18e:d48d]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::65aa:deb0:a18e:d48d%5]) with mapi id 15.20.7202.031; Sun, 4 Feb 2024 13:50:07 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 4 Feb 2024 14:51:54 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 X-TMN: [28wgy2QjRXj/Afjw6VvuzQ9mpbgU0QNorVPz+qHHroc=] X-ClientProxiedBy: FR0P281CA0040.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:48::11) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20240204135154.2615024-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|AM8P250MB0344:EE_ X-MS-Office365-Filtering-Correlation-Id: 33732804-015c-4223-b720-08dc25883244 X-MS-Exchange-SLBlob-MailProps: q6Zzr5Fg03GO9n0Wo4wBY0MGnr1b7Rj/Nx1NDXYuo1zDyo4PGVJbGbvPIUwDO98DIwRx9wCnyWSWh9jS9PP9PJQcBEIdj7/ur8xki3s/Zzdu+g9rD3aL78VZwbgOoygHUnJFuCAX0GBkCr9OHB6I5kqwpN0YW2XRk6TL+4br1yknCsiWj4Eo379PfbK6jJSm8XgZrczWGAaoEsVKTLA2LmtHQgKwfn1oJupYWvY4e1a0TTE8BI6ecJ8NPKgJ+foYJAUOXSt+K/ot7lUl0uSWBPcM7bHfMZ117qacG6lJrFtWjUcF4nQKAYQ5ebi8Cm87d6I389KKlzZ7mcsEioPp4tp5TZpqsgCkaQJ/xmjjGYkSWxYiUjtGCgOm27avw9uS+mEOZyIfv3P7p44VpFpYG+tBPjX9YanEOUFgzVpkw4zF94Ekor6+PpmSzAYuRs2QpbH3dXhce/0VEvELFJg0Qz8kc0+8oP/ed5PYFwog+DE+v11qpl5GwPLV+2CSoP+fEBvx5Mt5AO6Wxs+aj8WVNT/U9RXguL9C9h/w4p0C+3tXsIgvBW52HuX8H6KTKm/enJe6HSq9qEsDWm21hShRe4fzRwvv7Gmgg8rFjvhnhSN6m0GGSvvhebzswfqo7qq+veIufVLSP5TvZz1WM86dhgmj2yVJ/0TnbQo8nJSxlam+ayo+hRLSwodOCRgPxhq9 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 8MeKE7WQDSKZQK15D1bUugbpCjQFVs79MZgNePVGkxSpIAZ8FB3HXsnorAV5Ck+zFgaf1t5+006fiiXEH1DlDTN/fJrs4cWjGpI9Nk8H2vw9dKrY5EVUezCGVjJ2yI7KlZa3t6CMqUt4mLN80B+SCIgXN1fL6luVOHDM4cy0BT08EoP6cLusUDDjOugSR5Ffko/81ae7LrIJ6csRvdB6CIffsSGulr1M5s262439XNZ17WD4r6xIoAPfkfVCIJe19Hkflf/kONzgSpO2LI2bk/IulNRXAnyCZ/BA1u2hd9PiOezuK1NCAr4ZNbx3uWfN7DqQtSr2Nl1wEQjq/zXZdHS+d1yICGXUknI/5J75MnTfGHQbbsWJbysqZkJ6qQCUK8xvGfgiTvqlA6nx33wVIRzUj61rfAcxP36sp1z4jPdqinKfVKtqmOJXm2E2oiHZYcEblOubgtpgJmu/l9wPkrxm77zocZLutNdmZVyw5DzBrU9VPb+55nCXlApX6GeF6DCoX3d6ZftyyN7ZzDROVuERELQ8Ymkys7F84KYil/OL5K6zL2nPFpnPh/ygmx1erlLFPHZ08qkZ+xxMA2arjqbNAk0ZSykaonZNzBmnSTEv44eCUsDLHC6iy8LI97uU X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: YGN73xBlf+by8dSaQVUOL/130NxYEdagvvLNVT8uYW7iebDPWnGlF15Z72QftgtOO/GgDMGCLj1mlxp6Fco5i2cHv3ZbprAo4oj3rhM/A5rPBPuPS/Kx0QFxADfcFUiySz68jaGKSpX0erCzKh25B3t+YgKJl8TcOFS0XbCqDGVoI3SH8KlQ2QxtDlGE2FbrW0JnPuvrG66Cj6YI2Hn5T4djRhPU2kvtsutwhZBXgLmmVjkDzdUTzZ+nNggL2LcR0EGHtK9eWlF28pd6YEznQtLUNQig5WGINPVrOCXsxxB7I6s915hbzDOI1OrP4hTVJGBT/S+2E9s263eaqMqxbkcKHZs1PlufMdU8msTqw1MRvVf4b4pEMlyvFT1shUxlDPV2OyECDqxHSlMq2jgB284l4XBTfk95FsOo5ylbJEjS7ztnsGDr42ezfY/I3UPRCk/h21nvunoSUsi1ZgL0Ww9xmputDVgkqDt/nG6lnjIRvv6ZO7EjIiwJZS4nMpVR3pcWY0X0Qh7U1pI3sX4dNduzIx96LpFPop3/LeJ519uPrp/Mt7Z2TQ/U4yWJCqQ3FB8jQVkoEFZNEFAIDGYOg6zQTWVPHgcWb+Z+YLrX2uXrKurDRQFtsgoOrFCVeiw+5x1DCsRVcc4ZSVvaolPXu8LSfXJmIAqoHxe4VDab2jc9gy2s+1P3ZmPjqSDVkgC0tzcnEEJaHPgJcwIhCwwmlVl1f8u6f2XptzYyQGshnxpZR15PpSwk9nbwwDQzPdh6XihRyzjzQ+aScub8ubCqQX/OvszNm9r9+JAUt9wtL8xwjxhYfY6qY3PihsAFB2Q6yfJndN1yRbqsytm9+v79m8gpMoxoqEwKyC5f2XUghlb1fTzplotAGoQz1uekck8XezJtTANPz03H2/pNS8YRj6uytiN3eNNFt9v4ITgnEMZ5CHGqYRMOXABUjT4k2V4KSMzw5dFHMAFkekR5NJ6eK+ftQ3NwlpJd8Raj6S7tXOPtZs1la7Sf7CpczK31ooFzbApPtImbbdBWKke63Vme21AtUMYmuQBbCErbm/D96+B7kyg+5UT9ta//6fHkAYymHCX8sDN0ZWBBQDIoVkQaEmSSSy6paKrJRG07bhZBvs0W83kLENPfpuDno23kQ9n+LkAbMiEkLpNfUB6dOOuyS5hdIwHoKJcP968RVwt+Mwt6GTaghl37eVV2LqjvcIOYnDvxZP31o/frrX54Wv31SUvt5f9opBXeR5YYOwrK9B5JnyZse8p2wC6dRA9YH2ml X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 33732804-015c-4223-b720-08dc25883244 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Feb 2024 13:50:07.0778 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8P250MB0344 Subject: [FFmpeg-devel] [PATCH] avfilter/fifo: Remove (a)fifo filters X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: BrTBm/aXBJDt Obsolete since 4ca1fb9d2a91757c8c4c34dd456abf340e3f765f. Signed-off-by: Andreas Rheinhardt --- doc/filters.texi | 9 --- libavfilter/Makefile | 1 - libavfilter/allfilters.c | 2 - libavfilter/fifo.c | 165 --------------------------------------- 4 files changed, 177 deletions(-) delete mode 100644 libavfilter/fifo.c diff --git a/doc/filters.texi b/doc/filters.texi index b9b539acee..e0436a5755 100644 --- a/doc/filters.texi +++ b/doc/filters.texi @@ -14122,15 +14122,6 @@ For example: ffmpeg -i in.vob -vf "fieldorder=bff" out.dv @end example -@section fifo, afifo - -Buffer input images and send them when they are requested. - -It is mainly useful when auto-inserted by the libavfilter -framework. - -It does not take parameters. - @section fillborders Fill borders of the input video, without changing video stream dimensions. diff --git a/libavfilter/Makefile b/libavfilter/Makefile index bba0219876..f6c1d641d6 100644 --- a/libavfilter/Makefile +++ b/libavfilter/Makefile @@ -16,7 +16,6 @@ OBJS = allfilters.o \ colorspace.o \ ccfifo.o \ drawutils.o \ - fifo.o \ formats.o \ framepool.o \ framequeue.o \ diff --git a/libavfilter/allfilters.c b/libavfilter/allfilters.c index af84aa3d97..149bf50997 100644 --- a/libavfilter/allfilters.c +++ b/libavfilter/allfilters.c @@ -611,8 +611,6 @@ extern const AVFilter ff_asrc_abuffer; extern const AVFilter ff_vsrc_buffer; extern const AVFilter ff_asink_abuffer; extern const AVFilter ff_vsink_buffer; -extern const AVFilter ff_af_afifo; -extern const AVFilter ff_vf_fifo; #include "libavfilter/filter_list.c" diff --git a/libavfilter/fifo.c b/libavfilter/fifo.c deleted file mode 100644 index 1c7be88ae1..0000000000 --- a/libavfilter/fifo.c +++ /dev/null @@ -1,165 +0,0 @@ -/* - * Copyright (c) 2007 Bobby Bingham - * - * This file is part of FFmpeg. - * - * FFmpeg is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * FFmpeg is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with FFmpeg; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -/** - * @file - * FIFO buffering filter - */ - -#include "libavutil/common.h" -#include "libavutil/mathematics.h" - -#include "audio.h" -#include "avfilter.h" -#include "internal.h" - -typedef struct Buf { - AVFrame *frame; - struct Buf *next; -} Buf; - -typedef struct FifoContext { - Buf root; - Buf *last; ///< last buffered frame - - /** - * When a specific number of output samples is requested, the partial - * buffer is stored here - */ - AVFrame *out; - int allocated_samples; ///< number of samples out was allocated for -} FifoContext; - -static av_cold int init(AVFilterContext *ctx) -{ - FifoContext *s = ctx->priv; - s->last = &s->root; - - return 0; -} - -static av_cold void uninit(AVFilterContext *ctx) -{ - FifoContext *s = ctx->priv; - Buf *buf, *tmp; - - for (buf = s->root.next; buf; buf = tmp) { - tmp = buf->next; - av_frame_free(&buf->frame); - av_free(buf); - } - - av_frame_free(&s->out); -} - -static int add_to_queue(AVFilterLink *inlink, AVFrame *frame) -{ - FifoContext *s = inlink->dst->priv; - - s->last->next = av_mallocz(sizeof(Buf)); - if (!s->last->next) { - av_frame_free(&frame); - return AVERROR(ENOMEM); - } - - s->last = s->last->next; - s->last->frame = frame; - - return 0; -} - -static void queue_pop(FifoContext *s) -{ - Buf *tmp = s->root.next->next; - if (s->last == s->root.next) - s->last = &s->root; - av_freep(&s->root.next); - s->root.next = tmp; -} - -static int request_frame(AVFilterLink *outlink) -{ - FifoContext *s = outlink->src->priv; - int ret = 0; - - if (!s->root.next) { - if ((ret = ff_request_frame(outlink->src->inputs[0])) < 0) - return ret; - if (!s->root.next) - return 0; - } - ret = ff_filter_frame(outlink, s->root.next->frame); - queue_pop(s); - return ret; -} - -static const AVFilterPad avfilter_vf_fifo_inputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - .filter_frame = add_to_queue, - }, -}; - -static const AVFilterPad avfilter_vf_fifo_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - .request_frame = request_frame, - }, -}; - -const AVFilter ff_vf_fifo = { - .name = "fifo", - .description = NULL_IF_CONFIG_SMALL("Buffer input images and send them when they are requested."), - .init = init, - .uninit = uninit, - .priv_size = sizeof(FifoContext), - .flags = AVFILTER_FLAG_METADATA_ONLY, - FILTER_INPUTS(avfilter_vf_fifo_inputs), - FILTER_OUTPUTS(avfilter_vf_fifo_outputs), -}; - -static const AVFilterPad avfilter_af_afifo_inputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_AUDIO, - .filter_frame = add_to_queue, - }, -}; - -static const AVFilterPad avfilter_af_afifo_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_AUDIO, - .request_frame = request_frame, - }, -}; - -const AVFilter ff_af_afifo = { - .name = "afifo", - .description = NULL_IF_CONFIG_SMALL("Buffer input frames and send them when they are requested."), - .init = init, - .uninit = uninit, - .priv_size = sizeof(FifoContext), - .flags = AVFILTER_FLAG_METADATA_ONLY, - FILTER_INPUTS(avfilter_af_afifo_inputs), - FILTER_OUTPUTS(avfilter_af_afifo_outputs), -};