From patchwork Sun Sep 19 04:44:30 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 30373 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:6506:0:0:0:0:0 with SMTP id z6csp393276iob; Sat, 18 Sep 2021 21:44:54 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx9ldHbATRsypmTHirdnfAzDgXY9geouSQMLJ8ijWDcfnDBK/vdvQ9o6q5Tieou8/uKWI/A X-Received: by 2002:a05:6402:319a:: with SMTP id di26mr22419765edb.84.1632026694549; Sat, 18 Sep 2021 21:44:54 -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 la2si12903226ejc.153.2021.09.18.21.44.53; Sat, 18 Sep 2021 21:44:54 -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=krq0iRZD; 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 EBFAF68B1A5; Sun, 19 Sep 2021 07:44:49 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-oln040092071086.outbound.protection.outlook.com [40.92.71.86]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1F1DF68B0F4 for ; Sun, 19 Sep 2021 07:44:42 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aOc6DQYAwPuMXosPbaT+5Zrx8thbPnxXRCWhoUVlFWeDQRglVplcPrMPujACR9wa2+0yxsIa9xkZshkfU5suaD04Q2wmWE7omgYI9p6uFBrKYG1RlWOsH3cB9lCd5NTHre0YOPYYhEXRY4VXeWwa31r4yzTNIwMNcGD/hR0RgA0fDQ1vIE50jZC1yefdc3GRntUYFPHIELNebwcnYCTRTJ7JZ0CeWoRpjvbr/44Z+8/swC7dD2IWJ6btks1rGKXv3+rbnjJnf6/IRUNjyNNFXqzEMiFNJJS4pC2gJljAlzf6UhjqZ/fRcH03ZUguZhUJphxuvKVe2U7Gk0pLYI+cLw== 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; bh=l+pwsi7hLrbBZLu3rt5AjNeUqz7hvyA1AmcEfGZhGZs=; b=kIt6UvmFJ43ZW0KiEuMHJHqcc5jGUVHqUDfl3i5keP4YvHZNSgrdTWGPrNdCz4jZEBDOzm/tJ17mpsvCL1QtKpEELLMvAnsiiLNRN1CFC8o6xerPIGWJFK887jqoiyS/hFEorgHPG7C8lfVplllnw3P3zVsDPlk/5saKiiRUi+AkpzhkWgy9qqoiibE7+6qPqstWyjk0Z3+4ALPPeELDKafRhLKOEV9p6ErfBGvYq2MAUcMXomUvmH4452q2+TK1ZMXz/a/qkqR3YsO6fQ5HtwhVvRqrdsaV2+YOdPvBI3Hh8sVg8YaQs5WCVkMDOzg+frfjkzG9OQFK7UiksVH9/g== 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=l+pwsi7hLrbBZLu3rt5AjNeUqz7hvyA1AmcEfGZhGZs=; b=krq0iRZDf+rM8n6Opek+EioCjJspfvgwodchtzcgSmTuRzZXBg6aPgXIxWzB5AruvjZjdg9puh9LoTLTcvs6oL5eHX5h5CQBhNNSHFsNHR8nIDz52WtGyHhp4HLtiDDzFo0Z5zY90mIh3SQ8q+XNre92QsJQBCsro3yaNv2NujS1F+BDC94b6hnECIWU4IBc2Qe7WSA3Ck/6sCDFU1nJEJAXCf89haqY1vPVAtt9+Hz3vM7JNuL/b4TXe624fcIGJxH6PjYlNdmuvHxveRSG7gygMsQ/mB7dOlztn2OF3SZjHdI7klRfvHCtPoQlB8U/q7+nCNyKcrOrr2iKxUkc1A== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AS8PR03MB7509.eurprd03.prod.outlook.com (2603:10a6:20b:2e2::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4523.16; Sun, 19 Sep 2021 04:44:41 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::787b:2156:ca99:fe00]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::787b:2156:ca99:fe00%3]) with mapi id 15.20.4523.016; Sun, 19 Sep 2021 04:44:41 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 19 Sep 2021 06:44:30 +0200 Message-ID: X-Mailer: git-send-email 2.30.2 X-TMN: [syn9iauai/+xUA8VKcqyrY3E6YcLth85] X-ClientProxiedBy: PR3P191CA0010.EURP191.PROD.OUTLOOK.COM (2603:10a6:102:54::15) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20210919044433.2671282-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.142.38) by PR3P191CA0010.EURP191.PROD.OUTLOOK.COM (2603:10a6:102:54::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4523.14 via Frontend Transport; Sun, 19 Sep 2021 04:44:40 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5ea853da-26ad-4672-b817-08d97b283189 X-MS-Exchange-SLBlob-MailProps: EpEO96k6Wok6BVvod2FmIc/Zu5j76HoE7R8zeuBCXqnaxI1/PxIuNAzQP8LXcQHAM0yvWIyu+ld/pi2EQOT7oGbK/98tVdptWPomPUBVWzhyE+SJJgrleLdNBRHvtwacejQqKopkig6VBCEzscoQ6FscWsBY9gUtqfJmbnyzFeOCs8nnZoQHN1pWVl4xEJ0VKA7TuDQsBasxU5DTwQsH6c480l3i7m3Onyaw8EU+JtkvBmkDa0n5vOQf9/O3e/i0om/rNo0DNiv59USCdETG3JxKULONmdESmoz5zSfX4JwFEBtt6Mw/7DBEJKHWZFxtckohGPKX1PKPIq+4PJddD4WUqIGl9dGXdDUYv4l2ty125/aVCNVdSIgeDkwyegIOurPigjA1FzZDs3RF0BRmCRtt2W99k+ep3UKFl1Iw07uruCV3U5a+Xmz/ZuBA/5S1ZeD9lL04UCtBnZGdCVc81iX5SozXRDVMRVzJfTwgbw7PvMrsOjPc7NpggZwYXhb3/wmrOpOwD0Y4E/h4uWMF4lw6jIFgX+cfFG6JbkBtqiiO6t8kbyEcga7zHLM8pcYJrRHnsiF8isDBabybJtOGyhreb3y5DBzrw8lnBWxXkjxEYKHPNCbxGEXVGcLm46/OjfT4ceqHfvUc5TrIs/j669VTPk1Ky+1ZuE6TnDk/e5Hf/+980eIPvR2YImSwC6Q/Z5j6tqg2+MfGbLam/oAkvMR3NSgTgE0vyDSdFiw671a01plQNpUw6A7j9FXVx6jfk+vn+dLPACc= X-MS-TrafficTypeDiagnostic: AS8PR03MB7509: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ym219OYr2iOl2+7VgEaKoDjn3FebsmMA/B+4kUjCZqDoFJyToJPFoN60VElfgogqvB74ZYuIjr+UWEW+BEqPdHruQpPCJt1GzIgDGn70nIJIjE2MZyfvZV0zWC6I+WD6yarxTXrY7+SRn/kpJmg5l5/5tmfTEQRh47lvwLxobU5cX7SKQTV5hcJ/escloB4p1S5JDGNm3RKbM+z2wKx8G4f1QWq0gt6dgsGWfDXMxlGL7QIsePUgIL3m5gGWaRJZIx7dil0VsTjeKEqBiDBJylxd+ceW801oIWDdQuMz7YQLodTstWoZKOF0yQLas8D2rdCgi3/K5ClUnmkrrRH8bILmJW22BbuPFpC9T5j9o+bvsgM+qPRPYksZ0tZU8FY/uDHSAtDuow0OkgJ62QXjEpvsVTaF0Lr9TXsVBu1JMdEJV5gOTfKPjLuBTv+d827c X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: DVRSjvJMly60+IwLNtRFR4Qi2GomM/oLQBMHMTnKk3QfWJswVTcP8uDgsW1Hw3ptZtolUD7y58YRJKCIKn5fGSX+0l1fwsGVPLaPFKxadTB1vreGfg0vzkzUGse/siSvW+ojycv0vam/wCTPTRzYgg== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5ea853da-26ad-4672-b817-08d97b283189 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Sep 2021 04:44:41.2351 (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: AS8PR03MB7509 Subject: [FFmpeg-devel] [PATCH 1/4] avfilter/framesync: Separate framesync AVClass and auxiliary functions 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: UYtwdUohn18n Will be useful for deduplication. Signed-off-by: Andreas Rheinhardt --- libavfilter/framesync.h | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/libavfilter/framesync.h b/libavfilter/framesync.h index fb85e8aec7..8436aba23b 100644 --- a/libavfilter/framesync.h +++ b/libavfilter/framesync.h @@ -299,25 +299,34 @@ int ff_framesync_dualinput_get_writable(FFFrameSync *fs, AVFrame **f0, AVFrame * const AVClass *ff_framesync_child_class_iterate(void **iter); -#define FRAMESYNC_DEFINE_CLASS(name, context, field) \ -static int name##_framesync_preinit(AVFilterContext *ctx) { \ +#define FRAMESYNC_DEFINE_PURE_CLASS(name, desc, func_prefix, options) \ +static const AVClass name##_class = { \ + .class_name = desc, \ + .item_name = av_default_item_name, \ + .option = options, \ + .version = LIBAVUTIL_VERSION_INT, \ + .category = AV_CLASS_CATEGORY_FILTER, \ + .child_class_iterate = ff_framesync_child_class_iterate, \ + .child_next = func_prefix##_child_next, \ +} + +#define FRAMESYNC_AUXILIARY_FUNCS(func_prefix, context, field) \ +static int func_prefix##_framesync_preinit(AVFilterContext *ctx) { \ context *s = ctx->priv; \ ff_framesync_preinit(&s->field); \ return 0; \ } \ -static void *name##_child_next(void *obj, void *prev) { \ +static void *func_prefix##_child_next(void *obj, void *prev) { \ context *s = obj; \ s->fs.class = ff_framesync_get_class(); /* FIXME */ \ return prev ? NULL : &s->field; \ -} \ -static const AVClass name##_class = { \ - .class_name = #name, \ - .item_name = av_default_item_name, \ - .option = name##_options, \ - .version = LIBAVUTIL_VERSION_INT, \ - .category = AV_CLASS_CATEGORY_FILTER, \ - .child_class_iterate = ff_framesync_child_class_iterate, \ - .child_next = name##_child_next, \ } +#define FRAMESYNC_DEFINE_CLASS_EXT(name, context, field, options) \ +FRAMESYNC_AUXILIARY_FUNCS(name, context, field) \ +FRAMESYNC_DEFINE_PURE_CLASS(name, #name, name, options) + +#define FRAMESYNC_DEFINE_CLASS(name, context, field) \ +FRAMESYNC_DEFINE_CLASS_EXT(name, context, field, name##_options) + #endif /* AVFILTER_FRAMESYNC_H */