From patchwork Thu Apr 4 17:52:40 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 47802 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:24a8:b0:1a3:b6bb:3029 with SMTP id m40csp486020pzd; Thu, 4 Apr 2024 10:53:00 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWsUewNYSFjKIKAUKXjw/eSgezHnBr9jYYpoAlInScMCdopkL9t2aAMkJWH7A5/HcH8uNkHADsWDG8JsOfjG8eBNQ2s0QuwOQJqsg== X-Google-Smtp-Source: AGHT+IHz3ROoNmdoQzuAmbenpaXZJVVdkBV1wRXInx+c1iuqbFH4/3t9aK6gALzGKRGaj1AlHJ/w X-Received: by 2002:a2e:804f:0:b0:2d6:b698:968 with SMTP id p15-20020a2e804f000000b002d6b6980968mr1888891ljg.1.1712253179778; Thu, 04 Apr 2024 10:52:59 -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 g7-20020a50d5c7000000b0056ba01693afsi8176289edj.510.2024.04.04.10.52.59; Thu, 04 Apr 2024 10:52:59 -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=JbQQyEm5; 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 43CDA68D0E0; Thu, 4 Apr 2024 20:52:56 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR03-DBA-obe.outbound.protection.outlook.com (mail-dbaeur03olkn2055.outbound.protection.outlook.com [40.92.58.55]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 492F768C1CD for ; Thu, 4 Apr 2024 20:52:49 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MkxQlpZgsDkzF1MIwfWe5vdWZM9eg163HGzSK6CoEDAQOzmZLwaNguJgTP/VXEbtcgnwJXNEwOvMKoA36SDI3+SZ/4wIVx1kWy1u7+6PCtfrtpghpHwi5NcqfrMqE850T0WO/SonVAM2IuP3GTifK0+VzvYzw3CxmKs1se6GLyNLcBqlczAdzGZmRVs36xAu1OrAJXzWm6EGTmpa9lFWewOzNEJkNwtqxDeqsa6j/fFMIP4PNPrnhKhui5QlroRZ2GhH1KBuOk7K9uPYyvurU8twFMZdHmGjrS+7IiOHR+LyU5t7g8IhHmhHXDMzJh/6D4drdcGCF73mJcnaG7vj7w== 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=1nW7nhfDET2RZ4MDf86xj2YyhZacL95+pkx2TrVrwoQ=; b=lIKpc8+G0FISH6zR7cUEXUjpPhqFBGJijfNW9+EVNwcnMKP3Kcb6fc79Zq24fwfUNhCzK7XwciswDGwHcrJsOU0V13ttg3kESQ/FtWNlbmsU6WanJ4zyzaHo/uYPNVqyvd8aozBQ/2WwyrBapXJt9LgpxU77ckgpiXwuynukUal25oLUvSPwCYwzGPTgzWZhi0q4/I9qv1ly1LyKM7pLHs/0WyYLG5/xemh6dod4fi7ZXcVGmCGibHVcJn5MANPJqIN6C2EHUZCGhi2hzsgSr5niIZDY+kmaKqOyb8NvOgHOyaWiwVoQOp7byWNrWoHQCPuvsc2nZpNXRLU0uQyBZg== 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=1nW7nhfDET2RZ4MDf86xj2YyhZacL95+pkx2TrVrwoQ=; b=JbQQyEm5WJAj0GG4FIqMwHQEgZ89vQUH/P/dBbCo2tNOBEkW1hJflllTctGM4YyPhxTrQPMc0M19Mg2krVZQXzmbyzGU2+NzdK3GZHfJVdF/moe/YTduGvwiFLlPgeV3KNOaHDEegP2BbhMMLgyvnRw7t4O0aExiIUNAf8FEloezS8t7UUICtnf92k/NAHzB33RUxS5MhgdAkPT3s08vCTuNwDr1jXGmrPVgo8I8ueio5xcVNWUEXM3PMX53hk2yU44v6bDVkkqHDTRzN56401Z5HFe1pIcr48aEMLXQKbe8gnrqhnXwO7DmANxh7VfT4W157fLrcg9kKC1IoiEnjg== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by DU2P250MB0077.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:23a::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7452.27; Thu, 4 Apr 2024 17:52:47 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d%4]) with mapi id 15.20.7409.042; Thu, 4 Apr 2024 17:52:47 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 4 Apr 2024 19:52:40 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [VAR0I1xLXTO0sk2yY8bPuPKSM79y6DceQtXvO+OgCqg=] 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: <20240404175240.3797192-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|DU2P250MB0077:EE_ X-MS-Office365-Filtering-Correlation-Id: d3d8ccde-90f7-4942-9201-08dc54d009cf X-MS-Exchange-SLBlob-MailProps: quCBMN2EvO9JfgqHH6vecaSGf4XO3W/nrSBC6WSizB5ZkFhhxy0tFiHOw/otve1ZkfPtLX9bcdZnPxnaQn9nbcQ2ZPIXVNcb18EsrlJfJ7sB+BO3hqQbfINfvh3T//0P3C0rItGQTOj0gZATyaeGXTQ4QqhxRXQuXjPka8B/q+jw507nod0nvC+s8DT0S32I+ZXbF97+7LTARdNFyHsYoAMpCr+jrUPMgWQaPpWtt8qukhlitDPO96Bf42Yj9JxAyWD3WtGrOHuluACkI81P5WiV48rBVZ1tnD9BOPRUQUIQrgG/ChBcQF39flPE9dx0GBp1TZNSVlNSm9ka2kh9nUTYJQTGlocqzCeESKF7xptbRK3DD3fe8c3ZAv3seu2GlgsGO59SmJlL5GK9jOp6ZbpvZzRAjC6A4fFyr07LcIbQWt3a9+2uuQCRogS212Qg5FR9SuX4wK8gfyQoK6pof65oGRcDwR+eKF/GImbVLD4+fXnFFnRmwFB5jsoR5g9achPzZ7k9rQRhjAtNNSl9vSMeQhchZBkJbqsCv1oeINRvixutne+bK3E0PtPZYOzxn8/ZGJovvYTGqirJiobsZ884HnvOH7Dxamf1YQjv4eUzH/bS9OBKwOMHNJkzvSlKBcasv7f8zFKwW6eNEk4VNZ5mCwVjcLxW5Hx/tEYfEisHANG4ZDUaGMyroDgl7g6HCWTYtC0UlWU8CM+CwXiF2g== X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: o9FmL/pKG2L3wHqSuHxL3kCmPp5R7NlTQTTGQkRj6h3JL1OWmwRSSFpsDY8lfdVJeRRhlSTJUMI2hI6JG5mhTdA9kImVfe0+BlMtnJy057FjPk5TktNHWomPeD7fetWNkGdI4reZ7C7dBRLXmIPuGqkMeD3amr08UQhCEjzj3yNsR4pzcNxRAKG0Xv3flw8dc7gNlrw+RJz5olpp6A3WnbQPy6XjqpB2oJKAtfBJlpLq9B3IarbBljkwifedQ+dALZP67lK/jQVYgQphgVT4XZgEDQJv4FJ/JAA90COLPLyw1zY73h6iJRU/aG5QSn5Ub1r7aHJqBivB5I/v/7ytKi08HRveevfWxvABFHeBkO6FCTuS9J1/L0R2sawqmjfqPsa9iw/eMNxQriptG6YonSoyHc9XiMNjypY205/rvB/HO9TZxzB0l/L6TUl6gD5VzDm2uYmoc8y//c4Y3TH007j2S4R6Ceah0WcqpjSvUcKhG08gMaNLK6w+LO5WUkqo6RcSn4gjBLfdOM5diTSwWNBnnud3OdvAZ9EgDJ4mHVdqMgvkNVlvY+DgYDseZNyWKb1aHrJ1hVpSQ7swwZ3xyPK4HPmULSHRL24wQl5HxDnJxmefdnO6N2o4+5XD/pvy X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: vmZ73KoYBulg+sWzw1D+b2IG2XM+bFw9of3K8RQB63+Ywc3zstS9MutGtdiaoKn9MrKxbKkfwHZ7VXIkm5400J0CQuvsy1SrFq7BUEvqSrbkP4zMwz+ibvTNQdb4qFm8cm5O20lk5QN0IdVbW05WpfABGThe0TK3aiN6sD1qphwQHq84mVcm99vZcTwxa5qoDsW4bKMV6Lr7WC2kJU8xPsr2nleFlW0pmjuOEamko+S0xYwySj6E3nHUTymTxgZCGXOXAf6NGsnqvYIfKwof8iGq8a1OEteby27TqZIIx/NIvxxD6LYZLDQiz12bppAdILwyqd2ksyp6/6adnvuC4OhCkRYAtfNywRvSKAymQMcKHVkRtfSrnao8qu8K+lyALnRjnLfZDX1Bp9nYnyd9fhF3MusqV5PpqMGLsuqDwggUKC0k+LssgJV3y1qEIzDtWYtfNTYQ/uMMaFt6Ws6uiDUTd3Pbi9EXmlhW3hSRHIlmWngM3KDlnxdZ2s9VfD479FPMwO9+uuUvueZvbZGhqhx3JTmxkxhF01yPmQPhiS3FJ9ffVZMMuQN+E9m1YeoRWC+/7SUYNr0YCfG2hBjWfAQ+sSJtHRp3H3Xc8wotvP+HaZwgq+gSRyKbDShJVNSnmmD7uLvjKeLu2n+OhHOt7UPKLX6uWQFb2ggOPvIYpio3Z8zScJDmPGF1+DGQrlgJF1FD0cpjz3fFWsMM9OzW7Vibfagmm53k6pdx8EdYMpp2CqMT6guyt66tml5cl51qy9gF17k0CXXRwYs/LQ1BBDWn+2y7ZPxuyS52Pp/aLzdMoftqVUQF9mS2XqDyc7QMDi+EJ+QIrddfXDi/XqTOYVKHU4UmNq4tsvrnwQ3cPicIjquFGJ+sVgYgorRWWE0gEh8SwejxxjldfenqIasPMETkdAXK07hOl04GkWxh3sdWuNx0Krxd5tfkd5SFf/X7nZE7Z+FNFeLS9n1kOXnwrETtKFQ3VBJZY35yNIc+0QI4RxaGHEXl9tkFymCC68EUmnNruyfvo4NYsjkbgru6twXybSIx2jEMsfKSVldRwc2PtiqUcp+8KfyU0l7bE5TGSy+vTKUyfirhRaKAdlpkn2xoAjRA17LRls0nOCq6HRJDFSXYgQ6L6ogRc/fLj2O8uHhQhB33+RlBu7bykCQJO1rbOSEA137REykMCpqW+0KioasE92SJxjXTEfGj+jUImuKE4FHCDgUV65kqKzu07JzWV+4OWwKySWqxkk55p7+3aO/OroiZw91GAWX+cytN/7+8cB2mljFgTMH/PEQlhA== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d3d8ccde-90f7-4942-9201-08dc54d009cf X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Apr 2024 17:52:47.6528 (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: DU2P250MB0077 Subject: [FFmpeg-devel] [PATCH 7/7] avcodec/huffyuvenc: Deduplicate 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: jByDpovN+CMf Signed-off-by: Andreas Rheinhardt --- libavcodec/huffyuvenc.c | 42 ++++++++++++++++++----------------------- 1 file changed, 18 insertions(+), 24 deletions(-) diff --git a/libavcodec/huffyuvenc.c b/libavcodec/huffyuvenc.c index d822793406..294d6ad41c 100644 --- a/libavcodec/huffyuvenc.c +++ b/libavcodec/huffyuvenc.c @@ -989,37 +989,24 @@ static av_cold int encode_end(AVCodecContext *avctx) #define OFFSET(x) offsetof(HYuvEncContext, x) #define VE AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM -#define COMMON_OPTIONS \ - { "non_deterministic", "Allow multithreading for e.g. context=1 at the expense of determinism", \ - OFFSET(non_determ), AV_OPT_TYPE_BOOL, { .i64 = 0 }, \ - 0, 1, VE }, \ - { "pred", "Prediction method", OFFSET(predictor), AV_OPT_TYPE_INT, { .i64 = LEFT }, LEFT, MEDIAN, VE, .unit = "pred" }, \ - { "left", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = LEFT }, INT_MIN, INT_MAX, VE, .unit = "pred" }, \ - { "plane", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = PLANE }, INT_MIN, INT_MAX, VE, .unit = "pred" }, \ - { "median", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = MEDIAN }, INT_MIN, INT_MAX, VE, .unit = "pred" }, \ - -static const AVOption normal_options[] = { - COMMON_OPTIONS - { NULL }, -}; - -static const AVOption ff_options[] = { - COMMON_OPTIONS +static const AVOption options[] = { + /* ffvhuff-only options */ { "context", "Set per-frame huffman tables", OFFSET(context), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, VE }, + /* Common options */ + { "non_deterministic", "Allow multithreading for e.g. context=1 at the expense of determinism", + OFFSET(non_determ), AV_OPT_TYPE_BOOL, { .i64 = 0 }, + 0, 1, VE }, + { "pred", "Prediction method", OFFSET(predictor), AV_OPT_TYPE_INT, { .i64 = LEFT }, LEFT, MEDIAN, VE, .unit = "pred" }, + { "left", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = LEFT }, INT_MIN, INT_MAX, VE, .unit = "pred" }, + { "plane", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = PLANE }, INT_MIN, INT_MAX, VE, .unit = "pred" }, + { "median", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = MEDIAN }, INT_MIN, INT_MAX, VE, .unit = "pred" }, { NULL }, }; static const AVClass normal_class = { .class_name = "huffyuv", .item_name = av_default_item_name, - .option = normal_options, - .version = LIBAVUTIL_VERSION_INT, -}; - -static const AVClass ff_class = { - .class_name = "ffvhuff", - .item_name = av_default_item_name, - .option = ff_options, + .option = options + 1, .version = LIBAVUTIL_VERSION_INT, }; @@ -1043,6 +1030,13 @@ const FFCodec ff_huffyuv_encoder = { }; #if CONFIG_FFVHUFF_ENCODER +static const AVClass ff_class = { + .class_name = "ffvhuff", + .item_name = av_default_item_name, + .option = options, + .version = LIBAVUTIL_VERSION_INT, +}; + const FFCodec ff_ffvhuff_encoder = { .p.name = "ffvhuff", CODEC_LONG_NAME("Huffyuv FFmpeg variant"),