From patchwork Thu Jun 17 02:31:38 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 28457 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a5e:c91a:0:0:0:0:0 with SMTP id z26csp200552iol; Wed, 16 Jun 2021 19:34:56 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwnxzPAd4xlGAoxlePpCQx9JB3DB88ug2CXmOzn0UgPt5Zo6sztHR752pa1LUB6M/AOtss0 X-Received: by 2002:a17:906:14c9:: with SMTP id y9mr2713904ejc.192.1623897296389; Wed, 16 Jun 2021 19:34:56 -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 eb21si1944772ejc.42.2021.06.16.19.34.56; Wed, 16 Jun 2021 19:34:56 -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=RoTb+669; 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 E55AF689B62; Thu, 17 Jun 2021 05:33:27 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-oln040092074043.outbound.protection.outlook.com [40.92.74.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1C4B26891E2 for ; Thu, 17 Jun 2021 05:33:18 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MeVE0RQasThC2M5yz7oKz2iadK5p+Rzzxdr0JbRJSlQJcTHendCgC0f6XFNcgNZ/ymEldgRg3PJtbqBHUnRzhXcC6xgYyku3J/cnYLPQtSq2r5nbHq/P7ZHdiY1AIFqoUaaoeEXtKuy6LeArrPa6Gn/Zxd6bUuOuQnY01TKb4o9PNCgAfc9o6CScAr0/Z4uyGWkYcGoQaaSxDaxTQLzhIDZukWPuDnt704c0qkJHm3/g8EpuNd2XUU+hXFxAzy5e2rCuwJIgr+xbj1t+StcnFVCA550yjz4aYDrRdGfNo41Hiv2Sc23cmYDvs8FUPrYIuKY3GqjlCWX7AQofG0N49g== 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=WaKTjVWSTjEG4EASbZficsxH0C2rQVAFOKzvr88LwGA=; b=KBq+DpBXx1HV6cjfI+FGp1fBhmZ916bwRqNW1FKfaNzYHeXpwv9UTTHHkKgiVMM/vOJfIe0JwmSRBZ90n74gf2OBcQx2jUcvjZQtLfA8k/GXTUZoEIllEif1KqKY12yRCNLTgxfevz7yQtqDW2mVa58nrHLJXGO0DtL8MdePDFCw+QoiFrq4y++Ib4x2h2IsQBi0abT+cpAJc6D5OPp8IkoOiwGrsJ5Vx2nIe2PpfAdclMidAIFhvmdN4WOIcvLmwATVBmpj4ylIJBRCfqW4JV4BhOaMVcBg1Ye78PHEuEqti2kWeILWtVkd88HbIIQaP092cluY1IL4emvcA/10Fg== 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=WaKTjVWSTjEG4EASbZficsxH0C2rQVAFOKzvr88LwGA=; b=RoTb+6697uztRZBmTVr+z0pEaITORoZicHQSYi4EmHM1jv7sp7VfyaqfoWqEa+SFmQkae64NOgt4bzOYITxpOR98d5Z5V4rxzQOCOeWWuiblKJbw8lT19j++NCl5qRQlNLGGiuIp81dGvYmkccpu8O9YlAtpajTeTtua1PEwJAF7x9KieWw4P3ZxvfTOmEtdK/1HQI02lbpyXXLGzEi6ii8mDQlGNXfiDl2VdHYsh+QoBzqLQ6vzlspzfCZhFTF3+xcGYx8sUxymLjE2Lyu8DqqvIH4hhxjxMxV5QvxnYpX4Io1FNMwnkAsym90PcZYUgllqRJjpOuQqS4sZiDQzfA== Received: from HE1EUR04FT016.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0d::52) by HE1EUR04HT030.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0d::312) 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:17 +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:17 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:BEFF9FF46968E0ED9FD823602FFD1B7B8F6217184C3AD9E74B62FD8D945C2B01; UpperCasedChecksum:22125D4A895E8B5AA1AA8029C4198EF2AD144C39DAA525A73E1F516DFDEC83E3; SizeAsReceived:7608; 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:17 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 17 Jun 2021 04:31:38 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [38YACM1j4hSwU5w4dZpyS1x0OgpAPhNd] 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-16-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:16 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 42084195-b779-41a9-1b73-08d93138435e X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNU/fTcAoeunGvvJC2vgMUdOL1SPfpP1b0aJAtD2LnTfItBIBAp+IbgEuUaY+nKiRSO2RzQ36cT2x9jr7svQEGuVX6mg6HVBlthzeJf9W+NOYM2Y3dw3hik5D5L4BZj1OPtvZ7UrftXeG9IaXAy3MNdo1Johv6F7rl2QPCimeWSf06eu462TCVoZ8DNU0x+wKG6xyI+D59TXyh417EAxOMLszFXklaF1NP7JPPjrHBPAjJyJHb6UGbxyV2cYHEjp7l+fWBKCCUJG5KyxFDn4LMoDn1Sxu/KlD48l+2xSihEZY40Cqe3ZBGWsevMuxFb2aiH0S5OOLWToTo/Sj+SPLSwvyeqcysXeyKf/UVIkDGQebJm8NWnqjYCQOCavIoyAMzQnjTdRavJq61QUCwqMWeEBF7EvkAlGJIWyZhESF25McimjXB/XwWhZQI0qT1Y40jvvDkgZ24HnVyd2c3HvFPACk5SK9dVbTEITwfZN1Q58bTLD3FyMWHbC3Iz8tS0lCux/1t/nzOQ5Tzx7yqzgl6ATdw7YgAI6x2j1D3eGCsSra3F9LsRWDnyGZKv6mQTO+VhUIXyBe4LKL2Opc7cWVSmnLf9c4ULwJP9cdfe5ZDI+u9Svl/E59e+9lUssOhEm1n2nLoDd9Bh9Z02pWntOy8Rgva4jaEtN7zNgDQXGggKnC6IWNkL8G2rzwn8VRKrJ6J+x1caYj1AltVAJFioM8n/9+nc6GlorScw= X-MS-TrafficTypeDiagnostic: HE1EUR04HT030: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: g5+e0botY9W5Vt2x7nwO423AMijH4mw5dyxZZoUFGpzWSZVYRsKesAm6HmVbP74b6BGVRj7FpOpRq3qDnfSD+gcBZmXkGtdDtcY/BZa6ElP7vg1jVeY5SqAQmT2NFs1kU7wrgnB6jM6hyM0KE37cjmRz1BPSp5qbEieS9dirbMSBWAUMXXfvMPWN9R0Fd8OP3iWR2zONGCIaLRJY1p6Qkk3+/gUcupkkUF3lFkj6mgFsOrzuOW9tz4IlKKXkpFYrqvxE5VMzD/m7KMTLaKXVoEOGee0MG8u4FacIjlHoiPFCaAv5t2yhZznaht0lHvHDoSaxldwL2WuPYw8/avuvuQwGJMvzZqpi+nviHU0Ecq6wTwvKtHVjfn9cK0EBfvhRyIEKxB+RXBnanVHPkEa3/g== X-MS-Exchange-AntiSpam-MessageData: p5yhUrCHQ641Hv9Ayb7rxARJt9OopKF1tmfJGm+GwtaxYDmlqoXSfSTWCy0zWOzSdvXgpVX73MetIbK2D7uL/M/R4zHJlG7CRC1KNSOqvbjOrMK9CK6wfnddpFHoaEf8VrGa4li0hfRcQ9E7fmgXbA== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 42084195-b779-41a9-1b73-08d93138435e X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jun 2021 02:33:17.1084 (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: HE1EUR04HT030 Subject: [FFmpeg-devel] [PATCH 17/41] avformat/rawdec: Deduplicate AVClasses based upon ff_raw_options 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: tZLOgCDMol9n 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/ac3dec.c | 6 ++---- libavformat/acm.c | 3 +-- libavformat/dtsdec.c | 4 ++-- libavformat/flacdec.c | 3 +-- libavformat/g722.c | 4 ++-- libavformat/ipudec.c | 9 +-------- libavformat/loasdec.c | 3 +-- libavformat/mlpdec.c | 6 ++---- libavformat/rawdec.c | 13 +++++++++---- libavformat/rawdec.h | 21 ++------------------- libavformat/sbcdec.c | 3 +-- libavformat/shortendec.c | 3 +-- libavformat/takdec.c | 3 +-- libavformat/wsddec.c | 3 +-- 14 files changed, 27 insertions(+), 57 deletions(-) diff --git a/libavformat/ac3dec.c b/libavformat/ac3dec.c index 246c483671..ad9b65a9be 100644 --- a/libavformat/ac3dec.c +++ b/libavformat/ac3dec.c @@ -102,7 +102,6 @@ static int ac3_probe(const AVProbeData *p) return ac3_eac3_probe(p, AV_CODEC_ID_AC3); } -FF_RAW_DEMUXER_CLASS(ac3) const AVInputFormat ff_ac3_demuxer = { .name = "ac3", .long_name = NULL_IF_CONFIG_SMALL("raw AC-3"), @@ -113,7 +112,7 @@ const AVInputFormat ff_ac3_demuxer = { .extensions = "ac3", .raw_codec_id = AV_CODEC_ID_AC3, .priv_data_size = sizeof(FFRawDemuxerContext), - .priv_class = &ac3_demuxer_class, + .priv_class = &ff_raw_demuxer_class, }; #endif @@ -123,7 +122,6 @@ static int eac3_probe(const AVProbeData *p) return ac3_eac3_probe(p, AV_CODEC_ID_EAC3); } -FF_RAW_DEMUXER_CLASS(eac3) const AVInputFormat ff_eac3_demuxer = { .name = "eac3", .long_name = NULL_IF_CONFIG_SMALL("raw E-AC-3"), @@ -134,6 +132,6 @@ const AVInputFormat ff_eac3_demuxer = { .extensions = "eac3", .raw_codec_id = AV_CODEC_ID_EAC3, .priv_data_size = sizeof(FFRawDemuxerContext), - .priv_class = &eac3_demuxer_class, + .priv_class = &ff_raw_demuxer_class, }; #endif diff --git a/libavformat/acm.c b/libavformat/acm.c index bc87b3fab9..ccd043ee32 100644 --- a/libavformat/acm.c +++ b/libavformat/acm.c @@ -60,7 +60,6 @@ static int acm_read_header(AVFormatContext *s) return 0; } -FF_RAW_DEMUXER_CLASS(acm) const AVInputFormat ff_acm_demuxer = { .name = "acm", .long_name = NULL_IF_CONFIG_SMALL("Interplay ACM"), @@ -71,5 +70,5 @@ const AVInputFormat ff_acm_demuxer = { .extensions = "acm", .raw_codec_id = AV_CODEC_ID_INTERPLAY_ACM, .priv_data_size = sizeof(FFRawDemuxerContext), - .priv_class = &acm_demuxer_class, + .priv_class = &ff_raw_demuxer_class, }; diff --git a/libavformat/dtsdec.c b/libavformat/dtsdec.c index 7f8f73fe05..ceedb2eb49 100644 --- a/libavformat/dtsdec.c +++ b/libavformat/dtsdec.c @@ -132,7 +132,6 @@ static int dts_probe(const AVProbeData *p) return 0; } -FF_RAW_DEMUXER_CLASS(dts) const AVInputFormat ff_dts_demuxer = { .name = "dts", .long_name = NULL_IF_CONFIG_SMALL("raw DTS"), @@ -143,4 +142,5 @@ const AVInputFormat ff_dts_demuxer = { .extensions = "dts", .raw_codec_id = AV_CODEC_ID_DTS, .priv_data_size = sizeof(FFRawDemuxerContext), - .priv_class = &dts_demuxer_class,}; + .priv_class = &ff_raw_demuxer_class, +}; diff --git a/libavformat/flacdec.c b/libavformat/flacdec.c index c841fdba01..bfa464c508 100644 --- a/libavformat/flacdec.c +++ b/libavformat/flacdec.c @@ -328,7 +328,6 @@ static int flac_seek(AVFormatContext *s, int stream_index, int64_t timestamp, in return -1; } -FF_RAW_DEMUXER_CLASS(flac) const AVInputFormat ff_flac_demuxer = { .name = "flac", .long_name = NULL_IF_CONFIG_SMALL("raw FLAC"), @@ -341,5 +340,5 @@ const AVInputFormat ff_flac_demuxer = { .extensions = "flac", .raw_codec_id = AV_CODEC_ID_FLAC, .priv_data_size = sizeof(FLACDecContext), - .priv_class = &flac_demuxer_class, + .priv_class = &ff_raw_demuxer_class, }; diff --git a/libavformat/g722.c b/libavformat/g722.c index 360ced7172..3bfe05ea6f 100644 --- a/libavformat/g722.c +++ b/libavformat/g722.c @@ -46,7 +46,6 @@ static int g722_read_header(AVFormatContext *s) return 0; } -FF_RAW_DEMUXER_CLASS(g722) const AVInputFormat ff_g722_demuxer = { .name = "g722", .long_name = NULL_IF_CONFIG_SMALL("raw G.722"), @@ -56,4 +55,5 @@ const AVInputFormat ff_g722_demuxer = { .extensions = "g722,722", .raw_codec_id = AV_CODEC_ID_ADPCM_G722, .priv_data_size = sizeof(FFRawDemuxerContext), - .priv_class = &g722_demuxer_class,}; + .priv_class = &ff_raw_demuxer_class, +}; diff --git a/libavformat/ipudec.c b/libavformat/ipudec.c index b76371b58c..27b6b59356 100644 --- a/libavformat/ipudec.c +++ b/libavformat/ipudec.c @@ -68,13 +68,6 @@ static int ipu_read_header(AVFormatContext *s) return 0; } -static const AVClass ipu_demuxer_class = { - .class_name = "ipu demuxer", - .item_name = av_default_item_name, - .option = ff_raw_options, - .version = LIBAVUTIL_VERSION_INT, -}; - const AVInputFormat ff_ipu_demuxer = { .name = "ipu", .long_name = NULL_IF_CONFIG_SMALL("raw IPU Video"), @@ -85,5 +78,5 @@ const AVInputFormat ff_ipu_demuxer = { .flags = AVFMT_GENERIC_INDEX, .raw_codec_id = AV_CODEC_ID_IPU, .priv_data_size = sizeof(FFRawDemuxerContext), - .priv_class = &ipu_demuxer_class, + .priv_class = &ff_raw_demuxer_class, }; diff --git a/libavformat/loasdec.c b/libavformat/loasdec.c index 97fabefcd7..3c84d9f37e 100644 --- a/libavformat/loasdec.c +++ b/libavformat/loasdec.c @@ -83,7 +83,6 @@ static int loas_read_header(AVFormatContext *s) return 0; } -FF_RAW_DEMUXER_CLASS(loas) const AVInputFormat ff_loas_demuxer = { .name = "loas", .long_name = NULL_IF_CONFIG_SMALL("LOAS AudioSyncStream"), @@ -93,5 +92,5 @@ const AVInputFormat ff_loas_demuxer = { .flags= AVFMT_GENERIC_INDEX, .raw_codec_id = AV_CODEC_ID_AAC_LATM, .priv_data_size = sizeof(FFRawDemuxerContext), - .priv_class = &loas_demuxer_class, + .priv_class = &ff_raw_demuxer_class, }; diff --git a/libavformat/mlpdec.c b/libavformat/mlpdec.c index 6f2ba5d874..8f0aabb510 100644 --- a/libavformat/mlpdec.c +++ b/libavformat/mlpdec.c @@ -56,7 +56,6 @@ static int mlp_probe(const AVProbeData *p) return mlp_thd_probe(p, 0xf8726fbb); } -FF_RAW_DEMUXER_CLASS(mlp) const AVInputFormat ff_mlp_demuxer = { .name = "mlp", .long_name = NULL_IF_CONFIG_SMALL("raw MLP"), @@ -67,7 +66,7 @@ const AVInputFormat ff_mlp_demuxer = { .extensions = "mlp", .raw_codec_id = AV_CODEC_ID_MLP, .priv_data_size = sizeof(FFRawDemuxerContext), - .priv_class = &mlp_demuxer_class, + .priv_class = &ff_raw_demuxer_class, }; #endif @@ -77,7 +76,6 @@ static int thd_probe(const AVProbeData *p) return mlp_thd_probe(p, 0xf8726fba); } -FF_RAW_DEMUXER_CLASS(truehd) const AVInputFormat ff_truehd_demuxer = { .name = "truehd", .long_name = NULL_IF_CONFIG_SMALL("raw TrueHD"), @@ -88,7 +86,7 @@ const AVInputFormat ff_truehd_demuxer = { .extensions = "thd", .raw_codec_id = AV_CODEC_ID_TRUEHD, .priv_data_size = sizeof(FFRawDemuxerContext), - .priv_class = &truehd_demuxer_class, + .priv_class = &ff_raw_demuxer_class, }; #endif diff --git a/libavformat/rawdec.c b/libavformat/rawdec.c index a1f593c66a..aa6eba4f39 100644 --- a/libavformat/rawdec.c +++ b/libavformat/rawdec.c @@ -125,14 +125,19 @@ const AVOption ff_rawvideo_options[] = { }; #undef OFFSET #define OFFSET(x) offsetof(FFRawDemuxerContext, x) -const AVOption ff_raw_options[] = { +static const AVOption raw_options[] = { { "raw_packet_size", "", OFFSET(raw_packet_size), AV_OPT_TYPE_INT, {.i64 = RAW_PACKET_SIZE }, 1, INT_MAX, DEC}, { NULL }, }; -#if CONFIG_DATA_DEMUXER -FF_RAW_DEMUXER_CLASS(raw_data) +const AVClass ff_raw_demuxer_class = { + .class_name = "generic raw demuxer", + .item_name = av_default_item_name, + .option = raw_options, + .version = LIBAVUTIL_VERSION_INT, +}; +#if CONFIG_DATA_DEMUXER const AVInputFormat ff_data_demuxer = { .name = "data", .long_name = NULL_IF_CONFIG_SMALL("raw data"), @@ -141,7 +146,7 @@ const AVInputFormat ff_data_demuxer = { .raw_codec_id = AV_CODEC_ID_NONE, .flags = AVFMT_NOTIMESTAMPS, .priv_data_size = sizeof(FFRawDemuxerContext),\ - .priv_class = &raw_data_demuxer_class,\ + .priv_class = &ff_raw_demuxer_class, }; #endif diff --git a/libavformat/rawdec.h b/libavformat/rawdec.h index e64ad8010c..3c05795762 100644 --- a/libavformat/rawdec.h +++ b/libavformat/rawdec.h @@ -40,7 +40,7 @@ typedef struct FFRawDemuxerContext { } FFRawDemuxerContext; extern const AVOption ff_rawvideo_options[]; -extern const AVOption ff_raw_options[]; +extern const AVClass ff_raw_demuxer_class; int ff_raw_read_partial_packet(AVFormatContext *s, AVPacket *pkt); @@ -52,14 +52,6 @@ int ff_raw_subtitle_read_header(AVFormatContext *s); int ff_raw_data_read_header(AVFormatContext *s); -#define FF_RAW_DEMUXER_CLASS(name)\ -static const AVClass name ## _demuxer_class = {\ - .class_name = #name " demuxer",\ - .item_name = av_default_item_name,\ - .option = ff_raw_options,\ - .version = LIBAVUTIL_VERSION_INT,\ -}; - #define FF_RAWVIDEO_DEMUXER_CLASS(name)\ static const AVClass name ## _demuxer_class = {\ .class_name = #name " demuxer",\ @@ -86,16 +78,7 @@ const AVInputFormat ff_ ## shortname ## _demuxer = {\ #define FF_DEF_RAWVIDEO_DEMUXER(shortname, longname, probe, ext, id)\ FF_DEF_RAWVIDEO_DEMUXER2(shortname, longname, probe, ext, id, AVFMT_GENERIC_INDEX) -#define FF_RAWSUB_DEMUXER_CLASS(name)\ -static const AVClass name ## _demuxer_class = {\ - .class_name = #name " demuxer",\ - .item_name = av_default_item_name,\ - .option = ff_raw_options,\ - .version = LIBAVUTIL_VERSION_INT,\ -}; - #define FF_DEF_RAWSUB_DEMUXER(shortname, longname, probe, ext, id, flag)\ -FF_RAWSUB_DEMUXER_CLASS(shortname)\ const AVInputFormat ff_ ## shortname ## _demuxer = {\ .name = #shortname,\ .long_name = NULL_IF_CONFIG_SMALL(longname),\ @@ -106,7 +89,7 @@ const AVInputFormat ff_ ## shortname ## _demuxer = {\ .flags = flag,\ .raw_codec_id = id,\ .priv_data_size = sizeof(FFRawDemuxerContext),\ - .priv_class = &shortname ## _demuxer_class,\ + .priv_class = &ff_raw_demuxer_class,\ }; #endif /* AVFORMAT_RAWDEC_H */ diff --git a/libavformat/sbcdec.c b/libavformat/sbcdec.c index 4de29b37c5..c917743fa1 100644 --- a/libavformat/sbcdec.c +++ b/libavformat/sbcdec.c @@ -22,7 +22,6 @@ #include "avformat.h" #include "rawdec.h" -FF_RAW_DEMUXER_CLASS(sbc) const AVInputFormat ff_sbc_demuxer = { .name = "sbc", .long_name = NULL_IF_CONFIG_SMALL("raw SBC (low-complexity subband codec)"), @@ -32,5 +31,5 @@ const AVInputFormat ff_sbc_demuxer = { .read_packet = ff_raw_read_partial_packet, .flags = AVFMT_GENERIC_INDEX, .priv_data_size = sizeof(FFRawDemuxerContext), - .priv_class = &sbc_demuxer_class, + .priv_class = &ff_raw_demuxer_class, }; diff --git a/libavformat/shortendec.c b/libavformat/shortendec.c index 9209de4388..cd14b55d70 100644 --- a/libavformat/shortendec.c +++ b/libavformat/shortendec.c @@ -65,7 +65,6 @@ static int shn_probe(const AVProbeData *p) return AVPROBE_SCORE_EXTENSION + 1; } -FF_RAW_DEMUXER_CLASS(shorten) const AVInputFormat ff_shorten_demuxer = { .name = "shn", .long_name = NULL_IF_CONFIG_SMALL("raw Shorten"), @@ -76,5 +75,5 @@ const AVInputFormat ff_shorten_demuxer = { .extensions = "shn", .raw_codec_id = AV_CODEC_ID_SHORTEN, .priv_data_size = sizeof(FFRawDemuxerContext), - .priv_class = &shorten_demuxer_class, + .priv_class = &ff_raw_demuxer_class, }; diff --git a/libavformat/takdec.c b/libavformat/takdec.c index cf400ec04b..e3f611883b 100644 --- a/libavformat/takdec.c +++ b/libavformat/takdec.c @@ -212,7 +212,6 @@ static int raw_read_packet(AVFormatContext *s, AVPacket *pkt) return ret; } -FF_RAW_DEMUXER_CLASS(tak) const AVInputFormat ff_tak_demuxer = { .name = "tak", .long_name = NULL_IF_CONFIG_SMALL("raw TAK"), @@ -223,5 +222,5 @@ const AVInputFormat ff_tak_demuxer = { .flags = AVFMT_GENERIC_INDEX, .extensions = "tak", .raw_codec_id = AV_CODEC_ID_TAK, - .priv_class = &tak_demuxer_class, + .priv_class = &ff_raw_demuxer_class, }; diff --git a/libavformat/wsddec.c b/libavformat/wsddec.c index 169a96c71f..a2fcdae2be 100644 --- a/libavformat/wsddec.c +++ b/libavformat/wsddec.c @@ -161,7 +161,6 @@ static int wsd_read_header(AVFormatContext *s) return avio_seek(pb, data_offset, SEEK_SET); } -FF_RAW_DEMUXER_CLASS(wsd) const AVInputFormat ff_wsd_demuxer = { .name = "wsd", .long_name = NULL_IF_CONFIG_SMALL("Wideband Single-bit Data (WSD)"), @@ -172,5 +171,5 @@ const AVInputFormat ff_wsd_demuxer = { .flags = AVFMT_GENERIC_INDEX | AVFMT_NO_BYTE_SEEK, .raw_codec_id = AV_CODEC_ID_DSD_MSBF, .priv_data_size = sizeof(FFRawDemuxerContext), - .priv_class = &wsd_demuxer_class, + .priv_class = &ff_raw_demuxer_class, };