From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id E1E2A46DC5 for ; Fri, 11 Aug 2023 10:44:48 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A782668C6C5; Fri, 11 Aug 2023 13:44:47 +0300 (EEST) Received: from EUR03-DBA-obe.outbound.protection.outlook.com (mail-dbaeur03olkn2074.outbound.protection.outlook.com [40.92.58.74]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2190368C323 for ; Fri, 11 Aug 2023 13:44:41 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Uj3uazLM+S8oPN/ZZoDA3NKKAOT3xQ73cc5RBJjZaaP+sPSBAfrOrB2zPzjmVOjzwizya8Tpv/glfa6Rgi/yVcj2fiuTB/KjU3P4oHyGoSC1E4l/Vtk6+TxCsficO16dyJHvFzQkmHyL197DxbJPqhyHKROZGV2je8LzrbXUD7HOexYN1BnYXT4hJHnf0mlHzDqQpDhQNBDUhLNctZejYum9xey7McrZvvCE/K0synHLWHN3Vb8B8DdiciTESO3obWYMKoKaNCVwRQ/3CNcf49gyTLDV2d/mR/N9Dlkg/FlCjxhLeNz6RJ0s5rrVKvtaxv81w5pjA3+f5RGcwDduwQ== 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=ZQnleP5oqSTNVMhqQ2tzFs0tTeCjlMa8XmAxdYxnu2M=; b=JW5eQnAWtHHlSVQbMXTLL/APspHld1bUjy57W26gBsy5Bk0ZWZ9JxKa8QJt2rW5TAkYmYEsxbtxeiYTMzbD3VqWZPhr9fM7fiaSMsbM1yFnNhPldjmtqV2UYNmYjJC7KN7SPtjSk2dRjWJM9T5jEpYTJbm9eHy/ka6KaKQbATb/qV9/ZAlOyKPzfLpvBCfe+VP7RgvgZDlC/RtNuU1S98nYCMX5EMbkk6sYzoqDwrhivmGREm0nSTriSwzFbfYDFfwggvjfxg3P8ep6+Bq0a1wbiQwJu8Q2g2CTMWdZqjAZDBh5UtlENXbkUrg+BPNaTvEWsEbwcBiSC3XY7W3jZAQ== 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=ZQnleP5oqSTNVMhqQ2tzFs0tTeCjlMa8XmAxdYxnu2M=; b=kSFcg1102kzbEbD0FtX94EvZ0z0vPNJpiO+Hpdz0Vlas3WHz7gLt1yJ5o8Fngw6Q26FBSRp8NmBUltngwXOLE9n/kPNtoAT+Cw3u17O8gqVbefm0SQsnbvURrWvb8K2wjrhN6V88cOzuwCs5AYeFJnmTrsmLWbKDAyX17EjwrLmtVIJbKZ2xm1Hd32nOsgasUBmV0gCmt8ZuDw+WvvcaSbXkfWCgInhjdJEEqE+ayWaTPoiP2Cda9ncAp58RsL24r0aRo0jl8ssC40OBzMUc6w5KijLzaYAZs1zklaOG12POGXQYWsMCW9ArG8lmhg0brnzWmEChdedrtiu9k1vnUw== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by PR3P250MB0273.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:17c::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6652.30; Fri, 11 Aug 2023 10:44:39 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::5e01:aea5:d3a8:cafa]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::5e01:aea5:d3a8:cafa%3]) with mapi id 15.20.6652.029; Fri, 11 Aug 2023 10:44:39 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 11 Aug 2023 12:43:26 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [GjaWowAV+LtcOju7u8HVVTHt0+pcqu8y+ZHzsCN8ZVM=] X-ClientProxiedBy: ZR2P278CA0021.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:46::17) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20230811104328.2278289-6-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|PR3P250MB0273:EE_ X-MS-Office365-Filtering-Correlation-Id: 6fed0a78-9fe7-4f05-f149-08db9a57f5d2 X-MS-Exchange-SLBlob-MailProps: AZnQBsB9XmpEPU/wJLY7hod/UA3ILpuO/EYf0VSz5fymVGKLlaQToA6Kv/D3m8SWsGTeH5rB7RVOG0cdCeHneOiXXbWmmJi+flikfjmhnNP6h6EUgvoUtFWSQrGh9YOz82OEqsBzpzPV58xBE8t61+6lmLBoDrLoEeSrRsJVtidITVKU+xh0l+5bC7o0tubJf/onZ9lRj2Q/E/k0UyXx1oQg2UL9HyuhKB9vBYgBDp4OhyaWDiOtlDDiwYJtOddVRLWyD7WJHdQlMbUl1tnN4v06h3BnNJzNxryiAV8JRPhMBhJS1m1UpUF0BWnQTQpP9d/8jfI2xuJ9sP4dGqf6HRhSPTvI/s5ItsJOVT+oWqFV23D7x/n3ME0FDxCCUCP62GyHtJmQneHwZhBWuV1k7l+5j4Py5c1hyOZjyA2EsbzEUw9LEaUdY6uTn2jDp79gq37LcdIVIyRcrJgjTmjFzhwV7UZvM7x6Xx0Lx5Fx9DA7WcqmZZyPQxt1eCgJfKsnHmQjLBvelwq5dInRSLNGfQ0+2iX3HSWlA0RB5MfJ7M/KUrWN/bzPiaXGZq8YF23FBvxb5va8opuIS03U7IoCr7JHqabAD5rusUGoPYTEJty9slkKRFzJcNdWPlfBLkY8bhlwEPFNPFcMNWmOUdnaP6GWsGLxGgXUkEDDVfCA8/65HE7GHnCw4Da3EdaN1+LecGwQh/oiqS2riyRtGQ3i51zyr9hAIhY4CZ0M1j1ABv4Fy2vAbPxvLDOtF8wL+varoupVgaQDDFE= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: +pE+A80KDoI4PFT9IGdZh4l3hX2Hi5Vrvgw5oos82TE6VpS0yXy346OsuBmeTRSnHfCTT+Fa7HRGJoa+yf1z9bVii7uKqvAKpaXjg7CsUXkGNfiqd9CZVVakrOGv7ier9rmzzZU8rsKfZNOFdW4A7cfAVRaUrkyoC4VUO0WUA7c2kDfAOReg9nmV6YlNNDMtRdEnlHR1OA60nNu7lPEVrN5NU7uthKnzGm2ssqSoOjzcEytDmRP+JDDlH2QavXFsxGy27PWpO+DcJ8UsBn/0pVjZGo5eySkgYaQOmXQpLuclmTrC9a8o3DeugiwyMhqzBxClRe0Hb0AutrudPUmXrNofDFs7j1/KjsS2dAjSFLmM4wlMYTjgI39nGXH0DIo7LPw5pPmAZkvHdGGCIC7FZk0B16Q/+27ridZVC/2p5BNn/hq20mrao3jUMZ7alibjnYwmxzI1/jt4hwVIaMJOL0UabZmvdTTbvfsy98E6Gw3OuROpmw2Qa1FihOVcwY1CB528MUa4cSI+tgJoXiWPWa6b40w/xpkFLz1IUFJrBqLDyj1pgaJI4lnl0b5dPkP/pQ5WvUhZbvsJ7Yxl7kFxVfyvGAL8xOgF3VPz6jNRJlZWiUaMCvAZbt1utyPshnR2 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?IxAqifOlcS2RpnZt6gQMdMev+Wz1mhEzUXGyF2wvTolByOE+wk2abhEV5lrb?= =?us-ascii?Q?zc7HeeHOC9RhkQwvtz/RE2c9Okdq0eETib+SOgiTP9aAC+i8Cmi2iH4nt8gD?= =?us-ascii?Q?xCnbwwZVpfaSKYel7+JB4dlw8uKU82QJsrsCw2jP/uAYHwzRjK7TuSat5j+1?= =?us-ascii?Q?Owqe4NwSrTn9uwGdhSeiKlRZva0gp/Ce839Z1AbAcui7WkuCS+pfSfE4XmAJ?= =?us-ascii?Q?KyPWiSN8cmlC3H/35Gtz7F8zN3VKO43pJgujmrZywVZOpSZJysXy8JfoOcK4?= =?us-ascii?Q?uEgIMU+oVytNTJpVw0vHwRysWM+k+TJ5VZ4VToXhi1BJWo5sMDYRQQucyVMc?= =?us-ascii?Q?PrbV+t/tADYRza/NbX0KhtQ4U4hoizkYn/SvyHBoskig+UyMVbww88kFjs4P?= =?us-ascii?Q?wdcn3xWGjJnsN9lWacLTpAlQfYsmb8WTkM3Xtzl2taTTduj3Q3hAJeB9EBA+?= =?us-ascii?Q?onqIRnokp5anVCLBoNIhEd82D9DJZM8Lqwu50CARfp4dix+Xg9pSqqevBQdH?= =?us-ascii?Q?umw2fC3Jo/yRFn84uDMFI6/a2/nWdxSNrzMx2ALHg9BiHkvSPx4S17lXNw3B?= =?us-ascii?Q?7fPBQyytiRiJBpp9ZMKf+V99uQS5CHcUJycHt9B59cFzcNDb02kaFTJq+OTG?= =?us-ascii?Q?YyUyqac35uw1gk6a5AIB4pIO76P2Zs3UF/0dE6Hd8IMtz6A0S+5StqiYJYaa?= =?us-ascii?Q?FHpOFZXaysEvFZugkAfjKs9OLsFi1jSjMTDYJh23C/Ul9ADIhI3nfXLXUijP?= =?us-ascii?Q?388cvWVLBcMRZcXrAlJilu+CiNG7VCj27/oH+tr1IKjjFe+VytodxSKl7/3J?= =?us-ascii?Q?y4mG1j3ErxmGPt214X9E+alEl/GGrbl/wtyu4msum2s56Bq8bQnE9VxaKKar?= =?us-ascii?Q?QOG33o41J2iN7rbToiGaXaYAqDuyuPikDGcqB2UpuGsUmGVOGIp2FYwbkTx0?= =?us-ascii?Q?6uog9888uz/hw/bl9LJq8vyx24a7amSC7oBARzYghL7oYENG5sSJx8aEY8yF?= =?us-ascii?Q?E/+zXMNl4X+pZ+s3mDR5AzSIJwnrgi3Tn60LKiYl0PwIsY262PScllIfv34l?= =?us-ascii?Q?2qMBpNwuO3K6N1dFdponuwElovmrb2OTdUmFkRmCcEP4UrX+Fo46NSjHwQEQ?= =?us-ascii?Q?xgINOdd7EdjgWvdTNjVgMd/f3tWj2E5jHfRt5DiDyqchFPZ/Q3jUWIVAGIby?= =?us-ascii?Q?EO8I59RcxQjMnm7hjC1/GTTe5v3aN9V2/4/CUDn7oANWQVx86CRWkdLZfVEu?= =?us-ascii?Q?aYyQRs5e2r8Tw6DsKn8D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6fed0a78-9fe7-4f05-f149-08db9a57f5d2 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Aug 2023 10:44:39.5910 (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: PR3P250MB0273 Subject: [FFmpeg-devel] [PATCH 7/9] avformat/matroskadec: Replace switch with array 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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: This simplification reduces codesize. (It even reduces the size of .rodata here, because the jump table used by the compiler is bigger than the actual array.) Signed-off-by: Andreas Rheinhardt --- libavformat/matroskadec.c | 47 +++++++++------------------------------ 1 file changed, 11 insertions(+), 36 deletions(-) diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index 98695479c6..e6797b2f57 100644 --- a/libavformat/matroskadec.c +++ b/libavformat/matroskadec.c @@ -2165,6 +2165,15 @@ static void mkv_stereo_mode_display_mul(int stereo_mode, static int mkv_stereo3d_conv(AVStream *st, MatroskaVideoStereoModeType stereo_mode) { + static const struct { + char type; + char flags; + } stereo_mode_conv [] = { +#define STEREO_MODE_CONV(STEREOMODETYPE, STEREO3DTYPE, FLAGS, WDIV, HDIV, WEBM) \ + [(STEREOMODETYPE)] = { .type = (STEREO3DTYPE), .flags = (FLAGS) }, +#define IGNORE(STEREOMODETYPE, WDIV, HDIV, WEBM) + STEREOMODE_STEREO3D_MAPPING(STEREO_MODE_CONV, IGNORE) + }; AVStereo3D *stereo; int ret; @@ -2172,42 +2181,8 @@ static int mkv_stereo3d_conv(AVStream *st, MatroskaVideoStereoModeType stereo_mo if (!stereo) return AVERROR(ENOMEM); - // note: the missing breaks are intentional - switch (stereo_mode) { - case MATROSKA_VIDEO_STEREOMODE_TYPE_MONO: - stereo->type = AV_STEREO3D_2D; - break; - case MATROSKA_VIDEO_STEREOMODE_TYPE_RIGHT_LEFT: - stereo->flags |= AV_STEREO3D_FLAG_INVERT; - case MATROSKA_VIDEO_STEREOMODE_TYPE_LEFT_RIGHT: - stereo->type = AV_STEREO3D_SIDEBYSIDE; - break; - case MATROSKA_VIDEO_STEREOMODE_TYPE_BOTTOM_TOP: - stereo->flags |= AV_STEREO3D_FLAG_INVERT; - case MATROSKA_VIDEO_STEREOMODE_TYPE_TOP_BOTTOM: - stereo->type = AV_STEREO3D_TOPBOTTOM; - break; - case MATROSKA_VIDEO_STEREOMODE_TYPE_CHECKERBOARD_RL: - stereo->flags |= AV_STEREO3D_FLAG_INVERT; - case MATROSKA_VIDEO_STEREOMODE_TYPE_CHECKERBOARD_LR: - stereo->type = AV_STEREO3D_CHECKERBOARD; - break; - case MATROSKA_VIDEO_STEREOMODE_TYPE_ROW_INTERLEAVED_RL: - stereo->flags |= AV_STEREO3D_FLAG_INVERT; - case MATROSKA_VIDEO_STEREOMODE_TYPE_ROW_INTERLEAVED_LR: - stereo->type = AV_STEREO3D_LINES; - break; - case MATROSKA_VIDEO_STEREOMODE_TYPE_COL_INTERLEAVED_RL: - stereo->flags |= AV_STEREO3D_FLAG_INVERT; - case MATROSKA_VIDEO_STEREOMODE_TYPE_COL_INTERLEAVED_LR: - stereo->type = AV_STEREO3D_COLUMNS; - break; - case MATROSKA_VIDEO_STEREOMODE_TYPE_BOTH_EYES_BLOCK_RL: - stereo->flags |= AV_STEREO3D_FLAG_INVERT; - case MATROSKA_VIDEO_STEREOMODE_TYPE_BOTH_EYES_BLOCK_LR: - stereo->type = AV_STEREO3D_FRAMESEQUENCE; - break; - } + stereo->type = stereo_mode_conv[stereo_mode].type; + stereo->flags = stereo_mode_conv[stereo_mode].flags; ret = av_stream_add_side_data(st, AV_PKT_DATA_STEREO3D, (uint8_t *)stereo, sizeof(*stereo)); -- 2.34.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".