From patchwork Thu Jun 17 02:31:35 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 28443 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a5e:c91a:0:0:0:0:0 with SMTP id z26csp200673iol; Wed, 16 Jun 2021 19:35:07 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy48mjL2afYin5CzQREAB8yyq6ecZFRvh4IQPz8G0VUFtQJK8Xz1aRvxwjRfIZpO0xYvQ/T X-Received: by 2002:a17:906:144b:: with SMTP id q11mr2592993ejc.478.1623897307023; Wed, 16 Jun 2021 19:35:07 -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 gv20si4018040ejc.629.2021.06.16.19.35.06; Wed, 16 Jun 2021 19:35:07 -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=e06fkFsu; 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 134D1689B37; Thu, 17 Jun 2021 05:33:29 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-oln040092075042.outbound.protection.outlook.com [40.92.75.42]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 445C4689810 for ; Thu, 17 Jun 2021 05:33:19 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KOdWAlC0lyWw2AHc1rx42IgF/7M94jkscJMLsLbo/ikoaaZp8NEKe7QjY3/I3USCXkmW5tRqWNIifaMYkIa5wqBDMvOtNKtMJUBbjUOlQZv3QSlg9iLKdIkUsavtWk19Hu+9ukzTXB/rrp+AGqb4f4Jmrvu7sF+8BKypm3cJf9qMtxEYK1i6V/ACM9vblMGZb8s3WhyPIbJmqrukJsC4XhaVegRtKDONagZDraBoJOWB1CXv/C6ItZaiqwV2YTQBYtqbRUExaemlgUJcC+qPOY9wFXqvbIqgsvNNxpevo2sONaSt8F8Z+GQAByzRELu2K0mNgjysg83feWqu0kBgww== 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-SenderADCheck; bh=nAFReVzqEGTiTUR/IRGkex6BDZT/IS1zn0h8tgDG4Vg=; b=AzzP+bThcDj9SzaYwIU0Qpij3OJ7p7Ail8zpmPBWLL0HUiLau1B/ewhlaSX+QuG7m4W4umJjVhY+57JQ6upUrWPBbzLGBDwLueMpcrTujxAWMZ0xNAjIeOxmGYmZEGxUBpVfSY2BONtd80G7hzxSP2EploJ2RCOgU/CTscNMEy0ar2J+31nMppPwObvu6IRM3g8JAMikJ2mQ4C6qGlnkupDsoojSAcPOOa07nonUA7pPRutttx6XIHHKCN82bUvevGxLx7p4slfRYguR8JIEi3cy7p/yjs9T6WP2SJj9m2X7eDbLnYyFVVvOwJlRCtveStpIakchseoUs70U7i4SVg== 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=nAFReVzqEGTiTUR/IRGkex6BDZT/IS1zn0h8tgDG4Vg=; b=e06fkFsuMcJNzMCNgMCe9HNICpWpTdL5SDbg4cr+vGzR43khMOK/f32wy23gtK0BSn9darqh8p6K21pJlHj6iCDbujZAgROCBdYS+iL29n9xUjWHpUImxv3cDAXlXnQymgKGhUK49t6Ax5QOSIyT2uePSMFjwzWd0Nd7fz7vA2Tos6oUMwFqY8Fa1mzOq/IbZS01RUvVos4TU3u+MJKe+WYS4dEI7o4g6wZtOgzCshsQFWUo0iBck2l/LNHvoLsrTjabzeJQl79NGmAOgz+y1hzV7YQINUn9bDLHBnSKIBZC0nNZSHR9werJ8ABunm0KxUdoTkSdMXgR1r/Ecrngeg== Received: from HE1EUR04FT016.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0d::4b) by HE1EUR04HT194.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0d::205) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4242.16; Thu, 17 Jun 2021 02:33:15 +0000 Received: from VI1PR0301MB2159.eurprd03.prod.outlook.com (2a01:111:e400:7e0d::46) by HE1EUR04FT016.mail.protection.outlook.com (2a01:111:e400:7e0d::93) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4242.16 via Frontend Transport; Thu, 17 Jun 2021 02:33:15 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:D7406713CA9B663E7FDD4046EAECF55AB24CCD5D137DAEDC045617EDA3C8BA0A; UpperCasedChecksum:91A0837119D1D47ED50116F9DC2DAA271E1153B6AEBC4AFE3CB28E822252CDB9; SizeAsReceived:7582; Count:48 Received: from VI1PR0301MB2159.eurprd03.prod.outlook.com ([fe80::d9b:66ba:63ad:967b]) by VI1PR0301MB2159.eurprd03.prod.outlook.com ([fe80::d9b:66ba:63ad:967b%5]) with mapi id 15.20.4242.019; Thu, 17 Jun 2021 02:33:15 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 17 Jun 2021 04:31:35 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [cvt63zOSVKT9Cm0STZjUrZNzknclOLhU] X-ClientProxiedBy: AM0PR04CA0115.eurprd04.prod.outlook.com (2603:10a6:208:55::20) To VI1PR0301MB2159.eurprd03.prod.outlook.com (2603:10a6:800:26::20) X-Microsoft-Original-Message-ID: <20210617023202.1318312-13-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.97.82) by AM0PR04CA0115.eurprd04.prod.outlook.com (2603:10a6:208:55::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4242.16 via Frontend Transport; Thu, 17 Jun 2021 02:33:14 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: b4923e70-94eb-4c4d-e569-08d931384237 X-MS-Exchange-SLBlob-MailProps: q+fD6XS3/ULuBil78Tl/c0OuVoBVXnkCyEHH58u7PRsJIpR3KLXEgZSjlm/5q0kPUQclT/jjWrunx2J+zAFzE9OQpUtQhEAeGdqmIav+/x5YjaFmUc0+be9xxnDbdZnZnG28HwKKC0YtWWFIXBKIjHPOuqT6YgFEwXmEbExpgskN4kGZXXb9yOKZF0XbSUB2rv3sEwt+a3rCkDoof5GUtvPHfQYhEWaRdLYxIhZvMoBJn0jSxWvlZWkJuUG5bkxRWGRBwN44TT9EEC/XTGnwlJUaYu6qamxVQhWfOIOq3Iz5R0ecHhqg9nf+BFnWzRcKKGA6lnQDQxlelBmqn5JE5ISc5jXTlVYJ34NoECDx+qLdQ0tgnKgsxDAaHRTmx10S1hsejFWL4Hi/3kyx0j7eBMpn8gyKILO3QqaibATqE3yzYzTsnRc7MeuvLvAk55S5LiRamYw4tSXAVFJXGPXBM9nCEZn2qdt6GtwQbr0neZ3D7x4kEPBQzwXc82leCjcjgYbAqroXcV3V3CPFpMV5lEWZ2E5W09wade9b++Agm3I8TtmgjpezL31GpSXC2wz/1G1FV+jSDhYJuNT7TGw10RRTXHviV9up32p8/W0PM3wvwk34FmQ9DnHgCl8DCwaBUS1QtV2ndMN2aQq81vXcFMjpaEVfRFvSozczr5+RSL095CjHWRuYBgKDvpmCugr+4RS414IvXSbJwOFIQ2JpZQ== X-MS-TrafficTypeDiagnostic: HE1EUR04HT194: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 5vnQcnewTDAAzo1e32g6KgFHuf1g1db9un7Rte/V4qJn3MDb4guIWP5Xh6F8fK4J9SL+jAYfwLlvjaFWS6z7OBnzT19RGWnNgDiCsHpL4SWyqb7I2X/1r8Qvx1bX0oNSHZvlMOnD/XiGsISo0HZhpPpg3f1CN77Bf+HdGBDtz/e459jLSKHafRT4Sn4bsatzCa4DpuzYyBhqyEVPC+KGxBaDbzlWtvaQ4fPH5TmyGGvRDn4TacdTEWiho7y6p/gCGOYaoqE+2f1W0kgprabQgW5fo+D2PG9IAQqQBPk0tStUj/UidZ7Dz7nyj30IXmoj40l4q6QAUs0gvlROYr8XszgxvUqkqd9HkkPf9etnvTkbm+kpSj0Blj0MKRzKsXCg3S5XbaDU85HEJHX9j8JC1Q== X-MS-Exchange-AntiSpam-MessageData: 0aCpRxr6UO4N0ptkfJTgESJw4pT86zyV676QM62ucUaMG7EfLzTxdJAB/MF1yQSFYg/XO7JNb1qyO73B159IC38rAd0MLiru3+AWS7aE9FtSCoHrt/LMJSNKXDADAU6R+nUcZjgZrPDuuf3hqdDCFg== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b4923e70-94eb-4c4d-e569-08d931384237 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jun 2021 02:33:15.0713 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: HE1EUR04FT016.eop-eur04.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1EUR04HT194 Subject: [FFmpeg-devel] [PATCH 14/41] avformat/mpegenc: Deduplicate AVClasses 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: 4zCb1s/gSzPX The child_class_next API relied on different (de)muxers to use different AVClasses; yet this API has been replaced by child_class_iterate. Signed-off-by: Andreas Rheinhardt --- libavformat/mpegenc.c | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/libavformat/mpegenc.c b/libavformat/mpegenc.c index 93c4920904..6aed527d50 100644 --- a/libavformat/mpegenc.c +++ b/libavformat/mpegenc.c @@ -1280,16 +1280,14 @@ static const AVOption options[] = { { NULL }, }; -#define MPEGENC_CLASS(flavor) \ -static const AVClass flavor ## _class = { \ - .class_name = #flavor " muxer", \ - .item_name = av_default_item_name, \ - .version = LIBAVUTIL_VERSION_INT, \ - .option = options, \ +static const AVClass mpeg_class = { + .class_name = "mpeg/(s)vcd/vob/dvd muxer", + .item_name = av_default_item_name, + .version = LIBAVUTIL_VERSION_INT, + .option = options, }; #if CONFIG_MPEG1SYSTEM_MUXER -MPEGENC_CLASS(mpeg) const AVOutputFormat ff_mpeg1system_muxer = { .name = "mpeg", .long_name = NULL_IF_CONFIG_SMALL("MPEG-1 Systems / MPEG program stream"), @@ -1307,7 +1305,6 @@ const AVOutputFormat ff_mpeg1system_muxer = { #endif #if CONFIG_MPEG1VCD_MUXER -MPEGENC_CLASS(vcd) const AVOutputFormat ff_mpeg1vcd_muxer = { .name = "vcd", .long_name = NULL_IF_CONFIG_SMALL("MPEG-1 Systems / MPEG program stream (VCD)"), @@ -1319,12 +1316,11 @@ const AVOutputFormat ff_mpeg1vcd_muxer = { .write_packet = mpeg_mux_write_packet, .write_trailer = mpeg_mux_end, .deinit = mpeg_mux_deinit, - .priv_class = &vcd_class, + .priv_class = &mpeg_class, }; #endif #if CONFIG_MPEG2VOB_MUXER -MPEGENC_CLASS(vob) const AVOutputFormat ff_mpeg2vob_muxer = { .name = "vob", .long_name = NULL_IF_CONFIG_SMALL("MPEG-2 PS (VOB)"), @@ -1337,13 +1333,12 @@ const AVOutputFormat ff_mpeg2vob_muxer = { .write_packet = mpeg_mux_write_packet, .write_trailer = mpeg_mux_end, .deinit = mpeg_mux_deinit, - .priv_class = &vob_class, + .priv_class = &mpeg_class, }; #endif /* Same as mpeg2vob_mux except that the pack size is 2324 */ #if CONFIG_MPEG2SVCD_MUXER -MPEGENC_CLASS(svcd) const AVOutputFormat ff_mpeg2svcd_muxer = { .name = "svcd", .long_name = NULL_IF_CONFIG_SMALL("MPEG-2 PS (SVCD)"), @@ -1356,13 +1351,12 @@ const AVOutputFormat ff_mpeg2svcd_muxer = { .write_packet = mpeg_mux_write_packet, .write_trailer = mpeg_mux_end, .deinit = mpeg_mux_deinit, - .priv_class = &svcd_class, + .priv_class = &mpeg_class, }; #endif /* Same as mpeg2vob_mux except the 'is_dvd' flag is set to produce NAV pkts */ #if CONFIG_MPEG2DVD_MUXER -MPEGENC_CLASS(dvd) const AVOutputFormat ff_mpeg2dvd_muxer = { .name = "dvd", .long_name = NULL_IF_CONFIG_SMALL("MPEG-2 PS (DVD VOB)"), @@ -1375,6 +1369,6 @@ const AVOutputFormat ff_mpeg2dvd_muxer = { .write_packet = mpeg_mux_write_packet, .write_trailer = mpeg_mux_end, .deinit = mpeg_mux_deinit, - .priv_class = &dvd_class, + .priv_class = &mpeg_class, }; #endif