From patchwork Thu Aug 3 14:33:05 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 43110 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:c11f:b0:130:ccc6:6c4b with SMTP id bh31csp1359820pzb; Thu, 3 Aug 2023 07:32:37 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHR/ivVp2HavyKX5rcTl3mabqQALYwzB7T+kVOVnNFrZofvYsSx5gwTyD5t+355DBJWji5H X-Received: by 2002:a05:6402:7:b0:523:10bf:ce38 with SMTP id d7-20020a056402000700b0052310bfce38mr668393edu.33.1691073157095; Thu, 03 Aug 2023 07:32:37 -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 w15-20020aa7dccf000000b0052237dfa831si11750864edu.541.2023.08.03.07.32.35; Thu, 03 Aug 2023 07:32:37 -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=@outlook.com header.s=selector1 header.b=lEtbzn7d; 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 287A868C6D1; Thu, 3 Aug 2023 17:32:25 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01olkn2025.outbound.protection.outlook.com [40.92.66.25]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 034AE68C655 for ; Thu, 3 Aug 2023 17:32:18 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EMDVCdhUv+8AZl9iFMyqcxOnlHbDKS+xnpDKab85iXFvCRb7meBhONDMRYQ6FkI4ChBFAWcNNPWQE4ToyXkqe6+T90jVzp5YtgpQzDZrrvmkY0ApmH8ly1k4rECKNqCpvX21mmeHpexQcercBy60fr1vlj4DdUyet3Rq4aFuE4bvO3lIf4FauXz+JlWoLvwq9AE2llNvfu9abauUY3iZNe2yiCdZAAB8blbtDderNcBo83LkZr1Sl21DysJEnPV8njgye2P8FKFZ6Lj9cQ6WvPSBkZwR0W6l5fr1GztkpX0TG1hbG8vk3Sb6BMbn4tOhIE5aMcOypzaHmuqNAkq8lA== 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=/Widl2MqhFKJPDibeIDOMI6pxy/B2ws8AikZR68ocPM=; b=QvWT1zybYNEQ1Lim8y5xl6uFS5EWrqhMt/rGyGDrmCgvl6cP23kScEbGxDK98tH22zi4b5ZSgIT0F2bArhqGa2rGw4m+usM2fTZxrsJuWJZ2G7ZOTEy4EUIC7DfJJ4H3KGq+MobtyAYWyYNOOjyC2hHmcsFYumETx75w1J6PL+kWRAvyZSeAeVolyCLFjCDW1DugQdPMZ7cVKMXDwkyn/VVCDPzWheMoUA5QOFDUyLs5f4vM6CmmRekcFbJMWdQLraFK2JvUHOu03F5JYMZ/1NuuSDhif6xfzBTg3EzoNu2un/IszJp+pKph4ZNqrz0BWa1/jxpcrue2W4LO0016vQ== 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=/Widl2MqhFKJPDibeIDOMI6pxy/B2ws8AikZR68ocPM=; b=lEtbzn7drwNofBFUo/galKS+p1bsuEpjOEIDbThN5H6spbcQeuNQNDrv/6/+GQ9syLANXYEL6s1p7YwLAFGNYqweusyGJ3fgZjCHyTBkyO4zlRYlCPTPdEaV3MSUWokE58+5psSOSuYuPFW7mWcNDb2JuUNRCuL4czSwQQajinuuPNBk2rmBbzvSzems9eJ6JHpqFnRn1tcEIjB7E1gx7f7MP7JvEQHTw//y4xr7ciMp0MhHb7INe1vB2OU2986ac09N6RQTl1PfzxdaveDMmZcLCe3TIaURXy5ic9GA1l/w6MaZEYk3yXKcAJdd3nXZwwB9TiDYdbQ7cE4cdd5eYg== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by DU2P250MB0191.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:277::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6631.47; Thu, 3 Aug 2023 14:32:06 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4d3a:7ca6:cf28:9e8c]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4d3a:7ca6:cf28:9e8c%7]) with mapi id 15.20.6631.046; Thu, 3 Aug 2023 14:32:06 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 3 Aug 2023 16:33:05 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [0SnaPVMEujcFYVUZv3K/ihdjpDj7OKWXfXjQMQrVrco=] X-ClientProxiedBy: ZR0P278CA0088.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:22::21) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20230803143306.1310514-2-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|DU2P250MB0191:EE_ X-MS-Office365-Filtering-Correlation-Id: 697889ac-894c-4514-b7c8-08db942e6992 X-MS-Exchange-SLBlob-MailProps: EgT5Wr3QDKw9/h+mHxnUXAKsdmikUs0wnz63bTwzq0xVtNFJiE3kuQlFuugI2wbSWScTfwnvUkw6thW9DDkzKvrreOwNFVBCJFFDo1nkfz+HTeD88psl07G7DdnqId6v+9SNDJzJTFvwIUixk34WJ4RZvc6jRzo/scNy2ok6ABpboGZXtMEZPhlvBLKmNm9zBirnOiMAm5DFBFMiNn9UdCaJRhNBpf+huwxW72sS9KPgA9P7rwKdvHZQUy1WRZik1O4c2RLbqiZH82WCT3u73GXyOajOS2R5IaikxMnHP63SSdZarId5TADF9tdVOISxj+lYxWdFWL5R6FTJnw9WsCKXtYfaTu/eAf8PBCxHy9NzsALOc3JDF67c/vm5pJ7bXvzPwKaWXZPwJK4Nv6VW3SddKIYmnkECDICSKgRntgk2S4xoP18sCanT1u/nyFiGpuKPyNoiiFmw5vijTuOtChvRf23zT4uTT2zzACgqplkiucRy0u9wqmWLVkUAs6F4/LHtNfA5ItilOPN0XS79diXWfDEvLxoJEPORSxb16y5j53eJqEBqNdyTDhG9RNzUC+b8TDMgEC/aniAlxmcayWJVzD6xqXyD0y7IZuGM2C3plUWGXNKsz2Ix+OFYhbgcrshRw6pPVUZum2Phw/t2n+834MKRRXxLi6kruV80U6q6xTeqH6QNRwpAphITgMfFEaBqgaGbsAAwiAaTbLbDzBSTgbL5i3uf7jcE+hQbAYI= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: U5lBkxUezFrf6j5a9QTIQjgu/O8T9nte8P3FAU0wc1GNpqlXCWqxM7mulbVGOwqAfhMn7nhVmsGnP6CzZd0eVhYUDpye3IZLa80d80qVkYnk+IPdIzqf6oaewoJoxDJGJ/gdz2WMPfUUGhseUMjnvHQr08qsSVD5x+5BjRDn7jntsCPuQSrfEdfsRAX1c3DsQ0rAbYajzpw/6oaTK6YZvoO18VQHmk/F2mWR7WxCzF0268WUEP+UeVUZB+2aNJURd6myEzW6v7VeYhHl8fxfBEhXhUYoWNjnY1QqiLNIQaYZhT7q4ZfBIQdJp3BSM2vAdmc6bhKGPyWOiZmDme1Z040KQKsrw1UK8egfIqj9+Kgy4AZSpc0s6OB22WLC0pslbfD6Up2izPPo/TniKuorGqodGp1cwJWWziMOkm/6pzQAESB2Bjkz5HTaOD0lKdIbApaPV8ETPR3lgTZ0wleLQ6IReSu/mGizAX3w491GygUuRvfVGYHvvqigjrkDQun9CYDPCdVRw6VdIPti4fS89OgSOofDVfJQdcvv0yB2VWbne+By6U/wwYpvs9bPyENtrH0Evf4oZRm6P+nKvCgKorIF3kh83Naouk2QRWOKpN9YMu8GoNtAkrCEWyU/rAWP X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: bjhRIe2pW/JjO4Zu72tiXlMc6MQN5cF/9OPCi3W42bHFGbXP3mOHhOxUMgDR9cozWBwqvXWUicbxvf6qamXBawy5LLqUKt9mzn8m88B5AOG0A8dBnurEYVJTlQaho8uhsmaJrCUSAbXHzIBFiao7i/onRWV9/OGSFkyc1YqcCmxkSFwZP1GAki9ocgGbmjynNHsnIveu3blzO4cB+oH01D1D9k9N9uRl40F1Et40W3mAhEtVZYaNfxhJOQhXPyPXGi4prg8Afusul/8K6/uIDfIgHI32G9YWO2kymuCSVJTfGa8+/9QUyyQZHljKEz3CJDVofkz1p8+rJadZ2cRGiXZMn4rU0oMdyHf7WLErU64+vP1MjArlUVtbzp/wNa5bKAYEsiAYj2mct1PeJaLcYtQDMTgyp4vDy1AplczinY6UjokNqgFfWDd2vxMygxErZZPq/TVoJHlvxTxr9ULgFSh8nJDbbmdFpsRmD1T9w8WAFBTDZm7pVIohisb/kOvjINFHtK3yQp+Mct05hxIQdZP7FcBYOmMuTatHDB9iaQZ2+qyEcjum4H7FvP2QOC/HopXqRkrXqUvWjLccbmnXL4rElzZUVasiG/RD5br/oSrV5ROj+rNGBu581nn0V3YNaL5v3lNuz7VikD5LpOzAr/9H+f47wzfYWt5y92UrEuNCpZ5UKd6c/acC7LEZ/xqEndwqqU1NXNYAfQhTZ2MCODt+r1Uuxkr30fA0y/Jo5FBdMHjdSEToaBd7MuUcIADW0eq8aco+hZUeQePy0zXSFzNa746jEva4ybSILHNL0l2871MyOBfqaHqKo/DfRBEXe7sV8TwWi9Q6o5kYKFSQTZodOCgTarz58C7fa1u53Se62QVn2FRlXD27kszFBzDFOEHopZV7clXo0pnTB1B3qjhEnCR5chgKhmCUmc/eo5l4CDNyb5X4DIVzZs8G1WlV69X3x1mqwRA6vgE1HTMABBzJ4HMpRbCdBByecnhhF7HEFntEVEqOm0ewZUjJBpx7oA8EpXxsGoJUhJRPLlyMKYTPfFaG+l9i07jH/p42VqVq6zVa+TXMplSmus/IA1IfirMMUEJNY2KUA2B85Wx5exFvhg2xdjqIRm9EjVYJ8iEBVQ4NTJiECuASF8d+DN3uGdrvWaZZIxcZSR5KCxqrt1IzFJI2oyx4ZXZvVyEq30HnOOziZyF7miqHoPSe7M6UZLteAchi/IC6E+0DU4GaP05MReVWhj8DByJPWR3Q5c3iMXW5gWl3FrqPEfnT+rs9 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 697889ac-894c-4514-b7c8-08db942e6992 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2023 14:32:06.7283 (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: DU2P250MB0191 Subject: [FFmpeg-devel] [PATCH 3/4] avfilter: Deduplicate default video inputs/outputs 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: RF1Ug7J9k+jl Lots of video filters use a very simple input or output: An array with a single AVFilterPad whose name is "default" and whose type is AVMEDIA_TYPE_VIDEO; everything else is unset. Given that we never use pointer equality for inputs or outputs*, we can simply use a single AVFilterPad instead of dozens; this even saves .data.rel.ro (8312B here) as well as relocations. *: In fact, several filters (like the filters in vf_lut.c) already use the same outputs; furthermore, ff_filter_alloc() duplicates the input and output pads so that we do not even work with the pads directly. Signed-off-by: Andreas Rheinhardt --- libavfilter/buffersink.c | 10 ++-------- libavfilter/f_bench.c | 10 ++-------- libavfilter/f_cue.c | 19 +++---------------- libavfilter/f_graphmonitor.c | 9 +-------- libavfilter/f_latency.c | 19 +++---------------- libavfilter/f_loop.c | 18 ++---------------- libavfilter/f_metadata.c | 9 +-------- libavfilter/f_perms.c | 9 +-------- libavfilter/f_realtime.c | 10 ++-------- libavfilter/f_sendcmd.c | 9 +-------- libavfilter/f_sidedata.c | 10 ++-------- libavfilter/f_zmq.c | 9 +-------- libavfilter/setpts.c | 9 +-------- libavfilter/settb.c | 9 +-------- libavfilter/split.c | 9 +-------- libavfilter/trim.c | 10 ++-------- libavfilter/vf_addroi.c | 10 ++-------- libavfilter/vf_avgblur.c | 9 +-------- libavfilter/vf_bilateral.c | 9 +-------- libavfilter/vf_bitplanenoise.c | 9 +-------- libavfilter/vf_blackdetect.c | 10 ++-------- libavfilter/vf_blackframe.c | 9 +-------- libavfilter/vf_blockdetect.c | 10 ++-------- libavfilter/vf_blurdetect.c | 10 ++-------- libavfilter/vf_boxblur.c | 9 +-------- libavfilter/vf_cas.c | 9 +-------- libavfilter/vf_ccrepack.c | 10 ++-------- libavfilter/vf_chromanr.c | 9 +-------- libavfilter/vf_chromashift.c | 11 ++--------- libavfilter/vf_codecview.c | 10 ++-------- libavfilter/vf_colorconstancy.c | 9 +-------- libavfilter/vf_colorcontrast.c | 9 +-------- libavfilter/vf_colorcorrect.c | 9 +-------- libavfilter/vf_colorize.c | 9 +-------- libavfilter/vf_colorlevels.c | 9 +-------- libavfilter/vf_colormatrix.c | 9 +-------- libavfilter/vf_colortemperature.c | 9 +-------- libavfilter/vf_convolution.c | 19 ++++++------------- libavfilter/vf_copy.c | 9 +-------- libavfilter/vf_cover_rect.c | 10 ++-------- libavfilter/vf_cropdetect.c | 9 +-------- libavfilter/vf_curves.c | 9 +-------- libavfilter/vf_datascope.c | 18 ++---------------- libavfilter/vf_dblur.c | 9 +-------- libavfilter/vf_dctdnoiz.c | 9 +-------- libavfilter/vf_deband.c | 9 +-------- libavfilter/vf_dedot.c | 9 +-------- libavfilter/vf_delogo.c | 9 +-------- libavfilter/vf_derain.c | 9 +-------- libavfilter/vf_deshake.c | 9 +-------- libavfilter/vf_dnn_classify.c | 19 +++---------------- libavfilter/vf_dnn_detect.c | 19 +++---------------- libavfilter/vf_drawbox.c | 18 ++---------------- libavfilter/vf_edgedetect.c | 9 +-------- libavfilter/vf_elbg.c | 9 +-------- libavfilter/vf_entropy.c | 9 +-------- libavfilter/vf_eq.c | 9 +-------- libavfilter/vf_exposure.c | 9 +-------- libavfilter/vf_fade.c | 9 +-------- libavfilter/vf_fftfilt.c | 9 +-------- libavfilter/vf_fieldorder.c | 9 +-------- libavfilter/vf_fillborders.c | 9 +-------- libavfilter/vf_find_rect.c | 10 ++-------- libavfilter/vf_floodfill.c | 9 +-------- libavfilter/vf_format.c | 18 ++---------------- libavfilter/vf_fps.c | 10 ++-------- libavfilter/vf_freezedetect.c | 10 ++-------- libavfilter/vf_frei0r.c | 9 +-------- libavfilter/vf_fspp.c | 9 +-------- libavfilter/vf_gblur.c | 9 +-------- libavfilter/vf_geq.c | 9 +-------- libavfilter/vf_gradfun.c | 9 +-------- libavfilter/vf_grayworld.c | 9 +-------- libavfilter/vf_hflip.c | 9 +-------- libavfilter/vf_histeq.c | 9 +-------- libavfilter/vf_hqdn3d.c | 9 +-------- libavfilter/vf_hue.c | 9 +-------- libavfilter/vf_huesaturation.c | 9 +-------- libavfilter/vf_iccdetect.c | 10 ++-------- libavfilter/vf_iccgen.c | 10 ++-------- libavfilter/vf_il.c | 9 +-------- libavfilter/vf_kerndeint.c | 9 +-------- libavfilter/vf_limiter.c | 9 +-------- libavfilter/vf_lumakey.c | 9 +-------- libavfilter/vf_lut.c | 7 +------ libavfilter/vf_lut3d.c | 18 ++---------------- libavfilter/vf_maskfun.c | 9 +-------- libavfilter/vf_mcdeint.c | 9 +-------- libavfilter/vf_median.c | 9 +-------- libavfilter/vf_mestimate.c | 9 +-------- libavfilter/vf_monochrome.c | 9 +-------- libavfilter/vf_mpdecimate.c | 9 +-------- libavfilter/vf_negate.c | 9 +-------- libavfilter/vf_neighbor.c | 9 +-------- libavfilter/vf_nlmeans.c | 9 +-------- libavfilter/vf_noise.c | 9 +-------- libavfilter/vf_normalize.c | 9 +-------- libavfilter/vf_null.c | 18 ++---------------- libavfilter/vf_ocr.c | 9 +-------- libavfilter/vf_owdenoise.c | 9 +-------- libavfilter/vf_perspective.c | 9 +-------- libavfilter/vf_phase.c | 9 +-------- libavfilter/vf_photosensitivity.c | 9 +-------- libavfilter/vf_pixdesctest.c | 9 +-------- libavfilter/vf_pp.c | 9 +-------- libavfilter/vf_pp7.c | 9 +-------- libavfilter/vf_pseudocolor.c | 9 +-------- libavfilter/vf_pullup.c | 9 +-------- libavfilter/vf_qp.c | 9 +-------- libavfilter/vf_readeia608.c | 9 +-------- libavfilter/vf_readvitc.c | 10 ++-------- libavfilter/vf_removegrain.c | 9 +-------- libavfilter/vf_removelogo.c | 9 +-------- libavfilter/vf_repeatfields.c | 10 ++-------- libavfilter/vf_sab.c | 9 +-------- libavfilter/vf_scdet.c | 10 ++-------- libavfilter/vf_scroll.c | 9 +-------- libavfilter/vf_selectivecolor.c | 9 +-------- libavfilter/vf_separatefields.c | 10 ++-------- libavfilter/vf_setparams.c | 13 +++---------- libavfilter/vf_shuffleframes.c | 9 +-------- libavfilter/vf_shuffleplanes.c | 9 +-------- libavfilter/vf_siti.c | 9 +-------- libavfilter/vf_smartblur.c | 9 +-------- libavfilter/vf_spp.c | 9 +-------- libavfilter/vf_subtitles.c | 11 ++--------- libavfilter/vf_swaprect.c | 9 +-------- libavfilter/vf_swapuv.c | 9 +-------- libavfilter/vf_tonemap.c | 9 +-------- libavfilter/vf_tpad.c | 9 +-------- libavfilter/vf_unsharp.c | 9 +-------- libavfilter/vf_untile.c | 10 ++-------- libavfilter/vf_uspp.c | 9 +-------- libavfilter/vf_vaguedenoiser.c | 9 +-------- libavfilter/vf_vflip.c | 9 +-------- libavfilter/vf_vfrdet.c | 10 ++-------- libavfilter/vf_vibrance.c | 9 +-------- libavfilter/vf_vidstabdetect.c | 10 ++-------- libavfilter/vf_vidstabtransform.c | 9 +-------- libavfilter/vf_vignette.c | 9 +-------- libavfilter/vf_vmafmotion.c | 10 ++-------- libavfilter/vf_yaepblur.c | 9 +-------- libavfilter/vf_zoompan.c | 9 +-------- libavfilter/video.c | 7 +++++++ libavfilter/video.h | 5 +++++ 145 files changed, 203 insertions(+), 1231 deletions(-) diff --git a/libavfilter/buffersink.c b/libavfilter/buffersink.c index af9a638e4c..6d83a9310c 100644 --- a/libavfilter/buffersink.c +++ b/libavfilter/buffersink.c @@ -38,6 +38,7 @@ #include "buffersink.h" #include "filters.h" #include "internal.h" +#include "video.h" typedef struct BufferSinkContext { const AVClass *class; @@ -377,13 +378,6 @@ static const AVOption abuffersink_options[] = { AVFILTER_DEFINE_CLASS(buffersink); AVFILTER_DEFINE_CLASS(abuffersink); -static const AVFilterPad avfilter_vsink_buffer_inputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vsink_buffer = { .name = "buffersink", .description = NULL_IF_CONFIG_SMALL("Buffer video frames, and make them available to the end of the filter graph."), @@ -391,7 +385,7 @@ const AVFilter ff_vsink_buffer = { .priv_class = &buffersink_class, .init = common_init, .activate = activate, - FILTER_INPUTS(avfilter_vsink_buffer_inputs), + FILTER_INPUTS(ff_video_default_filterpad), .outputs = NULL, FILTER_QUERY_FUNC(vsink_query_formats), }; diff --git a/libavfilter/f_bench.c b/libavfilter/f_bench.c index 7938583d0e..8b840b4b41 100644 --- a/libavfilter/f_bench.c +++ b/libavfilter/f_bench.c @@ -24,6 +24,7 @@ #include "avfilter.h" #include "formats.h" #include "internal.h" +#include "video.h" enum BenchAction { ACTION_START, @@ -101,20 +102,13 @@ static const AVFilterPad bench_inputs[] = { }, }; -static const AVFilterPad bench_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_bench = { .name = "bench", .description = NULL_IF_CONFIG_SMALL("Benchmark part of a filtergraph."), .priv_size = sizeof(BenchContext), .init = init, FILTER_INPUTS(bench_inputs), - FILTER_OUTPUTS(bench_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), .priv_class = &bench_class, .flags = AVFILTER_FLAG_METADATA_ONLY, }; diff --git a/libavfilter/f_cue.c b/libavfilter/f_cue.c index 290a828d99..7748e8f1fd 100644 --- a/libavfilter/f_cue.c +++ b/libavfilter/f_cue.c @@ -26,6 +26,7 @@ #include "avfilter.h" #include "filters.h" #include "internal.h" +#include "video.h" typedef struct CueContext { const AVClass *class; @@ -100,27 +101,13 @@ static const AVOption options[] = { AVFILTER_DEFINE_CLASS_EXT(cue_acue, "(a)cue", options); #if CONFIG_CUE_FILTER -static const AVFilterPad cue_inputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - -static const AVFilterPad cue_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_cue = { .name = "cue", .description = NULL_IF_CONFIG_SMALL("Delay filtering to match a cue."), .priv_class = &cue_acue_class, .priv_size = sizeof(CueContext), - FILTER_INPUTS(cue_inputs), - FILTER_OUTPUTS(cue_outputs), + FILTER_INPUTS(ff_video_default_filterpad), + FILTER_OUTPUTS(ff_video_default_filterpad), .activate = activate, }; #endif /* CONFIG_CUE_FILTER */ diff --git a/libavfilter/f_graphmonitor.c b/libavfilter/f_graphmonitor.c index e75cc52fbe..ce4153fc79 100644 --- a/libavfilter/f_graphmonitor.c +++ b/libavfilter/f_graphmonitor.c @@ -570,13 +570,6 @@ AVFILTER_DEFINE_CLASS_EXT(graphmonitor, "(a)graphmonitor", graphmonitor_options) #if CONFIG_GRAPHMONITOR_FILTER -static const AVFilterPad graphmonitor_inputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - static const AVFilterPad graphmonitor_outputs[] = { { .name = "default", @@ -593,7 +586,7 @@ const AVFilter ff_vf_graphmonitor = { .init = init, .uninit = uninit, .activate = activate, - FILTER_INPUTS(graphmonitor_inputs), + FILTER_INPUTS(ff_video_default_filterpad), FILTER_OUTPUTS(graphmonitor_outputs), FILTER_QUERY_FUNC(query_formats), .process_command = ff_filter_process_command, diff --git a/libavfilter/f_latency.c b/libavfilter/f_latency.c index a497e0c71a..7c97363853 100644 --- a/libavfilter/f_latency.c +++ b/libavfilter/f_latency.c @@ -26,6 +26,7 @@ #include "filters.h" #include "formats.h" #include "internal.h" +#include "video.h" typedef struct LatencyContext { int64_t min_latency; @@ -100,20 +101,6 @@ static av_cold void uninit(AVFilterContext *ctx) #if CONFIG_LATENCY_FILTER -static const AVFilterPad latency_inputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - -static const AVFilterPad latency_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_latency = { .name = "latency", .description = NULL_IF_CONFIG_SMALL("Report video filtering latency."), @@ -123,8 +110,8 @@ const AVFilter ff_vf_latency = { .activate = activate, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_METADATA_ONLY, - FILTER_INPUTS(latency_inputs), - FILTER_OUTPUTS(latency_outputs), + FILTER_INPUTS(ff_video_default_filterpad), + FILTER_OUTPUTS(ff_video_default_filterpad), }; #endif // CONFIG_LATENCY_FILTER diff --git a/libavfilter/f_loop.c b/libavfilter/f_loop.c index 6a654c2109..23bdfba57e 100644 --- a/libavfilter/f_loop.c +++ b/libavfilter/f_loop.c @@ -470,20 +470,6 @@ static const AVOption loop_options[] = { AVFILTER_DEFINE_CLASS(loop); -static const AVFilterPad inputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - -static const AVFilterPad outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_loop = { .name = "loop", .description = NULL_IF_CONFIG_SMALL("Loop video frames."), @@ -492,7 +478,7 @@ const AVFilter ff_vf_loop = { .init = init, .uninit = uninit, .activate = activate, - FILTER_INPUTS(inputs), - FILTER_OUTPUTS(outputs), + FILTER_INPUTS(ff_video_default_filterpad), + FILTER_OUTPUTS(ff_video_default_filterpad), }; #endif /* CONFIG_LOOP_FILTER */ diff --git a/libavfilter/f_metadata.c b/libavfilter/f_metadata.c index 5679dfb203..86500cd353 100644 --- a/libavfilter/f_metadata.c +++ b/libavfilter/f_metadata.c @@ -404,13 +404,6 @@ static const AVFilterPad inputs[] = { }, }; -static const AVFilterPad outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_metadata = { .name = "metadata", .description = NULL_IF_CONFIG_SMALL("Manipulate video frame metadata."), @@ -419,7 +412,7 @@ const AVFilter ff_vf_metadata = { .init = init, .uninit = uninit, FILTER_INPUTS(inputs), - FILTER_OUTPUTS(outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_METADATA_ONLY, }; diff --git a/libavfilter/f_perms.c b/libavfilter/f_perms.c index 1c8cc5f68b..16b8e5c12f 100644 --- a/libavfilter/f_perms.c +++ b/libavfilter/f_perms.c @@ -149,20 +149,13 @@ static const AVFilterPad perms_inputs[] = { }, }; -static const AVFilterPad perms_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_perms = { .name = "perms", .description = NULL_IF_CONFIG_SMALL("Set permissions for the output video frame."), .init = init, .priv_size = sizeof(PermsContext), FILTER_INPUTS(perms_inputs), - FILTER_OUTPUTS(perms_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), .priv_class = &perms_class, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_METADATA_ONLY, diff --git a/libavfilter/f_realtime.c b/libavfilter/f_realtime.c index 278ee18f36..83793bbe15 100644 --- a/libavfilter/f_realtime.c +++ b/libavfilter/f_realtime.c @@ -25,6 +25,7 @@ #include "audio.h" #include "avfilter.h" #include "internal.h" +#include "video.h" #include typedef struct RealtimeContext { @@ -86,13 +87,6 @@ static const AVFilterPad avfilter_vf_realtime_inputs[] = { }, }; -static const AVFilterPad avfilter_vf_realtime_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_realtime = { .name = "realtime", .description = NULL_IF_CONFIG_SMALL("Slow down filtering to match realtime."), @@ -100,7 +94,7 @@ const AVFilter ff_vf_realtime = { .priv_class = &realtime_class, .flags = AVFILTER_FLAG_METADATA_ONLY, FILTER_INPUTS(avfilter_vf_realtime_inputs), - FILTER_OUTPUTS(avfilter_vf_realtime_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), .process_command = ff_filter_process_command, }; #endif /* CONFIG_REALTIME_FILTER */ diff --git a/libavfilter/f_sendcmd.c b/libavfilter/f_sendcmd.c index 9f27fbde14..922ce78287 100644 --- a/libavfilter/f_sendcmd.c +++ b/libavfilter/f_sendcmd.c @@ -600,13 +600,6 @@ static const AVFilterPad sendcmd_inputs[] = { }, }; -static const AVFilterPad sendcmd_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_sendcmd = { .name = "sendcmd", .description = NULL_IF_CONFIG_SMALL("Send commands to filters."), @@ -615,7 +608,7 @@ const AVFilter ff_vf_sendcmd = { .priv_size = sizeof(SendCmdContext), .flags = AVFILTER_FLAG_METADATA_ONLY, FILTER_INPUTS(sendcmd_inputs), - FILTER_OUTPUTS(sendcmd_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), .priv_class = &sendcmd_class, }; diff --git a/libavfilter/f_sidedata.c b/libavfilter/f_sidedata.c index 23e95d0b8a..208b457804 100644 --- a/libavfilter/f_sidedata.c +++ b/libavfilter/f_sidedata.c @@ -31,6 +31,7 @@ #include "avfilter.h" #include "formats.h" #include "internal.h" +#include "video.h" enum SideDataMode { SIDEDATA_SELECT, @@ -161,13 +162,6 @@ static const AVFilterPad inputs[] = { }, }; -static const AVFilterPad outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_sidedata = { .name = "sidedata", .description = NULL_IF_CONFIG_SMALL("Manipulate video frame side data."), @@ -175,7 +169,7 @@ const AVFilter ff_vf_sidedata = { .priv_class = &sidedata_class, .init = init, FILTER_INPUTS(inputs), - FILTER_OUTPUTS(outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_METADATA_ONLY, }; diff --git a/libavfilter/f_zmq.c b/libavfilter/f_zmq.c index d368482a68..3829b55224 100644 --- a/libavfilter/f_zmq.c +++ b/libavfilter/f_zmq.c @@ -217,13 +217,6 @@ static const AVFilterPad zmq_inputs[] = { }, }; -static const AVFilterPad zmq_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_zmq = { .name = "zmq", .description = NULL_IF_CONFIG_SMALL("Receive commands through ZMQ and broker them to filters."), @@ -231,7 +224,7 @@ const AVFilter ff_vf_zmq = { .uninit = uninit, .priv_size = sizeof(ZMQContext), FILTER_INPUTS(zmq_inputs), - FILTER_OUTPUTS(zmq_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), .priv_class = &zmq_class, }; diff --git a/libavfilter/setpts.c b/libavfilter/setpts.c index e5150b7e03..d057fc91c4 100644 --- a/libavfilter/setpts.c +++ b/libavfilter/setpts.c @@ -326,13 +326,6 @@ static const AVFilterPad avfilter_vf_setpts_inputs[] = { }, }; -static const AVFilterPad avfilter_vf_setpts_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_setpts = { .name = "setpts", .description = NULL_IF_CONFIG_SMALL("Set PTS for the output video frame."), @@ -346,7 +339,7 @@ const AVFilter ff_vf_setpts = { .priv_class = &setpts_class, FILTER_INPUTS(avfilter_vf_setpts_inputs), - FILTER_OUTPUTS(avfilter_vf_setpts_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), }; #endif /* CONFIG_SETPTS_FILTER */ diff --git a/libavfilter/settb.c b/libavfilter/settb.c index c7523436d3..ba58abd9e9 100644 --- a/libavfilter/settb.c +++ b/libavfilter/settb.c @@ -165,13 +165,6 @@ static int activate(AVFilterContext *ctx) DEFINE_OPTIONS(settb, VIDEO); AVFILTER_DEFINE_CLASS(settb); -static const AVFilterPad avfilter_vf_settb_inputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - static const AVFilterPad avfilter_vf_settb_outputs[] = { { .name = "default", @@ -185,7 +178,7 @@ const AVFilter ff_vf_settb = { .description = NULL_IF_CONFIG_SMALL("Set timebase for the video output link."), .priv_size = sizeof(SetTBContext), .priv_class = &settb_class, - FILTER_INPUTS(avfilter_vf_settb_inputs), + FILTER_INPUTS(ff_video_default_filterpad), FILTER_OUTPUTS(avfilter_vf_settb_outputs), .activate = activate, .flags = AVFILTER_FLAG_METADATA_ONLY, diff --git a/libavfilter/split.c b/libavfilter/split.c index 6f24af3f02..290537aba5 100644 --- a/libavfilter/split.c +++ b/libavfilter/split.c @@ -134,13 +134,6 @@ static const AVOption options[] = { AVFILTER_DEFINE_CLASS_EXT(split, "(a)split", options); -static const AVFilterPad avfilter_vf_split_inputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_split = { .name = "split", .description = NULL_IF_CONFIG_SMALL("Pass on the input to N video outputs."), @@ -148,7 +141,7 @@ const AVFilter ff_vf_split = { .priv_class = &split_class, .init = split_init, .activate = activate, - FILTER_INPUTS(avfilter_vf_split_inputs), + FILTER_INPUTS(ff_video_default_filterpad), .outputs = NULL, .flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS | AVFILTER_FLAG_METADATA_ONLY, }; diff --git a/libavfilter/trim.c b/libavfilter/trim.c index 91a68716c9..4c1a2b4f48 100644 --- a/libavfilter/trim.c +++ b/libavfilter/trim.c @@ -32,6 +32,7 @@ #include "avfilter.h" #include "internal.h" #include "filters.h" +#include "video.h" typedef struct TrimContext { const AVClass *class; @@ -356,13 +357,6 @@ static const AVFilterPad trim_inputs[] = { }, }; -static const AVFilterPad trim_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_trim = { .name = "trim", .description = NULL_IF_CONFIG_SMALL("Pick one continuous section from the input, drop the rest."), @@ -371,7 +365,7 @@ const AVFilter ff_vf_trim = { .priv_size = sizeof(TrimContext), .priv_class = &trim_class, FILTER_INPUTS(trim_inputs), - FILTER_OUTPUTS(trim_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), }; #endif // CONFIG_TRIM_FILTER diff --git a/libavfilter/vf_addroi.c b/libavfilter/vf_addroi.c index dd3daeda81..e7ad916214 100644 --- a/libavfilter/vf_addroi.c +++ b/libavfilter/vf_addroi.c @@ -21,6 +21,7 @@ #include "libavutil/opt.h" #include "avfilter.h" #include "internal.h" +#include "video.h" enum { X, Y, W, H, @@ -246,13 +247,6 @@ static const AVFilterPad addroi_inputs[] = { }, }; -static const AVFilterPad addroi_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_addroi = { .name = "addroi", .description = NULL_IF_CONFIG_SMALL("Add region of interest to frame."), @@ -265,5 +259,5 @@ const AVFilter ff_vf_addroi = { .flags = AVFILTER_FLAG_METADATA_ONLY, FILTER_INPUTS(addroi_inputs), - FILTER_OUTPUTS(addroi_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), }; diff --git a/libavfilter/vf_avgblur.c b/libavfilter/vf_avgblur.c index bd4471cb8e..bbb85bab17 100644 --- a/libavfilter/vf_avgblur.c +++ b/libavfilter/vf_avgblur.c @@ -334,13 +334,6 @@ static const AVFilterPad avgblur_inputs[] = { }, }; -static const AVFilterPad avgblur_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_avgblur = { .name = "avgblur", .description = NULL_IF_CONFIG_SMALL("Apply Average Blur filter."), @@ -348,7 +341,7 @@ const AVFilter ff_vf_avgblur = { .priv_class = &avgblur_class, .uninit = uninit, FILTER_INPUTS(avgblur_inputs), - FILTER_OUTPUTS(avgblur_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, .process_command = process_command, diff --git a/libavfilter/vf_bilateral.c b/libavfilter/vf_bilateral.c index 41dc38d6f2..4d3dfa3511 100644 --- a/libavfilter/vf_bilateral.c +++ b/libavfilter/vf_bilateral.c @@ -498,13 +498,6 @@ static const AVFilterPad bilateral_inputs[] = { }, }; -static const AVFilterPad bilateral_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_bilateral = { .name = "bilateral", .description = NULL_IF_CONFIG_SMALL("Apply Bilateral filter."), @@ -512,7 +505,7 @@ const AVFilter ff_vf_bilateral = { .priv_class = &bilateral_class, .uninit = uninit, FILTER_INPUTS(bilateral_inputs), - FILTER_OUTPUTS(bilateral_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, diff --git a/libavfilter/vf_bitplanenoise.c b/libavfilter/vf_bitplanenoise.c index 5b5c429369..ebd8c4deaf 100644 --- a/libavfilter/vf_bitplanenoise.c +++ b/libavfilter/vf_bitplanenoise.c @@ -197,19 +197,12 @@ static const AVFilterPad inputs[] = { }, }; -static const AVFilterPad outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_bitplanenoise = { .name = "bitplanenoise", .description = NULL_IF_CONFIG_SMALL("Measure bit plane noise."), .priv_size = sizeof(BPNContext), FILTER_INPUTS(inputs), - FILTER_OUTPUTS(outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pixfmts), .priv_class = &bitplanenoise_class, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, diff --git a/libavfilter/vf_blackdetect.c b/libavfilter/vf_blackdetect.c index c937248169..55033ba5ea 100644 --- a/libavfilter/vf_blackdetect.c +++ b/libavfilter/vf_blackdetect.c @@ -30,6 +30,7 @@ #include "libavutil/timestamp.h" #include "avfilter.h" #include "internal.h" +#include "video.h" typedef struct BlackDetectContext { const AVClass *class; @@ -241,19 +242,12 @@ static const AVFilterPad blackdetect_inputs[] = { }, }; -static const AVFilterPad blackdetect_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_blackdetect = { .name = "blackdetect", .description = NULL_IF_CONFIG_SMALL("Detect video intervals that are (almost) black."), .priv_size = sizeof(BlackDetectContext), FILTER_INPUTS(blackdetect_inputs), - FILTER_OUTPUTS(blackdetect_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .uninit = uninit, .priv_class = &blackdetect_class, diff --git a/libavfilter/vf_blackframe.c b/libavfilter/vf_blackframe.c index 4bcec86688..27198b318c 100644 --- a/libavfilter/vf_blackframe.c +++ b/libavfilter/vf_blackframe.c @@ -115,13 +115,6 @@ static const AVFilterPad avfilter_vf_blackframe_inputs[] = { }, }; -static const AVFilterPad avfilter_vf_blackframe_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO - }, -}; - const AVFilter ff_vf_blackframe = { .name = "blackframe", .description = NULL_IF_CONFIG_SMALL("Detect frames that are (almost) black."), @@ -129,6 +122,6 @@ const AVFilter ff_vf_blackframe = { .priv_class = &blackframe_class, .flags = AVFILTER_FLAG_METADATA_ONLY, FILTER_INPUTS(avfilter_vf_blackframe_inputs), - FILTER_OUTPUTS(avfilter_vf_blackframe_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), }; diff --git a/libavfilter/vf_blockdetect.c b/libavfilter/vf_blockdetect.c index 27283590be..d787aff5e4 100644 --- a/libavfilter/vf_blockdetect.c +++ b/libavfilter/vf_blockdetect.c @@ -32,6 +32,7 @@ #include "libavutil/imgutils.h" #include "libavutil/opt.h" #include "internal.h" +#include "video.h" typedef struct BLKContext { const AVClass *class; @@ -272,13 +273,6 @@ static const AVFilterPad blockdetect_inputs[] = { }, }; -static const AVFilterPad blockdetect_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_blockdetect = { .name = "blockdetect", .description = NULL_IF_CONFIG_SMALL("Blockdetect filter."), @@ -286,7 +280,7 @@ const AVFilter ff_vf_blockdetect = { .uninit = blockdetect_uninit, FILTER_PIXFMTS_ARRAY(pix_fmts), FILTER_INPUTS(blockdetect_inputs), - FILTER_OUTPUTS(blockdetect_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), .priv_class = &blockdetect_class, .flags = AVFILTER_FLAG_METADATA_ONLY, }; diff --git a/libavfilter/vf_blurdetect.c b/libavfilter/vf_blurdetect.c index db06efcce7..354a6b6100 100644 --- a/libavfilter/vf_blurdetect.c +++ b/libavfilter/vf_blurdetect.c @@ -35,6 +35,7 @@ #include "libavutil/qsort.h" #include "internal.h" #include "edge_common.h" +#include "video.h" static int comp(const float *a,const float *b) { @@ -356,13 +357,6 @@ static const AVFilterPad blurdetect_inputs[] = { }, }; -static const AVFilterPad blurdetect_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_blurdetect = { .name = "blurdetect", .description = NULL_IF_CONFIG_SMALL("Blurdetect filter."), @@ -371,7 +365,7 @@ const AVFilter ff_vf_blurdetect = { .uninit = blurdetect_uninit, FILTER_PIXFMTS_ARRAY(pix_fmts), FILTER_INPUTS(blurdetect_inputs), - FILTER_OUTPUTS(blurdetect_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), .priv_class = &blurdetect_class, .flags = AVFILTER_FLAG_METADATA_ONLY, }; diff --git a/libavfilter/vf_boxblur.c b/libavfilter/vf_boxblur.c index e13c2472b3..60375463a6 100644 --- a/libavfilter/vf_boxblur.c +++ b/libavfilter/vf_boxblur.c @@ -295,13 +295,6 @@ static const AVFilterPad avfilter_vf_boxblur_inputs[] = { }, }; -static const AVFilterPad avfilter_vf_boxblur_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_boxblur = { .name = "boxblur", .description = NULL_IF_CONFIG_SMALL("Blur the input."), @@ -309,7 +302,7 @@ const AVFilter ff_vf_boxblur = { .priv_class = &boxblur_class, .uninit = uninit, FILTER_INPUTS(avfilter_vf_boxblur_inputs), - FILTER_OUTPUTS(avfilter_vf_boxblur_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_QUERY_FUNC(query_formats), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, }; diff --git a/libavfilter/vf_cas.c b/libavfilter/vf_cas.c index c45529cef7..545a0dd70a 100644 --- a/libavfilter/vf_cas.c +++ b/libavfilter/vf_cas.c @@ -255,13 +255,6 @@ static const AVFilterPad cas_inputs[] = { }, }; -static const AVFilterPad cas_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - #define OFFSET(x) offsetof(CASContext, x) #define VF AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM|AV_OPT_FLAG_RUNTIME_PARAM @@ -279,7 +272,7 @@ const AVFilter ff_vf_cas = { .priv_size = sizeof(CASContext), .priv_class = &cas_class, FILTER_INPUTS(cas_inputs), - FILTER_OUTPUTS(cas_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pixel_fmts), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, .process_command = ff_filter_process_command, diff --git a/libavfilter/vf_ccrepack.c b/libavfilter/vf_ccrepack.c index 950bb7b528..5213eab82b 100644 --- a/libavfilter/vf_ccrepack.c +++ b/libavfilter/vf_ccrepack.c @@ -32,6 +32,7 @@ #include "avfilter.h" #include "internal.h" #include "ccfifo.h" +#include "video.h" #include "libavutil/opt.h" typedef struct CCRepackContext @@ -85,13 +86,6 @@ static const AVFilterPad avfilter_vf_ccrepack_inputs[] = { }, }; -static const AVFilterPad avfilter_vf_ccrepack_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_ccrepack = { .name = "ccrepack", .description = NULL_IF_CONFIG_SMALL("Repack CEA-708 closed caption metadata"), @@ -99,5 +93,5 @@ const AVFilter ff_vf_ccrepack = { .priv_size = sizeof(CCRepackContext), .priv_class = &ccrepack_class, FILTER_INPUTS(avfilter_vf_ccrepack_inputs), - FILTER_OUTPUTS(avfilter_vf_ccrepack_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), }; diff --git a/libavfilter/vf_chromanr.c b/libavfilter/vf_chromanr.c index 36c29ed8cf..8a16460c06 100644 --- a/libavfilter/vf_chromanr.c +++ b/libavfilter/vf_chromanr.c @@ -289,13 +289,6 @@ static const AVFilterPad inputs[] = { }, }; -static const AVFilterPad outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - AVFILTER_DEFINE_CLASS(chromanr); const AVFilter ff_vf_chromanr = { @@ -303,7 +296,7 @@ const AVFilter ff_vf_chromanr = { .description = NULL_IF_CONFIG_SMALL("Reduce chrominance noise."), .priv_size = sizeof(ChromaNRContext), .priv_class = &chromanr_class, - FILTER_OUTPUTS(outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_INPUTS(inputs), FILTER_PIXFMTS_ARRAY(pix_fmts), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, diff --git a/libavfilter/vf_chromashift.c b/libavfilter/vf_chromashift.c index 2ddfa61726..92869113a9 100644 --- a/libavfilter/vf_chromashift.c +++ b/libavfilter/vf_chromashift.c @@ -382,13 +382,6 @@ static const AVFilterPad inputs[] = { }, }; -static const AVFilterPad outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - static const enum AVPixelFormat yuv_pix_fmts[] = { AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ422P,AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ411P, @@ -411,7 +404,7 @@ const AVFilter ff_vf_chromashift = { .description = NULL_IF_CONFIG_SMALL("Shift chroma."), .priv_size = sizeof(ChromaShiftContext), .priv_class = &chromashift_class, - FILTER_OUTPUTS(outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_INPUTS(inputs), FILTER_PIXFMTS_ARRAY(yuv_pix_fmts), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, @@ -448,7 +441,7 @@ const AVFilter ff_vf_rgbashift = { .description = NULL_IF_CONFIG_SMALL("Shift RGBA."), .priv_size = sizeof(ChromaShiftContext), .priv_class = &rgbashift_class, - FILTER_OUTPUTS(outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_INPUTS(inputs), FILTER_PIXFMTS_ARRAY(rgb_pix_fmts), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, diff --git a/libavfilter/vf_codecview.c b/libavfilter/vf_codecview.c index cddb3e5368..0c1ef21e28 100644 --- a/libavfilter/vf_codecview.c +++ b/libavfilter/vf_codecview.c @@ -36,6 +36,7 @@ #include "avfilter.h" #include "qp_table.h" #include "internal.h" +#include "video.h" #define MV_P_FOR (1<<0) #define MV_B_FOR (1<<1) @@ -334,19 +335,12 @@ static const AVFilterPad codecview_inputs[] = { }, }; -static const AVFilterPad codecview_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_codecview = { .name = "codecview", .description = NULL_IF_CONFIG_SMALL("Visualize information about some codecs."), .priv_size = sizeof(CodecViewContext), FILTER_INPUTS(codecview_inputs), - FILTER_OUTPUTS(codecview_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), // TODO: we can probably add way more pixel formats without any other // changes; anything with 8-bit luma in first plane should be working FILTER_SINGLE_PIXFMT(AV_PIX_FMT_YUV420P), diff --git a/libavfilter/vf_colorconstancy.c b/libavfilter/vf_colorconstancy.c index db7e20df53..af0356767f 100644 --- a/libavfilter/vf_colorconstancy.c +++ b/libavfilter/vf_colorconstancy.c @@ -719,13 +719,6 @@ static const AVFilterPad colorconstancy_inputs[] = { }, }; -static const AVFilterPad colorconstancy_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - #if CONFIG_GREYEDGE_FILTER static const AVOption greyedge_options[] = { @@ -744,7 +737,7 @@ const AVFilter ff_vf_greyedge = { .priv_class = &greyedge_class, .uninit = uninit, FILTER_INPUTS(colorconstancy_inputs), - FILTER_OUTPUTS(colorconstancy_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), // TODO: support more formats // FIXME: error when saving to .jpg FILTER_SINGLE_PIXFMT(AV_PIX_FMT_GBRP), diff --git a/libavfilter/vf_colorcontrast.c b/libavfilter/vf_colorcontrast.c index 7561d21259..2cb46cc35a 100644 --- a/libavfilter/vf_colorcontrast.c +++ b/libavfilter/vf_colorcontrast.c @@ -359,13 +359,6 @@ static const AVFilterPad colorcontrast_inputs[] = { }, }; -static const AVFilterPad colorcontrast_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - #define OFFSET(x) offsetof(ColorContrastContext, x) #define VF AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM|AV_OPT_FLAG_RUNTIME_PARAM @@ -388,7 +381,7 @@ const AVFilter ff_vf_colorcontrast = { .priv_size = sizeof(ColorContrastContext), .priv_class = &colorcontrast_class, FILTER_INPUTS(colorcontrast_inputs), - FILTER_OUTPUTS(colorcontrast_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pixel_fmts), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, .process_command = ff_filter_process_command, diff --git a/libavfilter/vf_colorcorrect.c b/libavfilter/vf_colorcorrect.c index ee97b62b0e..55df67404a 100644 --- a/libavfilter/vf_colorcorrect.c +++ b/libavfilter/vf_colorcorrect.c @@ -510,13 +510,6 @@ static const AVFilterPad colorcorrect_inputs[] = { }, }; -static const AVFilterPad colorcorrect_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - #define OFFSET(x) offsetof(ColorCorrectContext, x) #define VF AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM|AV_OPT_FLAG_RUNTIME_PARAM @@ -543,7 +536,7 @@ const AVFilter ff_vf_colorcorrect = { .priv_class = &colorcorrect_class, .uninit = uninit, FILTER_INPUTS(colorcorrect_inputs), - FILTER_OUTPUTS(colorcorrect_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pixel_fmts), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, .process_command = ff_filter_process_command, diff --git a/libavfilter/vf_colorize.c b/libavfilter/vf_colorize.c index ba7b80dae7..03681a788f 100644 --- a/libavfilter/vf_colorize.c +++ b/libavfilter/vf_colorize.c @@ -260,13 +260,6 @@ static const AVFilterPad colorize_inputs[] = { }, }; -static const AVFilterPad colorize_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - #define OFFSET(x) offsetof(ColorizeContext, x) #define VF AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM|AV_OPT_FLAG_RUNTIME_PARAM @@ -286,7 +279,7 @@ const AVFilter ff_vf_colorize = { .priv_size = sizeof(ColorizeContext), .priv_class = &colorize_class, FILTER_INPUTS(colorize_inputs), - FILTER_OUTPUTS(colorize_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pixel_fmts), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, .process_command = ff_filter_process_command, diff --git a/libavfilter/vf_colorlevels.c b/libavfilter/vf_colorlevels.c index 44ae6cffbf..b89f465d67 100644 --- a/libavfilter/vf_colorlevels.c +++ b/libavfilter/vf_colorlevels.c @@ -559,20 +559,13 @@ static const AVFilterPad colorlevels_inputs[] = { }, }; -static const AVFilterPad colorlevels_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_colorlevels = { .name = "colorlevels", .description = NULL_IF_CONFIG_SMALL("Adjust the color levels."), .priv_size = sizeof(ColorLevelsContext), .priv_class = &colorlevels_class, FILTER_INPUTS(colorlevels_inputs), - FILTER_OUTPUTS(colorlevels_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS(AV_PIX_FMT_0RGB, AV_PIX_FMT_0BGR, AV_PIX_FMT_ARGB, AV_PIX_FMT_ABGR, AV_PIX_FMT_RGB0, AV_PIX_FMT_BGR0, diff --git a/libavfilter/vf_colormatrix.c b/libavfilter/vf_colormatrix.c index bee80c69cc..aa00295250 100644 --- a/libavfilter/vf_colormatrix.c +++ b/libavfilter/vf_colormatrix.c @@ -483,20 +483,13 @@ static const AVFilterPad colormatrix_inputs[] = { }, }; -static const AVFilterPad colormatrix_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_colormatrix = { .name = "colormatrix", .description = NULL_IF_CONFIG_SMALL("Convert color matrix."), .priv_size = sizeof(ColorMatrixContext), .init = init, FILTER_INPUTS(colormatrix_inputs), - FILTER_OUTPUTS(colormatrix_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS(AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV420P, diff --git a/libavfilter/vf_colortemperature.c b/libavfilter/vf_colortemperature.c index e6ac5f95c7..e3f3005171 100644 --- a/libavfilter/vf_colortemperature.c +++ b/libavfilter/vf_colortemperature.c @@ -325,13 +325,6 @@ static const AVFilterPad inputs[] = { }, }; -static const AVFilterPad outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - #define OFFSET(x) offsetof(ColorTemperatureContext, x) #define VF AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM|AV_OPT_FLAG_RUNTIME_PARAM @@ -350,7 +343,7 @@ const AVFilter ff_vf_colortemperature = { .priv_size = sizeof(ColorTemperatureContext), .priv_class = &colortemperature_class, FILTER_INPUTS(inputs), - FILTER_OUTPUTS(outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pixel_fmts), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, .process_command = ff_filter_process_command, diff --git a/libavfilter/vf_convolution.c b/libavfilter/vf_convolution.c index 7762fa2a05..814203aeee 100644 --- a/libavfilter/vf_convolution.c +++ b/libavfilter/vf_convolution.c @@ -873,13 +873,6 @@ static const AVFilterPad convolution_inputs[] = { }, }; -static const AVFilterPad convolution_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - #if CONFIG_CONVOLUTION_FILTER const AVFilter ff_vf_convolution = { @@ -888,7 +881,7 @@ const AVFilter ff_vf_convolution = { .priv_size = sizeof(ConvolutionContext), .priv_class = &convolution_class, FILTER_INPUTS(convolution_inputs), - FILTER_OUTPUTS(convolution_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, .process_command = process_command, @@ -914,7 +907,7 @@ const AVFilter ff_vf_prewitt = { .priv_size = sizeof(ConvolutionContext), .priv_class = &common_class, FILTER_INPUTS(convolution_inputs), - FILTER_OUTPUTS(convolution_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, .process_command = process_command, @@ -930,7 +923,7 @@ const AVFilter ff_vf_sobel = { .priv_size = sizeof(ConvolutionContext), .priv_class = &common_class, FILTER_INPUTS(convolution_inputs), - FILTER_OUTPUTS(convolution_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, .process_command = process_command, @@ -946,7 +939,7 @@ const AVFilter ff_vf_roberts = { .priv_size = sizeof(ConvolutionContext), .priv_class = &common_class, FILTER_INPUTS(convolution_inputs), - FILTER_OUTPUTS(convolution_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, .process_command = process_command, @@ -962,7 +955,7 @@ const AVFilter ff_vf_kirsch = { .priv_size = sizeof(ConvolutionContext), .priv_class = &common_class, FILTER_INPUTS(convolution_inputs), - FILTER_OUTPUTS(convolution_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, .process_command = process_command, @@ -978,7 +971,7 @@ const AVFilter ff_vf_scharr = { .priv_size = sizeof(ConvolutionContext), .priv_class = &common_class, FILTER_INPUTS(convolution_inputs), - FILTER_OUTPUTS(convolution_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, .process_command = process_command, diff --git a/libavfilter/vf_copy.c b/libavfilter/vf_copy.c index 2fbced354f..057b851b4c 100644 --- a/libavfilter/vf_copy.c +++ b/libavfilter/vf_copy.c @@ -65,18 +65,11 @@ static const AVFilterPad avfilter_vf_copy_inputs[] = { }, }; -static const AVFilterPad avfilter_vf_copy_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_copy = { .name = "copy", .description = NULL_IF_CONFIG_SMALL("Copy the input video unchanged to the output."), .flags = AVFILTER_FLAG_METADATA_ONLY, FILTER_INPUTS(avfilter_vf_copy_inputs), - FILTER_OUTPUTS(avfilter_vf_copy_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_QUERY_FUNC(query_formats), }; diff --git a/libavfilter/vf_cover_rect.c b/libavfilter/vf_cover_rect.c index 642747a351..7f34311589 100644 --- a/libavfilter/vf_cover_rect.c +++ b/libavfilter/vf_cover_rect.c @@ -26,6 +26,7 @@ #include "libavutil/opt.h" #include "filters.h" #include "internal.h" +#include "video.h" #include "lavfutils.h" @@ -232,13 +233,6 @@ static const AVFilterPad cover_rect_inputs[] = { }, }; -static const AVFilterPad cover_rect_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_cover_rect = { .name = "cover_rect", .description = NULL_IF_CONFIG_SMALL("Find and cover a user specified object."), @@ -246,7 +240,7 @@ const AVFilter ff_vf_cover_rect = { .init = init, .uninit = uninit, FILTER_INPUTS(cover_rect_inputs), - FILTER_OUTPUTS(cover_rect_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS(AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUVJ420P), .priv_class = &cover_rect_class, }; diff --git a/libavfilter/vf_cropdetect.c b/libavfilter/vf_cropdetect.c index 588a38fed8..ff9bcc79f3 100644 --- a/libavfilter/vf_cropdetect.c +++ b/libavfilter/vf_cropdetect.c @@ -495,13 +495,6 @@ static const AVFilterPad avfilter_vf_cropdetect_inputs[] = { }, }; -static const AVFilterPad avfilter_vf_cropdetect_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO - }, -}; - const AVFilter ff_vf_cropdetect = { .name = "cropdetect", .description = NULL_IF_CONFIG_SMALL("Auto-detect crop size."), @@ -510,7 +503,7 @@ const AVFilter ff_vf_cropdetect = { .init = init, .uninit = uninit, FILTER_INPUTS(avfilter_vf_cropdetect_inputs), - FILTER_OUTPUTS(avfilter_vf_cropdetect_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_METADATA_ONLY, .process_command = process_command, diff --git a/libavfilter/vf_curves.c b/libavfilter/vf_curves.c index 838942d745..f77fae7eae 100644 --- a/libavfilter/vf_curves.c +++ b/libavfilter/vf_curves.c @@ -1005,13 +1005,6 @@ static const AVFilterPad curves_inputs[] = { }, }; -static const AVFilterPad curves_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_curves = { .name = "curves", .description = NULL_IF_CONFIG_SMALL("Adjust components curves."), @@ -1019,7 +1012,7 @@ const AVFilter ff_vf_curves = { .init = curves_init, .uninit = curves_uninit, FILTER_INPUTS(curves_inputs), - FILTER_OUTPUTS(curves_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS(AV_PIX_FMT_RGB24, AV_PIX_FMT_BGR24, AV_PIX_FMT_RGBA, AV_PIX_FMT_BGRA, AV_PIX_FMT_ARGB, AV_PIX_FMT_ABGR, diff --git a/libavfilter/vf_datascope.c b/libavfilter/vf_datascope.c index d4f441c0ab..89b59f2510 100644 --- a/libavfilter/vf_datascope.c +++ b/libavfilter/vf_datascope.c @@ -728,20 +728,13 @@ static const AVFilterPad pixscope_inputs[] = { }, }; -static const AVFilterPad pixscope_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_pixscope = { .name = "pixscope", .description = NULL_IF_CONFIG_SMALL("Pixel data analysis."), .priv_size = sizeof(PixscopeContext), .priv_class = &pixscope_class, FILTER_INPUTS(pixscope_inputs), - FILTER_OUTPUTS(pixscope_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_QUERY_FUNC(query_formats), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, .process_command = pixscope_process_command, @@ -1132,13 +1125,6 @@ static const AVFilterPad oscilloscope_inputs[] = { }, }; -static const AVFilterPad oscilloscope_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_oscilloscope = { .name = "oscilloscope", .description = NULL_IF_CONFIG_SMALL("2D Video Oscilloscope."), @@ -1146,7 +1132,7 @@ const AVFilter ff_vf_oscilloscope = { .priv_class = &oscilloscope_class, .uninit = oscilloscope_uninit, FILTER_INPUTS(oscilloscope_inputs), - FILTER_OUTPUTS(oscilloscope_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_QUERY_FUNC(query_formats), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, .process_command = oscilloscope_process_command, diff --git a/libavfilter/vf_dblur.c b/libavfilter/vf_dblur.c index 7dcb873ba8..43100805c4 100644 --- a/libavfilter/vf_dblur.c +++ b/libavfilter/vf_dblur.c @@ -299,13 +299,6 @@ static const AVFilterPad dblur_inputs[] = { }, }; -static const AVFilterPad dblur_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_dblur = { .name = "dblur", .description = NULL_IF_CONFIG_SMALL("Apply Directional Blur filter."), @@ -313,7 +306,7 @@ const AVFilter ff_vf_dblur = { .priv_class = &dblur_class, .uninit = uninit, FILTER_INPUTS(dblur_inputs), - FILTER_OUTPUTS(dblur_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, .process_command = ff_filter_process_command, diff --git a/libavfilter/vf_dctdnoiz.c b/libavfilter/vf_dctdnoiz.c index 95f71bc731..ab96dbe15e 100644 --- a/libavfilter/vf_dctdnoiz.c +++ b/libavfilter/vf_dctdnoiz.c @@ -810,13 +810,6 @@ static const AVFilterPad dctdnoiz_inputs[] = { }, }; -static const AVFilterPad dctdnoiz_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_dctdnoiz = { .name = "dctdnoiz", .description = NULL_IF_CONFIG_SMALL("Denoise frames using 2D DCT."), @@ -824,7 +817,7 @@ const AVFilter ff_vf_dctdnoiz = { .init = init, .uninit = uninit, FILTER_INPUTS(dctdnoiz_inputs), - FILTER_OUTPUTS(dctdnoiz_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .priv_class = &dctdnoiz_class, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, diff --git a/libavfilter/vf_deband.c b/libavfilter/vf_deband.c index ec91cb1548..b3c36de8c3 100644 --- a/libavfilter/vf_deband.c +++ b/libavfilter/vf_deband.c @@ -458,13 +458,6 @@ static const AVFilterPad avfilter_vf_deband_inputs[] = { }, }; -static const AVFilterPad avfilter_vf_deband_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_deband = { .name = "deband", .description = NULL_IF_CONFIG_SMALL("Debands video."), @@ -472,7 +465,7 @@ const AVFilter ff_vf_deband = { .priv_class = &deband_class, .uninit = uninit, FILTER_INPUTS(avfilter_vf_deband_inputs), - FILTER_OUTPUTS(avfilter_vf_deband_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_QUERY_FUNC(query_formats), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, .process_command = process_command, diff --git a/libavfilter/vf_dedot.c b/libavfilter/vf_dedot.c index 6ca47c262a..fb62c183d7 100644 --- a/libavfilter/vf_dedot.c +++ b/libavfilter/vf_dedot.c @@ -375,13 +375,6 @@ static const AVOption dedot_options[] = { { NULL }, }; -static const AVFilterPad inputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - static const AVFilterPad outputs[] = { { .name = "default", @@ -399,7 +392,7 @@ const AVFilter ff_vf_dedot = { .priv_class = &dedot_class, .activate = activate, .uninit = uninit, - FILTER_INPUTS(inputs), + FILTER_INPUTS(ff_video_default_filterpad), FILTER_OUTPUTS(outputs), FILTER_PIXFMTS_ARRAY(pixel_fmts), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, diff --git a/libavfilter/vf_delogo.c b/libavfilter/vf_delogo.c index cc71f25c59..4b835b65f1 100644 --- a/libavfilter/vf_delogo.c +++ b/libavfilter/vf_delogo.c @@ -381,13 +381,6 @@ static const AVFilterPad avfilter_vf_delogo_inputs[] = { }, }; -static const AVFilterPad avfilter_vf_delogo_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_delogo = { .name = "delogo", .description = NULL_IF_CONFIG_SMALL("Remove logo from input video."), @@ -396,7 +389,7 @@ const AVFilter ff_vf_delogo = { .init = init, .uninit = uninit, FILTER_INPUTS(avfilter_vf_delogo_inputs), - FILTER_OUTPUTS(avfilter_vf_delogo_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, }; diff --git a/libavfilter/vf_derain.c b/libavfilter/vf_derain.c index 3cb4364def..2a57035c83 100644 --- a/libavfilter/vf_derain.c +++ b/libavfilter/vf_derain.c @@ -111,13 +111,6 @@ static const AVFilterPad derain_inputs[] = { }, }; -static const AVFilterPad derain_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_derain = { .name = "derain", .description = NULL_IF_CONFIG_SMALL("Apply derain filter to the input."), @@ -125,7 +118,7 @@ const AVFilter ff_vf_derain = { .init = init, .uninit = uninit, FILTER_INPUTS(derain_inputs), - FILTER_OUTPUTS(derain_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_SINGLE_PIXFMT(AV_PIX_FMT_RGB24), .priv_class = &derain_class, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, diff --git a/libavfilter/vf_deshake.c b/libavfilter/vf_deshake.c index 142f88541d..a10d59ad80 100644 --- a/libavfilter/vf_deshake.c +++ b/libavfilter/vf_deshake.c @@ -535,13 +535,6 @@ static const AVFilterPad deshake_inputs[] = { }, }; -static const AVFilterPad deshake_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_deshake = { .name = "deshake", .description = NULL_IF_CONFIG_SMALL("Stabilize shaky video."), @@ -549,7 +542,7 @@ const AVFilter ff_vf_deshake = { .init = init, .uninit = uninit, FILTER_INPUTS(deshake_inputs), - FILTER_OUTPUTS(deshake_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .priv_class = &deshake_class, }; diff --git a/libavfilter/vf_dnn_classify.c b/libavfilter/vf_dnn_classify.c index c3f2762cf9..e88e59d09c 100644 --- a/libavfilter/vf_dnn_classify.c +++ b/libavfilter/vf_dnn_classify.c @@ -26,6 +26,7 @@ #include "filters.h" #include "dnn_filter_common.h" #include "internal.h" +#include "video.h" #include "libavutil/time.h" #include "libavutil/avstring.h" #include "libavutil/detection_bbox.h" @@ -293,28 +294,14 @@ static av_cold void dnn_classify_uninit(AVFilterContext *context) free_classify_labels(ctx); } -static const AVFilterPad dnn_classify_inputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - -static const AVFilterPad dnn_classify_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_dnn_classify = { .name = "dnn_classify", .description = NULL_IF_CONFIG_SMALL("Apply DNN classify filter to the input."), .priv_size = sizeof(DnnClassifyContext), .init = dnn_classify_init, .uninit = dnn_classify_uninit, - FILTER_INPUTS(dnn_classify_inputs), - FILTER_OUTPUTS(dnn_classify_outputs), + FILTER_INPUTS(ff_video_default_filterpad), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .priv_class = &dnn_classify_class, .activate = dnn_classify_activate, diff --git a/libavfilter/vf_dnn_detect.c b/libavfilter/vf_dnn_detect.c index 6ef04e0958..b5dae42c65 100644 --- a/libavfilter/vf_dnn_detect.c +++ b/libavfilter/vf_dnn_detect.c @@ -26,6 +26,7 @@ #include "filters.h" #include "dnn_filter_common.h" #include "internal.h" +#include "video.h" #include "libavutil/time.h" #include "libavutil/avstring.h" #include "libavutil/detection_bbox.h" @@ -435,28 +436,14 @@ static av_cold void dnn_detect_uninit(AVFilterContext *context) free_detect_labels(ctx); } -static const AVFilterPad dnn_detect_inputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - -static const AVFilterPad dnn_detect_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_dnn_detect = { .name = "dnn_detect", .description = NULL_IF_CONFIG_SMALL("Apply DNN detect filter to the input."), .priv_size = sizeof(DnnDetectContext), .init = dnn_detect_init, .uninit = dnn_detect_uninit, - FILTER_INPUTS(dnn_detect_inputs), - FILTER_OUTPUTS(dnn_detect_outputs), + FILTER_INPUTS(ff_video_default_filterpad), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .priv_class = &dnn_detect_class, .activate = dnn_detect_activate, diff --git a/libavfilter/vf_drawbox.c b/libavfilter/vf_drawbox.c index 64eeeece12..82266481ca 100644 --- a/libavfilter/vf_drawbox.c +++ b/libavfilter/vf_drawbox.c @@ -471,13 +471,6 @@ static const AVFilterPad drawbox_inputs[] = { }, }; -static const AVFilterPad drawbox_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_drawbox = { .name = "drawbox", .description = NULL_IF_CONFIG_SMALL("Draw a colored box on the input video."), @@ -485,7 +478,7 @@ const AVFilter ff_vf_drawbox = { .priv_class = &drawbox_class, .init = init, FILTER_INPUTS(drawbox_inputs), - FILTER_OUTPUTS(drawbox_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .process_command = process_command, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, @@ -553,13 +546,6 @@ static const AVFilterPad drawgrid_inputs[] = { }, }; -static const AVFilterPad drawgrid_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_drawgrid = { .name = "drawgrid", .description = NULL_IF_CONFIG_SMALL("Draw a colored grid on the input video."), @@ -567,7 +553,7 @@ const AVFilter ff_vf_drawgrid = { .priv_class = &drawgrid_class, .init = init, FILTER_INPUTS(drawgrid_inputs), - FILTER_OUTPUTS(drawgrid_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, .process_command = process_command, diff --git a/libavfilter/vf_edgedetect.c b/libavfilter/vf_edgedetect.c index 603f06f141..1362f4f677 100644 --- a/libavfilter/vf_edgedetect.c +++ b/libavfilter/vf_edgedetect.c @@ -249,13 +249,6 @@ static const AVFilterPad edgedetect_inputs[] = { }, }; -static const AVFilterPad edgedetect_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_edgedetect = { .name = "edgedetect", .description = NULL_IF_CONFIG_SMALL("Detect and draw edge."), @@ -263,7 +256,7 @@ const AVFilter ff_vf_edgedetect = { .init = init, .uninit = uninit, FILTER_INPUTS(edgedetect_inputs), - FILTER_OUTPUTS(edgedetect_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_QUERY_FUNC(query_formats), .priv_class = &edgedetect_class, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, diff --git a/libavfilter/vf_elbg.c b/libavfilter/vf_elbg.c index d1166714fc..cc49b8e240 100644 --- a/libavfilter/vf_elbg.c +++ b/libavfilter/vf_elbg.c @@ -253,13 +253,6 @@ static const AVFilterPad elbg_inputs[] = { }, }; -static const AVFilterPad elbg_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_elbg = { .name = "elbg", .description = NULL_IF_CONFIG_SMALL("Apply posterize effect, using the ELBG algorithm."), @@ -268,6 +261,6 @@ const AVFilter ff_vf_elbg = { .init = init, .uninit = uninit, FILTER_INPUTS(elbg_inputs), - FILTER_OUTPUTS(elbg_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_QUERY_FUNC(query_formats), }; diff --git a/libavfilter/vf_entropy.c b/libavfilter/vf_entropy.c index 893d07d8e6..c96cbaaecd 100644 --- a/libavfilter/vf_entropy.c +++ b/libavfilter/vf_entropy.c @@ -176,20 +176,13 @@ static const AVFilterPad inputs[] = { }, }; -static const AVFilterPad outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_entropy = { .name = "entropy", .description = NULL_IF_CONFIG_SMALL("Measure video frames entropy."), .priv_size = sizeof(EntropyContext), .uninit = uninit, FILTER_INPUTS(inputs), - FILTER_OUTPUTS(outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pixfmts), .priv_class = &entropy_class, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_METADATA_ONLY, diff --git a/libavfilter/vf_eq.c b/libavfilter/vf_eq.c index 3c686abe24..00fd840dec 100644 --- a/libavfilter/vf_eq.c +++ b/libavfilter/vf_eq.c @@ -314,13 +314,6 @@ static const AVFilterPad eq_inputs[] = { }, }; -static const AVFilterPad eq_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - #define OFFSET(x) offsetof(EQContext, x) #define FLAGS AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM #define TFLAGS AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM|AV_OPT_FLAG_RUNTIME_PARAM @@ -355,7 +348,7 @@ const AVFilter ff_vf_eq = { .priv_size = sizeof(EQContext), .priv_class = &eq_class, FILTER_INPUTS(eq_inputs), - FILTER_OUTPUTS(eq_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pixel_fmts_eq), .process_command = process_command, .init = initialize, diff --git a/libavfilter/vf_exposure.c b/libavfilter/vf_exposure.c index ff2f156534..12434cdd9d 100644 --- a/libavfilter/vf_exposure.c +++ b/libavfilter/vf_exposure.c @@ -133,13 +133,6 @@ static const AVFilterPad exposure_inputs[] = { }, }; -static const AVFilterPad exposure_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - #define OFFSET(x) offsetof(ExposureContext, x) #define VF AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM|AV_OPT_FLAG_RUNTIME_PARAM @@ -157,7 +150,7 @@ const AVFilter ff_vf_exposure = { .priv_size = sizeof(ExposureContext), .priv_class = &exposure_class, FILTER_INPUTS(exposure_inputs), - FILTER_OUTPUTS(exposure_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS(AV_PIX_FMT_GBRPF32, AV_PIX_FMT_GBRAPF32), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, .process_command = ff_filter_process_command, diff --git a/libavfilter/vf_fade.c b/libavfilter/vf_fade.c index 868e7cc16a..f903db0415 100644 --- a/libavfilter/vf_fade.c +++ b/libavfilter/vf_fade.c @@ -557,13 +557,6 @@ static const AVFilterPad avfilter_vf_fade_inputs[] = { }, }; -static const AVFilterPad avfilter_vf_fade_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_fade = { .name = "fade", .description = NULL_IF_CONFIG_SMALL("Fade in/out input video."), @@ -571,7 +564,7 @@ const AVFilter ff_vf_fade = { .priv_size = sizeof(FadeContext), .priv_class = &fade_class, FILTER_INPUTS(avfilter_vf_fade_inputs), - FILTER_OUTPUTS(avfilter_vf_fade_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_QUERY_FUNC(query_formats), .flags = AVFILTER_FLAG_SLICE_THREADS | AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, diff --git a/libavfilter/vf_fftfilt.c b/libavfilter/vf_fftfilt.c index 2b2408f15c..aea83dc19c 100644 --- a/libavfilter/vf_fftfilt.c +++ b/libavfilter/vf_fftfilt.c @@ -593,20 +593,13 @@ static const AVFilterPad fftfilt_inputs[] = { }, }; -static const AVFilterPad fftfilt_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_fftfilt = { .name = "fftfilt", .description = NULL_IF_CONFIG_SMALL("Apply arbitrary expressions to pixels in frequency domain."), .priv_size = sizeof(FFTFILTContext), .priv_class = &fftfilt_class, FILTER_INPUTS(fftfilt_inputs), - FILTER_OUTPUTS(fftfilt_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pixel_fmts_fftfilt), .init = initialize, .uninit = uninit, diff --git a/libavfilter/vf_fieldorder.c b/libavfilter/vf_fieldorder.c index cf6efa6e54..165b359024 100644 --- a/libavfilter/vf_fieldorder.c +++ b/libavfilter/vf_fieldorder.c @@ -176,20 +176,13 @@ static const AVFilterPad avfilter_vf_fieldorder_inputs[] = { }, }; -static const AVFilterPad avfilter_vf_fieldorder_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_fieldorder = { .name = "fieldorder", .description = NULL_IF_CONFIG_SMALL("Set the field order."), .priv_size = sizeof(FieldOrderContext), .priv_class = &fieldorder_class, FILTER_INPUTS(avfilter_vf_fieldorder_inputs), - FILTER_OUTPUTS(avfilter_vf_fieldorder_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_QUERY_FUNC(query_formats), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, }; diff --git a/libavfilter/vf_fillborders.c b/libavfilter/vf_fillborders.c index 83f206aeb1..e4aa7cd5ca 100644 --- a/libavfilter/vf_fillborders.c +++ b/libavfilter/vf_fillborders.c @@ -707,20 +707,13 @@ static const AVFilterPad fillborders_inputs[] = { }, }; -static const AVFilterPad fillborders_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_fillborders = { .name = "fillborders", .description = NULL_IF_CONFIG_SMALL("Fill borders of the input video."), .priv_size = sizeof(FillBordersContext), .priv_class = &fillborders_class, FILTER_INPUTS(fillborders_inputs), - FILTER_OUTPUTS(fillborders_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, .process_command = process_command, diff --git a/libavfilter/vf_find_rect.c b/libavfilter/vf_find_rect.c index a536d669d1..9f4ee1e32f 100644 --- a/libavfilter/vf_find_rect.c +++ b/libavfilter/vf_find_rect.c @@ -25,6 +25,7 @@ #include "libavutil/imgutils.h" #include "libavutil/opt.h" #include "internal.h" +#include "video.h" #include "lavfutils.h" @@ -281,13 +282,6 @@ static const AVFilterPad foc_inputs[] = { }, }; -static const AVFilterPad foc_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_find_rect = { .name = "find_rect", .description = NULL_IF_CONFIG_SMALL("Find a user specified object."), @@ -296,7 +290,7 @@ const AVFilter ff_vf_find_rect = { .uninit = uninit, .flags = AVFILTER_FLAG_METADATA_ONLY, FILTER_INPUTS(foc_inputs), - FILTER_OUTPUTS(foc_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS(AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUVJ420P), .priv_class = &find_rect_class, }; diff --git a/libavfilter/vf_floodfill.c b/libavfilter/vf_floodfill.c index 212255a784..675e0f084f 100644 --- a/libavfilter/vf_floodfill.c +++ b/libavfilter/vf_floodfill.c @@ -385,13 +385,6 @@ static const AVFilterPad floodfill_inputs[] = { }, }; -static const AVFilterPad floodfill_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - #define OFFSET(x) offsetof(FloodfillContext, x) #define FLAGS AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM @@ -418,7 +411,7 @@ const AVFilter ff_vf_floodfill = { .priv_class = &floodfill_class, .uninit = uninit, FILTER_INPUTS(floodfill_inputs), - FILTER_OUTPUTS(floodfill_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pixel_fmts), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, }; diff --git a/libavfilter/vf_format.c b/libavfilter/vf_format.c index 24b1c9ca61..04c265f59f 100644 --- a/libavfilter/vf_format.c +++ b/libavfilter/vf_format.c @@ -154,13 +154,6 @@ static const AVFilterPad avfilter_vf_format_inputs[] = { }, }; -static const AVFilterPad avfilter_vf_format_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO - }, -}; - const AVFilter ff_vf_format = { .name = "format", .description = NULL_IF_CONFIG_SMALL("Convert the input video to one of the specified pixel formats."), @@ -174,7 +167,7 @@ const AVFilter ff_vf_format = { .flags = AVFILTER_FLAG_METADATA_ONLY, FILTER_INPUTS(avfilter_vf_format_inputs), - FILTER_OUTPUTS(avfilter_vf_format_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_QUERY_FUNC(query_formats), }; @@ -190,13 +183,6 @@ static const AVFilterPad avfilter_vf_noformat_inputs[] = { }, }; -static const AVFilterPad avfilter_vf_noformat_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO - }, -}; - const AVFilter ff_vf_noformat = { .name = "noformat", .description = NULL_IF_CONFIG_SMALL("Force libavfilter not to use any of the specified pixel formats for the input to the next filter."), @@ -210,7 +196,7 @@ const AVFilter ff_vf_noformat = { .flags = AVFILTER_FLAG_METADATA_ONLY, FILTER_INPUTS(avfilter_vf_noformat_inputs), - FILTER_OUTPUTS(avfilter_vf_noformat_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_QUERY_FUNC(query_formats), }; diff --git a/libavfilter/vf_fps.c b/libavfilter/vf_fps.c index 2bfb6d29e7..089f7f2021 100644 --- a/libavfilter/vf_fps.c +++ b/libavfilter/vf_fps.c @@ -37,6 +37,7 @@ #include "ccfifo.h" #include "filters.h" #include "internal.h" +#include "video.h" enum EOFAction { EOF_ACTION_ROUND, @@ -376,13 +377,6 @@ static int activate(AVFilterContext *ctx) return FFERROR_NOT_READY; } -static const AVFilterPad avfilter_vf_fps_inputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - static const AVFilterPad avfilter_vf_fps_outputs[] = { { .name = "default", @@ -400,6 +394,6 @@ const AVFilter ff_vf_fps = { .priv_class = &fps_class, .activate = activate, .flags = AVFILTER_FLAG_METADATA_ONLY, - FILTER_INPUTS(avfilter_vf_fps_inputs), + FILTER_INPUTS(ff_video_default_filterpad), FILTER_OUTPUTS(avfilter_vf_fps_outputs), }; diff --git a/libavfilter/vf_freezedetect.c b/libavfilter/vf_freezedetect.c index 31a80a6dc0..fb4e59b127 100644 --- a/libavfilter/vf_freezedetect.c +++ b/libavfilter/vf_freezedetect.c @@ -29,6 +29,7 @@ #include "avfilter.h" #include "filters.h" #include "scene_sad.h" +#include "video.h" typedef struct FreezeDetectContext { const AVClass *class; @@ -204,13 +205,6 @@ static const AVFilterPad freezedetect_inputs[] = { }, }; -static const AVFilterPad freezedetect_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_freezedetect = { .name = "freezedetect", .description = NULL_IF_CONFIG_SMALL("Detects frozen video input."), @@ -219,7 +213,7 @@ const AVFilter ff_vf_freezedetect = { .uninit = uninit, .flags = AVFILTER_FLAG_METADATA_ONLY, FILTER_INPUTS(freezedetect_inputs), - FILTER_OUTPUTS(freezedetect_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .activate = activate, }; diff --git a/libavfilter/vf_frei0r.c b/libavfilter/vf_frei0r.c index 59873dc502..7dccd5946f 100644 --- a/libavfilter/vf_frei0r.c +++ b/libavfilter/vf_frei0r.c @@ -423,13 +423,6 @@ static const AVFilterPad avfilter_vf_frei0r_inputs[] = { }, }; -static const AVFilterPad avfilter_vf_frei0r_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_frei0r = { .name = "frei0r", .description = NULL_IF_CONFIG_SMALL("Apply a frei0r effect."), @@ -438,7 +431,7 @@ const AVFilter ff_vf_frei0r = { .priv_size = sizeof(Frei0rContext), .priv_class = &frei0r_class, FILTER_INPUTS(avfilter_vf_frei0r_inputs), - FILTER_OUTPUTS(avfilter_vf_frei0r_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_QUERY_FUNC(query_formats), .process_command = process_command, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, diff --git a/libavfilter/vf_fspp.c b/libavfilter/vf_fspp.c index b110c5a7d2..88e887897e 100644 --- a/libavfilter/vf_fspp.c +++ b/libavfilter/vf_fspp.c @@ -652,20 +652,13 @@ static const AVFilterPad fspp_inputs[] = { }, }; -static const AVFilterPad fspp_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_fspp = { .name = "fspp", .description = NULL_IF_CONFIG_SMALL("Apply Fast Simple Post-processing filter."), .priv_size = sizeof(FSPPContext), .uninit = uninit, FILTER_INPUTS(fspp_inputs), - FILTER_OUTPUTS(fspp_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .priv_class = &fspp_class, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, diff --git a/libavfilter/vf_gblur.c b/libavfilter/vf_gblur.c index ca1dcb3dab..509ae3dece 100644 --- a/libavfilter/vf_gblur.c +++ b/libavfilter/vf_gblur.c @@ -315,13 +315,6 @@ static const AVFilterPad gblur_inputs[] = { }, }; -static const AVFilterPad gblur_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_gblur = { .name = "gblur", .description = NULL_IF_CONFIG_SMALL("Apply Gaussian Blur filter."), @@ -329,7 +322,7 @@ const AVFilter ff_vf_gblur = { .priv_class = &gblur_class, .uninit = uninit, FILTER_INPUTS(gblur_inputs), - FILTER_OUTPUTS(gblur_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, .process_command = ff_filter_process_command, diff --git a/libavfilter/vf_geq.c b/libavfilter/vf_geq.c index e90b49366f..092124669f 100644 --- a/libavfilter/vf_geq.c +++ b/libavfilter/vf_geq.c @@ -516,13 +516,6 @@ static const AVFilterPad geq_inputs[] = { }, }; -static const AVFilterPad geq_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_geq = { .name = "geq", .description = NULL_IF_CONFIG_SMALL("Apply generic equation to each pixel."), @@ -530,7 +523,7 @@ const AVFilter ff_vf_geq = { .init = geq_init, .uninit = geq_uninit, FILTER_INPUTS(geq_inputs), - FILTER_OUTPUTS(geq_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_QUERY_FUNC(geq_query_formats), .priv_class = &geq_class, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, diff --git a/libavfilter/vf_gradfun.c b/libavfilter/vf_gradfun.c index 71a5f9c787..e8566918a4 100644 --- a/libavfilter/vf_gradfun.c +++ b/libavfilter/vf_gradfun.c @@ -236,13 +236,6 @@ static const AVFilterPad avfilter_vf_gradfun_inputs[] = { }, }; -static const AVFilterPad avfilter_vf_gradfun_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_gradfun = { .name = "gradfun", .description = NULL_IF_CONFIG_SMALL("Debands video quickly using gradients."), @@ -251,7 +244,7 @@ const AVFilter ff_vf_gradfun = { .init = init, .uninit = uninit, FILTER_INPUTS(avfilter_vf_gradfun_inputs), - FILTER_OUTPUTS(avfilter_vf_gradfun_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, }; diff --git a/libavfilter/vf_grayworld.c b/libavfilter/vf_grayworld.c index f20412cb10..6fa758199c 100644 --- a/libavfilter/vf_grayworld.c +++ b/libavfilter/vf_grayworld.c @@ -308,20 +308,13 @@ static const AVFilterPad grayworld_inputs[] = { } }; -static const AVFilterPad grayworld_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - } -}; - const AVFilter ff_vf_grayworld = { .name = "grayworld", .description = NULL_IF_CONFIG_SMALL("Adjust white balance using LAB gray world algorithm"), .priv_size = sizeof(GrayWorldContext), .priv_class = &grayworld_class, FILTER_INPUTS(grayworld_inputs), - FILTER_OUTPUTS(grayworld_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS(AV_PIX_FMT_GBRPF32, AV_PIX_FMT_GBRAPF32), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, .uninit = uninit, diff --git a/libavfilter/vf_hflip.c b/libavfilter/vf_hflip.c index 8517b87889..09f4e08ea3 100644 --- a/libavfilter/vf_hflip.c +++ b/libavfilter/vf_hflip.c @@ -151,20 +151,13 @@ static const AVFilterPad avfilter_vf_hflip_inputs[] = { }, }; -static const AVFilterPad avfilter_vf_hflip_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_hflip = { .name = "hflip", .description = NULL_IF_CONFIG_SMALL("Horizontally flip the input video."), .priv_size = sizeof(FlipContext), .priv_class = &hflip_class, FILTER_INPUTS(avfilter_vf_hflip_inputs), - FILTER_OUTPUTS(avfilter_vf_hflip_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_QUERY_FUNC(query_formats), .flags = AVFILTER_FLAG_SLICE_THREADS | AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, }; diff --git a/libavfilter/vf_histeq.c b/libavfilter/vf_histeq.c index 3fee4c9480..87ed6d79e8 100644 --- a/libavfilter/vf_histeq.c +++ b/libavfilter/vf_histeq.c @@ -254,20 +254,13 @@ static const AVFilterPad histeq_inputs[] = { }, }; -static const AVFilterPad histeq_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_histeq = { .name = "histeq", .description = NULL_IF_CONFIG_SMALL("Apply global color histogram equalization."), .priv_size = sizeof(HisteqContext), .init = init, FILTER_INPUTS(histeq_inputs), - FILTER_OUTPUTS(histeq_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .priv_class = &histeq_class, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, diff --git a/libavfilter/vf_hqdn3d.c b/libavfilter/vf_hqdn3d.c index c796ea9ab4..f6d49675a1 100644 --- a/libavfilter/vf_hqdn3d.c +++ b/libavfilter/vf_hqdn3d.c @@ -383,13 +383,6 @@ static const AVFilterPad avfilter_vf_hqdn3d_inputs[] = { }; -static const AVFilterPad avfilter_vf_hqdn3d_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO - }, -}; - const AVFilter ff_vf_hqdn3d = { .name = "hqdn3d", .description = NULL_IF_CONFIG_SMALL("Apply a High Quality 3D Denoiser."), @@ -398,7 +391,7 @@ const AVFilter ff_vf_hqdn3d = { .init = init, .uninit = uninit, FILTER_INPUTS(avfilter_vf_hqdn3d_inputs), - FILTER_OUTPUTS(avfilter_vf_hqdn3d_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, .process_command = process_command, diff --git a/libavfilter/vf_hue.c b/libavfilter/vf_hue.c index 644c99b1b1..8f3b73e840 100644 --- a/libavfilter/vf_hue.c +++ b/libavfilter/vf_hue.c @@ -500,13 +500,6 @@ static const AVFilterPad hue_inputs[] = { }, }; -static const AVFilterPad hue_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_hue = { .name = "hue", .description = NULL_IF_CONFIG_SMALL("Adjust the hue and saturation of the input video."), @@ -515,7 +508,7 @@ const AVFilter ff_vf_hue = { .uninit = uninit, .process_command = process_command, FILTER_INPUTS(hue_inputs), - FILTER_OUTPUTS(hue_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .priv_class = &hue_class, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, diff --git a/libavfilter/vf_huesaturation.c b/libavfilter/vf_huesaturation.c index d4e3fea1c5..4b427e6bf6 100644 --- a/libavfilter/vf_huesaturation.c +++ b/libavfilter/vf_huesaturation.c @@ -434,13 +434,6 @@ static const AVFilterPad huesaturation_inputs[] = { }, }; -static const AVFilterPad huesaturation_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - #define OFFSET(x) offsetof(HueSaturationContext, x) #define VF AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM|AV_OPT_FLAG_RUNTIME_PARAM @@ -472,7 +465,7 @@ const AVFilter ff_vf_huesaturation = { .priv_size = sizeof(HueSaturationContext), .priv_class = &huesaturation_class, FILTER_INPUTS(huesaturation_inputs), - FILTER_OUTPUTS(huesaturation_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pixel_fmts), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, .process_command = ff_filter_process_command, diff --git a/libavfilter/vf_iccdetect.c b/libavfilter/vf_iccdetect.c index 7c08a2baaa..5288b0320d 100644 --- a/libavfilter/vf_iccdetect.c +++ b/libavfilter/vf_iccdetect.c @@ -31,6 +31,7 @@ #include "avfilter.h" #include "fflcms2.h" #include "internal.h" +#include "video.h" typedef struct IccDetectContext { const AVClass *class; @@ -123,13 +124,6 @@ static const AVFilterPad iccdetect_inputs[] = { }, }; -static const AVFilterPad iccdetect_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_iccdetect = { .name = "iccdetect", .description = NULL_IF_CONFIG_SMALL("Detect and parse ICC profiles."), @@ -139,5 +133,5 @@ const AVFilter ff_vf_iccdetect = { .init = &iccdetect_init, .uninit = &iccdetect_uninit, FILTER_INPUTS(iccdetect_inputs), - FILTER_OUTPUTS(iccdetect_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), }; diff --git a/libavfilter/vf_iccgen.c b/libavfilter/vf_iccgen.c index 67d02f5bc2..80771edf9e 100644 --- a/libavfilter/vf_iccgen.c +++ b/libavfilter/vf_iccgen.c @@ -30,6 +30,7 @@ #include "avfilter.h" #include "fflcms2.h" #include "internal.h" +#include "video.h" typedef struct IccGenContext { const AVClass *class; @@ -161,13 +162,6 @@ static const AVFilterPad iccgen_inputs[] = { }, }; -static const AVFilterPad iccgen_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_iccgen = { .name = "iccgen", .description = NULL_IF_CONFIG_SMALL("Generate and attach ICC profiles."), @@ -177,5 +171,5 @@ const AVFilter ff_vf_iccgen = { .init = &iccgen_init, .uninit = &iccgen_uninit, FILTER_INPUTS(iccgen_inputs), - FILTER_OUTPUTS(iccgen_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), }; diff --git a/libavfilter/vf_il.c b/libavfilter/vf_il.c index 210ce8e821..05c393d914 100644 --- a/libavfilter/vf_il.c +++ b/libavfilter/vf_il.c @@ -184,19 +184,12 @@ static const AVFilterPad inputs[] = { }, }; -static const AVFilterPad outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_il = { .name = "il", .description = NULL_IF_CONFIG_SMALL("Deinterleave or interleave fields."), .priv_size = sizeof(IlContext), FILTER_INPUTS(inputs), - FILTER_OUTPUTS(outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_QUERY_FUNC(query_formats), .priv_class = &il_class, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, diff --git a/libavfilter/vf_kerndeint.c b/libavfilter/vf_kerndeint.c index 260a99bcc4..5267c3b3ae 100644 --- a/libavfilter/vf_kerndeint.c +++ b/libavfilter/vf_kerndeint.c @@ -295,13 +295,6 @@ static const AVFilterPad kerndeint_inputs[] = { }, }; -static const AVFilterPad kerndeint_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_kerndeint = { .name = "kerndeint", @@ -310,6 +303,6 @@ const AVFilter ff_vf_kerndeint = { .priv_class = &kerndeint_class, .uninit = uninit, FILTER_INPUTS(kerndeint_inputs), - FILTER_OUTPUTS(kerndeint_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), }; diff --git a/libavfilter/vf_limiter.c b/libavfilter/vf_limiter.c index 67b734229f..b602ce384b 100644 --- a/libavfilter/vf_limiter.c +++ b/libavfilter/vf_limiter.c @@ -231,13 +231,6 @@ static const AVFilterPad inputs[] = { }, }; -static const AVFilterPad outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_limiter = { .name = "limiter", .description = NULL_IF_CONFIG_SMALL("Limit pixels components to the specified range."), @@ -245,7 +238,7 @@ const AVFilter ff_vf_limiter = { .priv_class = &limiter_class, .init = init, FILTER_INPUTS(inputs), - FILTER_OUTPUTS(outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, .process_command = process_command, diff --git a/libavfilter/vf_lumakey.c b/libavfilter/vf_lumakey.c index af1d85ec54..448b43dda0 100644 --- a/libavfilter/vf_lumakey.c +++ b/libavfilter/vf_lumakey.c @@ -173,13 +173,6 @@ static const AVFilterPad lumakey_inputs[] = { }, }; -static const AVFilterPad lumakey_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - #define OFFSET(x) offsetof(LumakeyContext, x) #define FLAGS AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM|AV_OPT_FLAG_RUNTIME_PARAM @@ -198,7 +191,7 @@ const AVFilter ff_vf_lumakey = { .priv_size = sizeof(LumakeyContext), .priv_class = &lumakey_class, FILTER_INPUTS(lumakey_inputs), - FILTER_OUTPUTS(lumakey_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pixel_fmts), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, .process_command = process_command, diff --git a/libavfilter/vf_lut.c b/libavfilter/vf_lut.c index 621291cdad..1a6ca06546 100644 --- a/libavfilter/vf_lut.c +++ b/libavfilter/vf_lut.c @@ -582,11 +582,6 @@ static const AVFilterPad inputs[] = { .config_props = config_props, }, }; -static const AVFilterPad outputs[] = { - { .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; #define DEFINE_LUT_FILTER(name_, description_, priv_class_) \ const AVFilter ff_vf_##name_ = { \ @@ -597,7 +592,7 @@ static const AVFilterPad outputs[] = { .init = name_##_init, \ .uninit = uninit, \ FILTER_INPUTS(inputs), \ - FILTER_OUTPUTS(outputs), \ + FILTER_OUTPUTS(ff_video_default_filterpad), \ FILTER_QUERY_FUNC(query_formats), \ .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | \ AVFILTER_FLAG_SLICE_THREADS, \ diff --git a/libavfilter/vf_lut3d.c b/libavfilter/vf_lut3d.c index 1ca448fcb3..db38d41932 100644 --- a/libavfilter/vf_lut3d.c +++ b/libavfilter/vf_lut3d.c @@ -1301,13 +1301,6 @@ static const AVFilterPad lut3d_inputs[] = { }, }; -static const AVFilterPad lut3d_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_lut3d = { .name = "lut3d", .description = NULL_IF_CONFIG_SMALL("Adjust colors using a 3D LUT."), @@ -1315,7 +1308,7 @@ const AVFilter ff_vf_lut3d = { .init = lut3d_init, .uninit = lut3d_uninit, FILTER_INPUTS(lut3d_inputs), - FILTER_OUTPUTS(lut3d_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .priv_class = &lut3d_class, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, @@ -2232,20 +2225,13 @@ static const AVFilterPad lut1d_inputs[] = { }, }; -static const AVFilterPad lut1d_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_lut1d = { .name = "lut1d", .description = NULL_IF_CONFIG_SMALL("Adjust colors using a 1D LUT."), .priv_size = sizeof(LUT1DContext), .init = lut1d_init, FILTER_INPUTS(lut1d_inputs), - FILTER_OUTPUTS(lut1d_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .priv_class = &lut1d_class, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, diff --git a/libavfilter/vf_maskfun.c b/libavfilter/vf_maskfun.c index 253e5e40f7..44499d34ae 100644 --- a/libavfilter/vf_maskfun.c +++ b/libavfilter/vf_maskfun.c @@ -317,20 +317,13 @@ static const AVFilterPad maskfun_inputs[] = { }, }; -static const AVFilterPad maskfun_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_maskfun = { .name = "maskfun", .description = NULL_IF_CONFIG_SMALL("Create Mask."), .priv_size = sizeof(MaskFunContext), .uninit = uninit, FILTER_INPUTS(maskfun_inputs), - FILTER_OUTPUTS(maskfun_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .priv_class = &maskfun_class, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, diff --git a/libavfilter/vf_mcdeint.c b/libavfilter/vf_mcdeint.c index a33f6feebf..e1b0a082f3 100644 --- a/libavfilter/vf_mcdeint.c +++ b/libavfilter/vf_mcdeint.c @@ -301,20 +301,13 @@ static const AVFilterPad mcdeint_inputs[] = { }, }; -static const AVFilterPad mcdeint_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_mcdeint = { .name = "mcdeint", .description = NULL_IF_CONFIG_SMALL("Apply motion compensating deinterlacing."), .priv_size = sizeof(MCDeintContext), .uninit = uninit, FILTER_INPUTS(mcdeint_inputs), - FILTER_OUTPUTS(mcdeint_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_SINGLE_PIXFMT(AV_PIX_FMT_YUV420P), .priv_class = &mcdeint_class, }; diff --git a/libavfilter/vf_median.c b/libavfilter/vf_median.c index 11eccf608c..bc070105cd 100644 --- a/libavfilter/vf_median.c +++ b/libavfilter/vf_median.c @@ -270,13 +270,6 @@ static const AVFilterPad median_inputs[] = { }, }; -static const AVFilterPad median_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_median = { .name = "median", .description = NULL_IF_CONFIG_SMALL("Apply Median filter."), @@ -284,7 +277,7 @@ const AVFilter ff_vf_median = { .priv_class = &median_class, .uninit = uninit, FILTER_INPUTS(median_inputs), - FILTER_OUTPUTS(median_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, .process_command = process_command, diff --git a/libavfilter/vf_mestimate.c b/libavfilter/vf_mestimate.c index eff58f612e..001e6b0e8d 100644 --- a/libavfilter/vf_mestimate.c +++ b/libavfilter/vf_mestimate.c @@ -350,13 +350,6 @@ static const AVFilterPad mestimate_inputs[] = { }, }; -static const AVFilterPad mestimate_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_mestimate = { .name = "mestimate", .description = NULL_IF_CONFIG_SMALL("Generate motion vectors."), @@ -365,6 +358,6 @@ const AVFilter ff_vf_mestimate = { .uninit = uninit, .flags = AVFILTER_FLAG_METADATA_ONLY, FILTER_INPUTS(mestimate_inputs), - FILTER_OUTPUTS(mestimate_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), }; diff --git a/libavfilter/vf_monochrome.c b/libavfilter/vf_monochrome.c index c77c3b8f19..92ea651db2 100644 --- a/libavfilter/vf_monochrome.c +++ b/libavfilter/vf_monochrome.c @@ -268,13 +268,6 @@ static const AVFilterPad monochrome_inputs[] = { }, }; -static const AVFilterPad monochrome_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - #define OFFSET(x) offsetof(MonochromeContext, x) #define VF AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM|AV_OPT_FLAG_RUNTIME_PARAM @@ -294,7 +287,7 @@ const AVFilter ff_vf_monochrome = { .priv_size = sizeof(MonochromeContext), .priv_class = &monochrome_class, FILTER_INPUTS(monochrome_inputs), - FILTER_OUTPUTS(monochrome_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pixel_fmts), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, .process_command = ff_filter_process_command, diff --git a/libavfilter/vf_mpdecimate.c b/libavfilter/vf_mpdecimate.c index a7b50d3973..d677a6e385 100644 --- a/libavfilter/vf_mpdecimate.c +++ b/libavfilter/vf_mpdecimate.c @@ -241,13 +241,6 @@ static const AVFilterPad mpdecimate_inputs[] = { }, }; -static const AVFilterPad mpdecimate_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_mpdecimate = { .name = "mpdecimate", .description = NULL_IF_CONFIG_SMALL("Remove near-duplicate frames."), @@ -256,6 +249,6 @@ const AVFilter ff_vf_mpdecimate = { .priv_size = sizeof(DecimateContext), .priv_class = &mpdecimate_class, FILTER_INPUTS(mpdecimate_inputs), - FILTER_OUTPUTS(mpdecimate_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), }; diff --git a/libavfilter/vf_negate.c b/libavfilter/vf_negate.c index d782e63d3a..87cf908fd5 100644 --- a/libavfilter/vf_negate.c +++ b/libavfilter/vf_negate.c @@ -355,20 +355,13 @@ static const AVFilterPad inputs[] = { }, }; -static const AVFilterPad outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_negate = { .name = "negate", .description = NULL_IF_CONFIG_SMALL("Negate input video."), .priv_size = sizeof(NegateContext), .priv_class = &negate_class, FILTER_INPUTS(inputs), - FILTER_OUTPUTS(outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, .process_command = process_command, diff --git a/libavfilter/vf_neighbor.c b/libavfilter/vf_neighbor.c index d6638779e5..796f33c157 100644 --- a/libavfilter/vf_neighbor.c +++ b/libavfilter/vf_neighbor.c @@ -341,13 +341,6 @@ static const AVFilterPad neighbor_inputs[] = { }, }; -static const AVFilterPad neighbor_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - #define OFFSET(x) offsetof(NContext, x) #define FLAGS AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM|AV_OPT_FLAG_RUNTIME_PARAM @@ -358,7 +351,7 @@ const AVFilter ff_vf_##name_ = { \ .priv_class = &priv_class_##_class, \ .priv_size = sizeof(NContext), \ FILTER_INPUTS(neighbor_inputs), \ - FILTER_OUTPUTS(neighbor_outputs), \ + FILTER_OUTPUTS(ff_video_default_filterpad), \ FILTER_PIXFMTS_ARRAY(pix_fmts), \ .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC| \ AVFILTER_FLAG_SLICE_THREADS, \ diff --git a/libavfilter/vf_nlmeans.c b/libavfilter/vf_nlmeans.c index 2fc3adacca..283865f3db 100644 --- a/libavfilter/vf_nlmeans.c +++ b/libavfilter/vf_nlmeans.c @@ -472,13 +472,6 @@ static const AVFilterPad nlmeans_inputs[] = { }, }; -static const AVFilterPad nlmeans_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_nlmeans = { .name = "nlmeans", .description = NULL_IF_CONFIG_SMALL("Non-local means denoiser."), @@ -486,7 +479,7 @@ const AVFilter ff_vf_nlmeans = { .init = init, .uninit = uninit, FILTER_INPUTS(nlmeans_inputs), - FILTER_OUTPUTS(nlmeans_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .priv_class = &nlmeans_class, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, diff --git a/libavfilter/vf_noise.c b/libavfilter/vf_noise.c index 8ed12f7409..ba843eed4e 100644 --- a/libavfilter/vf_noise.c +++ b/libavfilter/vf_noise.c @@ -330,13 +330,6 @@ static const AVFilterPad noise_inputs[] = { }, }; -static const AVFilterPad noise_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_noise = { .name = "noise", .description = NULL_IF_CONFIG_SMALL("Add noise."), @@ -344,7 +337,7 @@ const AVFilter ff_vf_noise = { .init = init, .uninit = uninit, FILTER_INPUTS(noise_inputs), - FILTER_OUTPUTS(noise_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_QUERY_FUNC(query_formats), .priv_class = &noise_class, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, diff --git a/libavfilter/vf_normalize.c b/libavfilter/vf_normalize.c index 43ed3c67b3..146e36f5fd 100644 --- a/libavfilter/vf_normalize.c +++ b/libavfilter/vf_normalize.c @@ -511,13 +511,6 @@ static const AVFilterPad inputs[] = { }, }; -static const AVFilterPad outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_normalize = { .name = "normalize", .description = NULL_IF_CONFIG_SMALL("Normalize RGB video."), @@ -525,7 +518,7 @@ const AVFilter ff_vf_normalize = { .priv_class = &normalize_class, .uninit = uninit, FILTER_INPUTS(inputs), - FILTER_OUTPUTS(outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pixel_fmts), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, .process_command = ff_filter_process_command, diff --git a/libavfilter/vf_null.c b/libavfilter/vf_null.c index fa80e2a102..1502774f98 100644 --- a/libavfilter/vf_null.c +++ b/libavfilter/vf_null.c @@ -26,24 +26,10 @@ #include "internal.h" #include "video.h" -static const AVFilterPad avfilter_vf_null_inputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - -static const AVFilterPad avfilter_vf_null_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_null = { .name = "null", .description = NULL_IF_CONFIG_SMALL("Pass the source unchanged to the output."), .flags = AVFILTER_FLAG_METADATA_ONLY, - FILTER_INPUTS(avfilter_vf_null_inputs), - FILTER_OUTPUTS(avfilter_vf_null_outputs), + FILTER_INPUTS(ff_video_default_filterpad), + FILTER_OUTPUTS(ff_video_default_filterpad), }; diff --git a/libavfilter/vf_ocr.c b/libavfilter/vf_ocr.c index 1648afa0f9..c7f7b69df7 100644 --- a/libavfilter/vf_ocr.c +++ b/libavfilter/vf_ocr.c @@ -129,13 +129,6 @@ static const AVFilterPad ocr_inputs[] = { }, }; -static const AVFilterPad ocr_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_ocr = { .name = "ocr", .description = NULL_IF_CONFIG_SMALL("Optical Character Recognition."), @@ -145,6 +138,6 @@ const AVFilter ff_vf_ocr = { .uninit = uninit, .flags = AVFILTER_FLAG_METADATA_ONLY, FILTER_INPUTS(ocr_inputs), - FILTER_OUTPUTS(ocr_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), }; diff --git a/libavfilter/vf_owdenoise.c b/libavfilter/vf_owdenoise.c index a728d2ba75..fad85bfa8e 100644 --- a/libavfilter/vf_owdenoise.c +++ b/libavfilter/vf_owdenoise.c @@ -355,20 +355,13 @@ static const AVFilterPad owdenoise_inputs[] = { }, }; -static const AVFilterPad owdenoise_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_owdenoise = { .name = "owdenoise", .description = NULL_IF_CONFIG_SMALL("Denoise using wavelets."), .priv_size = sizeof(OWDenoiseContext), .uninit = uninit, FILTER_INPUTS(owdenoise_inputs), - FILTER_OUTPUTS(owdenoise_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .priv_class = &owdenoise_class, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, diff --git a/libavfilter/vf_perspective.c b/libavfilter/vf_perspective.c index da720dcb54..97ed938034 100644 --- a/libavfilter/vf_perspective.c +++ b/libavfilter/vf_perspective.c @@ -495,13 +495,6 @@ static const AVFilterPad perspective_inputs[] = { }, }; -static const AVFilterPad perspective_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_perspective = { .name = "perspective", .description = NULL_IF_CONFIG_SMALL("Correct the perspective of video."), @@ -509,7 +502,7 @@ const AVFilter ff_vf_perspective = { .init = init, .uninit = uninit, FILTER_INPUTS(perspective_inputs), - FILTER_OUTPUTS(perspective_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .priv_class = &perspective_class, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, diff --git a/libavfilter/vf_phase.c b/libavfilter/vf_phase.c index 1cb71e0e43..ba1223cc8f 100644 --- a/libavfilter/vf_phase.c +++ b/libavfilter/vf_phase.c @@ -218,13 +218,6 @@ static const AVFilterPad phase_inputs[] = { }, }; -static const AVFilterPad phase_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_phase = { .name = "phase", .description = NULL_IF_CONFIG_SMALL("Phase shift fields."), @@ -232,7 +225,7 @@ const AVFilter ff_vf_phase = { .priv_class = &phase_class, .uninit = uninit, FILTER_INPUTS(phase_inputs), - FILTER_OUTPUTS(phase_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, .process_command = ff_filter_process_command, diff --git a/libavfilter/vf_photosensitivity.c b/libavfilter/vf_photosensitivity.c index e05d4d0262..8c8bbb8662 100644 --- a/libavfilter/vf_photosensitivity.c +++ b/libavfilter/vf_photosensitivity.c @@ -310,13 +310,6 @@ static const AVFilterPad inputs[] = { }, }; -static const AVFilterPad outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_photosensitivity = { .name = "photosensitivity", .description = NULL_IF_CONFIG_SMALL("Filter out photosensitive epilepsy seizure-inducing flashes."), @@ -324,6 +317,6 @@ const AVFilter ff_vf_photosensitivity = { .priv_class = &photosensitivity_class, .uninit = uninit, FILTER_INPUTS(inputs), - FILTER_OUTPUTS(outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS(AV_PIX_FMT_RGB24, AV_PIX_FMT_BGR24), }; diff --git a/libavfilter/vf_pixdesctest.c b/libavfilter/vf_pixdesctest.c index 12815aea9c..c2638d058f 100644 --- a/libavfilter/vf_pixdesctest.c +++ b/libavfilter/vf_pixdesctest.c @@ -115,18 +115,11 @@ static const AVFilterPad avfilter_vf_pixdesctest_inputs[] = { }, }; -static const AVFilterPad avfilter_vf_pixdesctest_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_pixdesctest = { .name = "pixdesctest", .description = NULL_IF_CONFIG_SMALL("Test pixel format definitions."), .priv_size = sizeof(PixdescTestContext), .uninit = uninit, FILTER_INPUTS(avfilter_vf_pixdesctest_inputs), - FILTER_OUTPUTS(avfilter_vf_pixdesctest_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), }; diff --git a/libavfilter/vf_pp.c b/libavfilter/vf_pp.c index 2d563f7d8a..aa37325a24 100644 --- a/libavfilter/vf_pp.c +++ b/libavfilter/vf_pp.c @@ -175,13 +175,6 @@ static const AVFilterPad pp_inputs[] = { }, }; -static const AVFilterPad pp_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_pp = { .name = "pp", .description = NULL_IF_CONFIG_SMALL("Filter video using libpostproc."), @@ -189,7 +182,7 @@ const AVFilter ff_vf_pp = { .init = pp_init, .uninit = pp_uninit, FILTER_INPUTS(pp_inputs), - FILTER_OUTPUTS(pp_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .process_command = pp_process_command, .priv_class = &pp_class, diff --git a/libavfilter/vf_pp7.c b/libavfilter/vf_pp7.c index 4f0e60c2e2..f44a5396ea 100644 --- a/libavfilter/vf_pp7.c +++ b/libavfilter/vf_pp7.c @@ -386,20 +386,13 @@ static const AVFilterPad pp7_inputs[] = { }, }; -static const AVFilterPad pp7_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_pp7 = { .name = "pp7", .description = NULL_IF_CONFIG_SMALL("Apply Postprocessing 7 filter."), .priv_size = sizeof(PP7Context), .uninit = uninit, FILTER_INPUTS(pp7_inputs), - FILTER_OUTPUTS(pp7_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .priv_class = &pp7_class, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, diff --git a/libavfilter/vf_pseudocolor.c b/libavfilter/vf_pseudocolor.c index 31532e2824..427eb1b5b4 100644 --- a/libavfilter/vf_pseudocolor.c +++ b/libavfilter/vf_pseudocolor.c @@ -1040,13 +1040,6 @@ static const AVFilterPad inputs[] = { }, }; -static const AVFilterPad outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - static av_cold void uninit(AVFilterContext *ctx) { PseudoColorContext *s = ctx->priv; @@ -1067,7 +1060,7 @@ const AVFilter ff_vf_pseudocolor = { .priv_class = &pseudocolor_class, .uninit = uninit, FILTER_INPUTS(inputs), - FILTER_OUTPUTS(outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, .process_command = process_command, diff --git a/libavfilter/vf_pullup.c b/libavfilter/vf_pullup.c index fcdcfc44af..80105ec1c0 100644 --- a/libavfilter/vf_pullup.c +++ b/libavfilter/vf_pullup.c @@ -749,13 +749,6 @@ static const AVFilterPad pullup_inputs[] = { }, }; -static const AVFilterPad pullup_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_pullup = { .name = "pullup", .description = NULL_IF_CONFIG_SMALL("Pullup from field sequence to frames."), @@ -763,6 +756,6 @@ const AVFilter ff_vf_pullup = { .priv_class = &pullup_class, .uninit = uninit, FILTER_INPUTS(pullup_inputs), - FILTER_OUTPUTS(pullup_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), }; diff --git a/libavfilter/vf_qp.c b/libavfilter/vf_qp.c index a771b51ae1..3019e77052 100644 --- a/libavfilter/vf_qp.c +++ b/libavfilter/vf_qp.c @@ -184,19 +184,12 @@ static const AVFilterPad qp_inputs[] = { }, }; -static const AVFilterPad qp_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_qp = { .name = "qp", .description = NULL_IF_CONFIG_SMALL("Change video quantization parameters."), .priv_size = sizeof(QPContext), FILTER_INPUTS(qp_inputs), - FILTER_OUTPUTS(qp_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), .priv_class = &qp_class, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_METADATA_ONLY, diff --git a/libavfilter/vf_readeia608.c b/libavfilter/vf_readeia608.c index d85012564f..8f3c44e8d8 100644 --- a/libavfilter/vf_readeia608.c +++ b/libavfilter/vf_readeia608.c @@ -539,20 +539,13 @@ static const AVFilterPad readeia608_inputs[] = { }, }; -static const AVFilterPad readeia608_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_readeia608 = { .name = "readeia608", .description = NULL_IF_CONFIG_SMALL("Read EIA-608 Closed Caption codes from input video and write them to frame metadata."), .priv_size = sizeof(ReadEIA608Context), .priv_class = &readeia608_class, FILTER_INPUTS(readeia608_inputs), - FILTER_OUTPUTS(readeia608_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pixel_fmts), .uninit = uninit, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | diff --git a/libavfilter/vf_readvitc.c b/libavfilter/vf_readvitc.c index d0fba234f7..011063a29b 100644 --- a/libavfilter/vf_readvitc.c +++ b/libavfilter/vf_readvitc.c @@ -32,6 +32,7 @@ #include "avfilter.h" #include "formats.h" #include "internal.h" +#include "video.h" #define LINE_DATA_SIZE 9 @@ -230,13 +231,6 @@ static const AVFilterPad inputs[] = { }, }; -static const AVFilterPad outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_readvitc = { .name = "readvitc", .description = NULL_IF_CONFIG_SMALL("Read vertical interval timecode and write it to frame metadata."), @@ -244,7 +238,7 @@ const AVFilter ff_vf_readvitc = { .priv_class = &readvitc_class, .flags = AVFILTER_FLAG_METADATA_ONLY, FILTER_INPUTS(inputs), - FILTER_OUTPUTS(outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pixel_fmts), .init = init, }; diff --git a/libavfilter/vf_removegrain.c b/libavfilter/vf_removegrain.c index 0d4b070cd5..a3a801f8d7 100644 --- a/libavfilter/vf_removegrain.c +++ b/libavfilter/vf_removegrain.c @@ -632,19 +632,12 @@ static const AVFilterPad removegrain_inputs[] = { }, }; -static const AVFilterPad removegrain_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_removegrain = { .name = "removegrain", .description = NULL_IF_CONFIG_SMALL("Remove grain."), .priv_size = sizeof(RemoveGrainContext), FILTER_INPUTS(removegrain_inputs), - FILTER_OUTPUTS(removegrain_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .priv_class = &removegrain_class, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, diff --git a/libavfilter/vf_removelogo.c b/libavfilter/vf_removelogo.c index c323b5eff3..346a746fe9 100644 --- a/libavfilter/vf_removelogo.c +++ b/libavfilter/vf_removelogo.c @@ -555,13 +555,6 @@ static const AVFilterPad removelogo_inputs[] = { }, }; -static const AVFilterPad removelogo_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_removelogo = { .name = "removelogo", .description = NULL_IF_CONFIG_SMALL("Remove a TV logo based on a mask image."), @@ -569,7 +562,7 @@ const AVFilter ff_vf_removelogo = { .init = init, .uninit = uninit, FILTER_INPUTS(removelogo_inputs), - FILTER_OUTPUTS(removelogo_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_SINGLE_PIXFMT(AV_PIX_FMT_YUV420P), .priv_class = &removelogo_class, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, diff --git a/libavfilter/vf_repeatfields.c b/libavfilter/vf_repeatfields.c index 782b1e543f..bf0edb5440 100644 --- a/libavfilter/vf_repeatfields.c +++ b/libavfilter/vf_repeatfields.c @@ -22,6 +22,7 @@ #include "avfilter.h" #include "filters.h" #include "internal.h" +#include "video.h" typedef struct RepeatFieldsContext { const AVClass *class; @@ -182,19 +183,12 @@ static const AVFilterPad repeatfields_inputs[] = { }, }; -static const AVFilterPad repeatfields_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_repeatfields = { .name = "repeatfields", .description = NULL_IF_CONFIG_SMALL("Hard repeat fields based on MPEG repeat field flag."), .priv_size = sizeof(RepeatFieldsContext), .uninit = uninit, FILTER_INPUTS(repeatfields_inputs), - FILTER_OUTPUTS(repeatfields_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pixel_fmts_eq), }; diff --git a/libavfilter/vf_sab.c b/libavfilter/vf_sab.c index ee6edd5a48..43cecea547 100644 --- a/libavfilter/vf_sab.c +++ b/libavfilter/vf_sab.c @@ -308,13 +308,6 @@ static const AVFilterPad sab_inputs[] = { }, }; -static const AVFilterPad sab_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_sab = { .name = "sab", .description = NULL_IF_CONFIG_SMALL("Apply shape adaptive blur."), @@ -322,7 +315,7 @@ const AVFilter ff_vf_sab = { .init = init, .uninit = uninit, FILTER_INPUTS(sab_inputs), - FILTER_OUTPUTS(sab_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .priv_class = &sab_class, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, diff --git a/libavfilter/vf_scdet.c b/libavfilter/vf_scdet.c index 8dcce5ada6..6de84a43a0 100644 --- a/libavfilter/vf_scdet.c +++ b/libavfilter/vf_scdet.c @@ -29,6 +29,7 @@ #include "avfilter.h" #include "filters.h" #include "scene_sad.h" +#include "video.h" typedef struct SCDetContext { const AVClass *class; @@ -193,13 +194,6 @@ static const AVFilterPad scdet_inputs[] = { }, }; -static const AVFilterPad scdet_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_scdet = { .name = "scdet", .description = NULL_IF_CONFIG_SMALL("Detect video scene change"), @@ -208,7 +202,7 @@ const AVFilter ff_vf_scdet = { .uninit = uninit, .flags = AVFILTER_FLAG_METADATA_ONLY, FILTER_INPUTS(scdet_inputs), - FILTER_OUTPUTS(scdet_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .activate = activate, }; diff --git a/libavfilter/vf_scroll.c b/libavfilter/vf_scroll.c index 5b7d0ad11c..5e35958fcd 100644 --- a/libavfilter/vf_scroll.c +++ b/libavfilter/vf_scroll.c @@ -195,20 +195,13 @@ static const AVFilterPad scroll_inputs[] = { }, }; -static const AVFilterPad scroll_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_scroll = { .name = "scroll", .description = NULL_IF_CONFIG_SMALL("Scroll input video."), .priv_size = sizeof(ScrollContext), .priv_class = &scroll_class, FILTER_INPUTS(scroll_inputs), - FILTER_OUTPUTS(scroll_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, .process_command = ff_filter_process_command, diff --git a/libavfilter/vf_selectivecolor.c b/libavfilter/vf_selectivecolor.c index ea4b5dfee2..ab980479a8 100644 --- a/libavfilter/vf_selectivecolor.c +++ b/libavfilter/vf_selectivecolor.c @@ -474,19 +474,12 @@ static const AVFilterPad selectivecolor_inputs[] = { }, }; -static const AVFilterPad selectivecolor_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_selectivecolor = { .name = "selectivecolor", .description = NULL_IF_CONFIG_SMALL("Apply CMYK adjustments to specific color ranges."), .priv_size = sizeof(SelectiveColorContext), FILTER_INPUTS(selectivecolor_inputs), - FILTER_OUTPUTS(selectivecolor_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .priv_class = &selectivecolor_class, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, diff --git a/libavfilter/vf_separatefields.c b/libavfilter/vf_separatefields.c index 723974afaa..b7ddb26377 100644 --- a/libavfilter/vf_separatefields.c +++ b/libavfilter/vf_separatefields.c @@ -22,6 +22,7 @@ #include "avfilter.h" #include "filters.h" #include "internal.h" +#include "video.h" typedef struct SeparateFieldsContext { int nb_planes; @@ -161,13 +162,6 @@ static av_cold void uninit(AVFilterContext *ctx) av_frame_free(&s->second); } -static const AVFilterPad separatefields_inputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - static const AVFilterPad separatefields_outputs[] = { { .name = "default", @@ -182,6 +176,6 @@ const AVFilter ff_vf_separatefields = { .priv_size = sizeof(SeparateFieldsContext), .activate = activate, .uninit = uninit, - FILTER_INPUTS(separatefields_inputs), + FILTER_INPUTS(ff_video_default_filterpad), FILTER_OUTPUTS(separatefields_outputs), }; diff --git a/libavfilter/vf_setparams.c b/libavfilter/vf_setparams.c index 321a64a14e..ae4c937518 100644 --- a/libavfilter/vf_setparams.c +++ b/libavfilter/vf_setparams.c @@ -169,13 +169,6 @@ static const AVFilterPad inputs[] = { }, }; -static const AVFilterPad outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_setparams = { .name = "setparams", .description = NULL_IF_CONFIG_SMALL("Force field, or color property for the output video frame."), @@ -183,7 +176,7 @@ const AVFilter ff_vf_setparams = { .priv_class = &setparams_class, .flags = AVFILTER_FLAG_METADATA_ONLY, FILTER_INPUTS(inputs), - FILTER_OUTPUTS(outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), }; #if CONFIG_SETRANGE_FILTER @@ -223,7 +216,7 @@ const AVFilter ff_vf_setrange = { .priv_class = &setrange_class, .flags = AVFILTER_FLAG_METADATA_ONLY, FILTER_INPUTS(inputs), - FILTER_OUTPUTS(outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), }; #endif /* CONFIG_SETRANGE_FILTER */ @@ -258,6 +251,6 @@ const AVFilter ff_vf_setfield = { .priv_class = &setfield_class, .flags = AVFILTER_FLAG_METADATA_ONLY, FILTER_INPUTS(inputs), - FILTER_OUTPUTS(outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), }; #endif /* CONFIG_SETFIELD_FILTER */ diff --git a/libavfilter/vf_shuffleframes.c b/libavfilter/vf_shuffleframes.c index 14b90e6446..cf8f197e27 100644 --- a/libavfilter/vf_shuffleframes.c +++ b/libavfilter/vf_shuffleframes.c @@ -146,13 +146,6 @@ static const AVFilterPad shuffleframes_inputs[] = { }, }; -static const AVFilterPad shuffleframes_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_shuffleframes = { .name = "shuffleframes", .description = NULL_IF_CONFIG_SMALL("Shuffle video frames."), @@ -161,6 +154,6 @@ const AVFilter ff_vf_shuffleframes = { .init = init, .uninit = uninit, FILTER_INPUTS(shuffleframes_inputs), - FILTER_OUTPUTS(shuffleframes_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, }; diff --git a/libavfilter/vf_shuffleplanes.c b/libavfilter/vf_shuffleplanes.c index b2f64ad076..1540eaad0e 100644 --- a/libavfilter/vf_shuffleplanes.c +++ b/libavfilter/vf_shuffleplanes.c @@ -153,20 +153,13 @@ static const AVFilterPad shuffleplanes_inputs[] = { }, }; -static const AVFilterPad shuffleplanes_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_shuffleplanes = { .name = "shuffleplanes", .description = NULL_IF_CONFIG_SMALL("Shuffle video planes."), .priv_size = sizeof(ShufflePlanesContext), .priv_class = &shuffleplanes_class, FILTER_INPUTS(shuffleplanes_inputs), - FILTER_OUTPUTS(shuffleplanes_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_QUERY_FUNC(query_formats), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, }; diff --git a/libavfilter/vf_siti.c b/libavfilter/vf_siti.c index 738affa5e8..ae9278c47c 100644 --- a/libavfilter/vf_siti.c +++ b/libavfilter/vf_siti.c @@ -328,13 +328,6 @@ static const AVFilterPad avfilter_vf_siti_inputs[] = { }, }; -static const AVFilterPad avfilter_vf_siti_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO - }, -}; - const AVFilter ff_vf_siti = { .name = "siti", .description = NULL_IF_CONFIG_SMALL("Calculate spatial information (SI) and temporal information (TI)."), @@ -345,5 +338,5 @@ const AVFilter ff_vf_siti = { .flags = AVFILTER_FLAG_METADATA_ONLY, FILTER_PIXFMTS_ARRAY(pix_fmts), FILTER_INPUTS(avfilter_vf_siti_inputs), - FILTER_OUTPUTS(avfilter_vf_siti_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), }; diff --git a/libavfilter/vf_smartblur.c b/libavfilter/vf_smartblur.c index 6c4719eab5..e9f56d5330 100644 --- a/libavfilter/vf_smartblur.c +++ b/libavfilter/vf_smartblur.c @@ -275,13 +275,6 @@ static const AVFilterPad smartblur_inputs[] = { }, }; -static const AVFilterPad smartblur_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_smartblur = { .name = "smartblur", .description = NULL_IF_CONFIG_SMALL("Blur the input video without impacting the outlines."), @@ -289,7 +282,7 @@ const AVFilter ff_vf_smartblur = { .init = init, .uninit = uninit, FILTER_INPUTS(smartblur_inputs), - FILTER_OUTPUTS(smartblur_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .priv_class = &smartblur_class, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, diff --git a/libavfilter/vf_spp.c b/libavfilter/vf_spp.c index efabe4dbae..83f062b3bf 100644 --- a/libavfilter/vf_spp.c +++ b/libavfilter/vf_spp.c @@ -485,13 +485,6 @@ static const AVFilterPad spp_inputs[] = { }, }; -static const AVFilterPad spp_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_spp = { .name = "spp", .description = NULL_IF_CONFIG_SMALL("Apply a simple post processing filter."), @@ -499,7 +492,7 @@ const AVFilter ff_vf_spp = { .preinit = preinit, .uninit = uninit, FILTER_INPUTS(spp_inputs), - FILTER_OUTPUTS(spp_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .process_command = process_command, .priv_class = &spp_class, diff --git a/libavfilter/vf_subtitles.c b/libavfilter/vf_subtitles.c index 3e5a19e715..e2857e90c0 100644 --- a/libavfilter/vf_subtitles.c +++ b/libavfilter/vf_subtitles.c @@ -212,13 +212,6 @@ static const AVFilterPad ass_inputs[] = { }, }; -static const AVFilterPad ass_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - #if CONFIG_ASS_FILTER static const AVOption ass_options[] = { @@ -260,7 +253,7 @@ const AVFilter ff_vf_ass = { .init = init_ass, .uninit = uninit, FILTER_INPUTS(ass_inputs), - FILTER_OUTPUTS(ass_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_QUERY_FUNC(query_formats), .priv_class = &ass_class, }; @@ -515,7 +508,7 @@ const AVFilter ff_vf_subtitles = { .init = init_subtitles, .uninit = uninit, FILTER_INPUTS(ass_inputs), - FILTER_OUTPUTS(ass_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_QUERY_FUNC(query_formats), .priv_class = &subtitles_class, }; diff --git a/libavfilter/vf_swaprect.c b/libavfilter/vf_swaprect.c index fad650151f..13ae149afd 100644 --- a/libavfilter/vf_swaprect.c +++ b/libavfilter/vf_swaprect.c @@ -237,13 +237,6 @@ static const AVFilterPad inputs[] = { }, }; -static const AVFilterPad outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_swaprect = { .name = "swaprect", .description = NULL_IF_CONFIG_SMALL("Swap 2 rectangular objects in video."), @@ -251,7 +244,7 @@ const AVFilter ff_vf_swaprect = { .priv_class = &swaprect_class, .uninit = uninit, FILTER_INPUTS(inputs), - FILTER_OUTPUTS(outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_QUERY_FUNC(query_formats), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, .process_command = ff_filter_process_command, diff --git a/libavfilter/vf_swapuv.c b/libavfilter/vf_swapuv.c index 4452028262..df04631d20 100644 --- a/libavfilter/vf_swapuv.c +++ b/libavfilter/vf_swapuv.c @@ -101,20 +101,13 @@ static const AVFilterPad swapuv_inputs[] = { }, }; -static const AVFilterPad swapuv_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_swapuv = { .name = "swapuv", .description = NULL_IF_CONFIG_SMALL("Swap U and V components."), .priv_size = sizeof(SwapUVContext), .priv_class = &swapuv_class, FILTER_INPUTS(swapuv_inputs), - FILTER_OUTPUTS(swapuv_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_QUERY_FUNC(query_formats), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, }; diff --git a/libavfilter/vf_tonemap.c b/libavfilter/vf_tonemap.c index d1087e6bd9..f34448d0e9 100644 --- a/libavfilter/vf_tonemap.c +++ b/libavfilter/vf_tonemap.c @@ -307,13 +307,6 @@ static const AVFilterPad tonemap_inputs[] = { }, }; -static const AVFilterPad tonemap_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_tonemap = { .name = "tonemap", .description = NULL_IF_CONFIG_SMALL("Conversion to/from different dynamic ranges."), @@ -321,7 +314,7 @@ const AVFilter ff_vf_tonemap = { .priv_size = sizeof(TonemapContext), .priv_class = &tonemap_class, FILTER_INPUTS(tonemap_inputs), - FILTER_OUTPUTS(tonemap_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS(AV_PIX_FMT_GBRPF32, AV_PIX_FMT_GBRAPF32), .flags = AVFILTER_FLAG_SLICE_THREADS, }; diff --git a/libavfilter/vf_tpad.c b/libavfilter/vf_tpad.c index 19c4f9b0b5..7990403e81 100644 --- a/libavfilter/vf_tpad.c +++ b/libavfilter/vf_tpad.c @@ -225,13 +225,6 @@ static const AVFilterPad tpad_inputs[] = { }, }; -static const AVFilterPad tpad_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_tpad = { .name = "tpad", .description = NULL_IF_CONFIG_SMALL("Temporarily pad video frames."), @@ -240,6 +233,6 @@ const AVFilter ff_vf_tpad = { .activate = activate, .uninit = uninit, FILTER_INPUTS(tpad_inputs), - FILTER_OUTPUTS(tpad_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_QUERY_FUNC(query_formats), }; diff --git a/libavfilter/vf_unsharp.c b/libavfilter/vf_unsharp.c index 5e17ebce1e..73dd2f2a28 100644 --- a/libavfilter/vf_unsharp.c +++ b/libavfilter/vf_unsharp.c @@ -366,13 +366,6 @@ static const AVFilterPad avfilter_vf_unsharp_inputs[] = { }, }; -static const AVFilterPad avfilter_vf_unsharp_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_unsharp = { .name = "unsharp", .description = NULL_IF_CONFIG_SMALL("Sharpen or blur the input video."), @@ -381,7 +374,7 @@ const AVFilter ff_vf_unsharp = { .init = init, .uninit = uninit, FILTER_INPUTS(avfilter_vf_unsharp_inputs), - FILTER_OUTPUTS(avfilter_vf_unsharp_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, }; diff --git a/libavfilter/vf_untile.c b/libavfilter/vf_untile.c index c8dafd1e60..f32f3e186b 100644 --- a/libavfilter/vf_untile.c +++ b/libavfilter/vf_untile.c @@ -24,6 +24,7 @@ #include "avfilter.h" #include "formats.h" #include "filters.h" +#include "video.h" typedef struct UntileContext { const AVClass *class; @@ -162,13 +163,6 @@ static av_cold void uninit(AVFilterContext *ctx) av_frame_free(&s->frame); } -static const AVFilterPad untile_inputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - static const AVFilterPad untile_outputs[] = { { .name = "default", @@ -184,7 +178,7 @@ const AVFilter ff_vf_untile = { .uninit = uninit, .activate = activate, .priv_size = sizeof(UntileContext), - FILTER_INPUTS(untile_inputs), + FILTER_INPUTS(ff_video_default_filterpad), FILTER_OUTPUTS(untile_outputs), FILTER_QUERY_FUNC(query_formats), .priv_class = &untile_class, diff --git a/libavfilter/vf_uspp.c b/libavfilter/vf_uspp.c index 5f410b98a5..10c8aaeb6c 100644 --- a/libavfilter/vf_uspp.c +++ b/libavfilter/vf_uspp.c @@ -547,20 +547,13 @@ static const AVFilterPad uspp_inputs[] = { }, }; -static const AVFilterPad uspp_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_uspp = { .name = "uspp", .description = NULL_IF_CONFIG_SMALL("Apply Ultra Simple / Slow Post-processing filter."), .priv_size = sizeof(USPPContext), .uninit = uninit, FILTER_INPUTS(uspp_inputs), - FILTER_OUTPUTS(uspp_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .priv_class = &uspp_class, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, diff --git a/libavfilter/vf_vaguedenoiser.c b/libavfilter/vf_vaguedenoiser.c index fb66f0dea1..81cc4b26e1 100644 --- a/libavfilter/vf_vaguedenoiser.c +++ b/libavfilter/vf_vaguedenoiser.c @@ -594,13 +594,6 @@ static const AVFilterPad vaguedenoiser_inputs[] = { }; -static const AVFilterPad vaguedenoiser_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO - }, -}; - const AVFilter ff_vf_vaguedenoiser = { .name = "vaguedenoiser", .description = NULL_IF_CONFIG_SMALL("Apply a Wavelet based Denoiser."), @@ -609,7 +602,7 @@ const AVFilter ff_vf_vaguedenoiser = { .init = init, .uninit = uninit, FILTER_INPUTS(vaguedenoiser_inputs), - FILTER_OUTPUTS(vaguedenoiser_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, }; diff --git a/libavfilter/vf_vflip.c b/libavfilter/vf_vflip.c index 0d624512f9..8d6724ed37 100644 --- a/libavfilter/vf_vflip.c +++ b/libavfilter/vf_vflip.c @@ -135,19 +135,12 @@ static const AVFilterPad avfilter_vf_vflip_inputs[] = { }, }; -static const AVFilterPad avfilter_vf_vflip_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_vflip = { .name = "vflip", .description = NULL_IF_CONFIG_SMALL("Flip the input video vertically."), .priv_size = sizeof(FlipContext), .priv_class = &vflip_class, FILTER_INPUTS(avfilter_vf_vflip_inputs), - FILTER_OUTPUTS(avfilter_vf_vflip_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, }; diff --git a/libavfilter/vf_vfrdet.c b/libavfilter/vf_vfrdet.c index 0ca221b5b8..8d641dd368 100644 --- a/libavfilter/vf_vfrdet.c +++ b/libavfilter/vf_vfrdet.c @@ -21,6 +21,7 @@ #include "libavutil/common.h" #include "libavutil/opt.h" #include "internal.h" +#include "video.h" typedef struct VFRDETContext { const AVClass *class; @@ -95,13 +96,6 @@ static const AVFilterPad vfrdet_inputs[] = { }, }; -static const AVFilterPad vfrdet_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_vfrdet = { .name = "vfrdet", .description = NULL_IF_CONFIG_SMALL("Variable frame rate detect filter."), @@ -110,5 +104,5 @@ const AVFilter ff_vf_vfrdet = { .uninit = uninit, .flags = AVFILTER_FLAG_METADATA_ONLY, FILTER_INPUTS(vfrdet_inputs), - FILTER_OUTPUTS(vfrdet_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), }; diff --git a/libavfilter/vf_vibrance.c b/libavfilter/vf_vibrance.c index 329b37bdc6..e5ab3d24bf 100644 --- a/libavfilter/vf_vibrance.c +++ b/libavfilter/vf_vibrance.c @@ -416,13 +416,6 @@ static const AVFilterPad vibrance_inputs[] = { }, }; -static const AVFilterPad vibrance_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - #define OFFSET(x) offsetof(VibranceContext, x) #define VF AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM|AV_OPT_FLAG_RUNTIME_PARAM @@ -446,7 +439,7 @@ const AVFilter ff_vf_vibrance = { .priv_size = sizeof(VibranceContext), .priv_class = &vibrance_class, FILTER_INPUTS(vibrance_inputs), - FILTER_OUTPUTS(vibrance_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pixel_fmts), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, .process_command = ff_filter_process_command, diff --git a/libavfilter/vf_vidstabdetect.c b/libavfilter/vf_vidstabdetect.c index b27b1e40a6..a2c6d89503 100644 --- a/libavfilter/vf_vidstabdetect.c +++ b/libavfilter/vf_vidstabdetect.c @@ -29,6 +29,7 @@ #include "avfilter.h" #include "filters.h" #include "internal.h" +#include "video.h" #include "vidstabutils.h" @@ -188,13 +189,6 @@ static const AVFilterPad avfilter_vf_vidstabdetect_inputs[] = { }, }; -static const AVFilterPad avfilter_vf_vidstabdetect_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_vidstabdetect = { .name = "vidstabdetect", .description = NULL_IF_CONFIG_SMALL("Extract relative transformations, " @@ -205,7 +199,7 @@ const AVFilter ff_vf_vidstabdetect = { .uninit = uninit, .flags = AVFILTER_FLAG_METADATA_ONLY, FILTER_INPUTS(avfilter_vf_vidstabdetect_inputs), - FILTER_OUTPUTS(avfilter_vf_vidstabdetect_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(ff_vidstab_pix_fmts), .priv_class = &vidstabdetect_class, }; diff --git a/libavfilter/vf_vidstabtransform.c b/libavfilter/vf_vidstabtransform.c index 9efc8ef5a0..8a66a463b4 100644 --- a/libavfilter/vf_vidstabtransform.c +++ b/libavfilter/vf_vidstabtransform.c @@ -283,13 +283,6 @@ static const AVFilterPad avfilter_vf_vidstabtransform_inputs[] = { }, }; -static const AVFilterPad avfilter_vf_vidstabtransform_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_vidstabtransform = { .name = "vidstabtransform", .description = NULL_IF_CONFIG_SMALL("Transform the frames, " @@ -299,7 +292,7 @@ const AVFilter ff_vf_vidstabtransform = { .init = init, .uninit = uninit, FILTER_INPUTS(avfilter_vf_vidstabtransform_inputs), - FILTER_OUTPUTS(avfilter_vf_vidstabtransform_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(ff_vidstab_pix_fmts), .priv_class = &vidstabtransform_class, }; diff --git a/libavfilter/vf_vignette.c b/libavfilter/vf_vignette.c index 56764b49d1..177d51e276 100644 --- a/libavfilter/vf_vignette.c +++ b/libavfilter/vf_vignette.c @@ -325,13 +325,6 @@ static const AVFilterPad vignette_inputs[] = { }, }; -static const AVFilterPad vignette_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_vignette = { .name = "vignette", .description = NULL_IF_CONFIG_SMALL("Make or reverse a vignette effect."), @@ -339,7 +332,7 @@ const AVFilter ff_vf_vignette = { .init = init, .uninit = uninit, FILTER_INPUTS(vignette_inputs), - FILTER_OUTPUTS(vignette_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .priv_class = &vignette_class, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, diff --git a/libavfilter/vf_vmafmotion.c b/libavfilter/vf_vmafmotion.c index 137afd9245..022816e896 100644 --- a/libavfilter/vf_vmafmotion.c +++ b/libavfilter/vf_vmafmotion.c @@ -30,6 +30,7 @@ #include "avfilter.h" #include "formats.h" #include "internal.h" +#include "video.h" #include "vmaf_motion.h" #define BIT_SHIFT 15 @@ -350,13 +351,6 @@ static const AVFilterPad vmafmotion_inputs[] = { }, }; -static const AVFilterPad vmafmotion_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - const AVFilter ff_vf_vmafmotion = { .name = "vmafmotion", .description = NULL_IF_CONFIG_SMALL("Calculate the VMAF Motion score."), @@ -366,6 +360,6 @@ const AVFilter ff_vf_vmafmotion = { .priv_class = &vmafmotion_class, .flags = AVFILTER_FLAG_METADATA_ONLY, FILTER_INPUTS(vmafmotion_inputs), - FILTER_OUTPUTS(vmafmotion_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_QUERY_FUNC(query_formats), }; diff --git a/libavfilter/vf_yaepblur.c b/libavfilter/vf_yaepblur.c index 473a444498..b39738b577 100644 --- a/libavfilter/vf_yaepblur.c +++ b/libavfilter/vf_yaepblur.c @@ -310,13 +310,6 @@ static const AVFilterPad yaep_inputs[] = { }, }; -static const AVFilterPad yaep_outputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - #define OFFSET(x) offsetof(YAEPContext, x) #define FLAGS AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM|AV_OPT_FLAG_RUNTIME_PARAM @@ -339,7 +332,7 @@ const AVFilter ff_vf_yaepblur = { .priv_class = &yaepblur_class, .uninit = uninit, FILTER_INPUTS(yaep_inputs), - FILTER_OUTPUTS(yaep_outputs), + FILTER_OUTPUTS(ff_video_default_filterpad), FILTER_PIXFMTS_ARRAY(pix_fmts), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, .process_command = ff_filter_process_command, diff --git a/libavfilter/vf_zoompan.c b/libavfilter/vf_zoompan.c index cca979e01a..2e8bc18f3a 100644 --- a/libavfilter/vf_zoompan.c +++ b/libavfilter/vf_zoompan.c @@ -351,13 +351,6 @@ static av_cold void uninit(AVFilterContext *ctx) av_frame_free(&s->in); } -static const AVFilterPad inputs[] = { - { - .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - }, -}; - static const AVFilterPad outputs[] = { { .name = "default", @@ -374,7 +367,7 @@ const AVFilter ff_vf_zoompan = { .init = init, .uninit = uninit, .activate = activate, - FILTER_INPUTS(inputs), + FILTER_INPUTS(ff_video_default_filterpad), FILTER_OUTPUTS(outputs), FILTER_PIXFMTS_ARRAY(pix_fmts), }; diff --git a/libavfilter/video.c b/libavfilter/video.c index 7683ef6fd4..42eeb98c28 100644 --- a/libavfilter/video.c +++ b/libavfilter/video.c @@ -33,6 +33,13 @@ #include "internal.h" #include "video.h" +const AVFilterPad ff_video_default_filterpad[1] = { + { + .name = "default", + .type = AVMEDIA_TYPE_VIDEO, + } +}; + AVFrame *ff_null_get_video_buffer(AVFilterLink *link, int w, int h) { return ff_get_video_buffer(link->dst->outputs[0], w, h); diff --git a/libavfilter/video.h b/libavfilter/video.h index f37bab9d03..8efea521ef 100644 --- a/libavfilter/video.h +++ b/libavfilter/video.h @@ -22,6 +22,11 @@ #define AVFILTER_VIDEO_H #include "avfilter.h" +#include "internal.h" + +/* An AVFilterPad array whose only entry has name "default" + * and is of type video. */ +extern const AVFilterPad ff_video_default_filterpad[1]; AVFrame *ff_default_get_video_buffer(AVFilterLink *link, int w, int h); AVFrame *ff_default_get_video_buffer2(AVFilterLink *link, int w, int h, int align);