From patchwork Sun Aug 6 13:28:00 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 43143 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:9329:b0:130:ccc6:6c4b with SMTP id r41csp1066361pzh; Sun, 6 Aug 2023 06:27:06 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHOll8Ao0+oEDQUXeV1kOr9eHKJSZcJoKfA66fhamDLrBnSx+xODoEtSMPYxTDfaHl/fFFx X-Received: by 2002:a17:906:3f4e:b0:994:673:8af6 with SMTP id f14-20020a1709063f4e00b0099406738af6mr6415112ejj.29.1691328426349; Sun, 06 Aug 2023 06:27:06 -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 c23-20020a1709060fd700b0099bd73e2ca1si4598845ejk.96.2023.08.06.06.27.05; Sun, 06 Aug 2023 06:27:06 -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=FRWENPkT; 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 E373C68C5D8; Sun, 6 Aug 2023 16:27:01 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04olkn2057.outbound.protection.outlook.com [40.92.73.57]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 55D1668C2C7 for ; Sun, 6 Aug 2023 16:26:55 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OesuQZEmHQnV+RGRjXaW75+xGU4kuIVvViBabmciPYb/skqfXfi3Lnpm3EWaaOLfXoK3NU0O1rm/tqfv0UFOFZFhNMHcqimQ9t8DX/Svn8isHI2eA9AI3lWJX5Nt+5ji4DoE5Q5/fb6gaH03iVSErtKITs2wGG5UV0c/s1lPFQQHZIiLM6f61yJJzwLJp9GEWldEoTh/TCQ7MtfYEHjSdY1e7/nVDtN/glvZfjbMNlA8nqKn2WJStHoW3kLRJtWCDP5c2G6YYZqlauTBwvG3VDnGvRk08eqJ1tcYJ6i0Oj+Lf6X0bB3svioGSkBNQDl2nGptg9WlCh9Is+P+ruscyg== 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=LZSTHhEMKpQN9wHpmqYrSodnw0yqPwQcf3mdZkpMcTw=; b=UHLjWOWybiL1KnRDt/iL+3GNTK7QA7ByVQQeh2240SC11+x3V30x6wTi8+qPOZKi8Hix9lcWI3WhCN5qCxMv61H03AOdkC+WTYKDXrqcK9Qgkwdw8WVtq/OTH1IXsRFm+KAkNi6OCbgpk9iI/if4XE7UafMShGNrouhbBu62T2AzKZz8IoACw18NKe7QLoNg6T4AkVfdSoqU15rCDm9r2RV1Hbk6T5mCbjN9ygpm0YqFepLWUcYlIDI1E631j6xwJWkGgSZ89SnlBOcvbXCCyctGJtRHJlzy40Dmm6zdM7qQ+8C019wx7ddLhiKTn740+TDJC4IwMepsNJZb2VGGrQ== 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=LZSTHhEMKpQN9wHpmqYrSodnw0yqPwQcf3mdZkpMcTw=; b=FRWENPkTjgdAAg44CIO2zLi/WKDs0r7mq+PtSb6E+Lxy9lfjYq7QU6061RSyDcm/8tOD749nUtb8ETzfiSkkvE5naIK32J4tMLxu0SgQgO68sj+6q8ZKqQ2UMa0rXS1NBfosoR2LMD352oHBGxODdwXruobq4JQD2HFWVRrS3FrSJsGiUhfML6gS9PbRS4fDoCNrXjnnZJANt7xuOnp+qiV9UUToQEQYErYSzxzIr1OOwmHpYQIzKxP/JNUZWlFfB6vttCc7yxKl+XWpZ/C1i5NQd4M6DMXujOaYuuyLWSwrsmZUeDRztea+ekV2fE9LR8AwcQrKXgad7ZVOdhunCw== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by AS8P250MB0156.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:372::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6652.25; Sun, 6 Aug 2023 13:26:53 +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.021; Sun, 6 Aug 2023 13:26:53 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 6 Aug 2023 15:28:00 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 X-TMN: [+CwFWUTnqk8Aq75q7DLS24xeI5tZrLbJzRnuJUKGLPc=] X-ClientProxiedBy: ZR0P278CA0150.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:41::14) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20230806132800.2986215-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|AS8P250MB0156:EE_ X-MS-Office365-Filtering-Correlation-Id: 8544158b-97e2-4349-f4d2-08db9680cc53 X-MS-Exchange-SLBlob-MailProps: feAVlmA1hHV551U57vYJsM0EpdRsaeJteK24747mWZJrYAILPcm9QLL2HU1N7F2UVm7FVQF3oRYuF2XNpRrCsIHd52bJFygh56lxvINiuHecNpVKvcJKHqoiPQzFCy9UsuX8i0lqNQiCVLb8lOLVFeiKWFmF2VL2HLfyIMfpf0pe3tP3XoWCCpG49ffC2Zzwt8K78rm+SGijcRxpOuZ4lSGKkn+mTFDWGQGmFrhhlRCqJDKyarCic6OwI3glcFQ4LRe3irqb0037l05qQQYfRnQp+IfwcXC/FPsB13epEw/u0ajkRrFVN3O5SAE3b7Xm03V2eD0aoe4q9UlmGrtrzUf5RWFCBLBwwX8JBD0yK327eltOkrKMBk+G6VBT/T2M3hMcib/1y3Ed/Ba1Npx0nYqQknDip2pdlAxtAi6sp4cn5mwceOX6h+mU2mAnjVmkDs+DKgj4xKkC26wKUFDO5GkNQg7T2pAT394WTRAgWE0++OikWbehUI5fmcRh6eygtat60MwSOfBbhJ+uol/v8hJFV64fuKeEqD2Eux/Yk1rEVn92IEnvYKVtiWbuBTnao9CDBS7XCMdZiMVs0nKTb93azE9wBQYi99LaVsJhUKGHdzFVhbesKNXaKtUkDSMVBrdm3sFLlxToQyQ+TO+Q20rh0wgckNGeZFooGXrmtysgXmXNF08geOpD4gllExdJxk5wVQ50DqckaRQ0Joy2oQ== X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: jqAZyt+dNjrw/60X0msVJIph8zNo4XAdxUD2V0LSvmbniNE63gLG46Dg7zgcfVpwvNc/vVPdduToh/zUZoPLr3r737m7mrG11kiGIUhARLjDYYN1MxAOmR1grachtb20qio2mHhbvf2PqKE959VgJud7vVkcPLcvwEgBpz4yi7KCLQYn6gjZRk4H9JpVngWqHOfbMMGP1BC0l90u1JOT6mZJS45E/sa+qYxHtWzrykzdBQ5hRvSWEnTUKOFCit4ybUWiFJaX65IiEZmD8oyfoQo8SE1xnuEY7s7d7+KHYGnJEp+L6ebTim9fivQAVpx20eQNR00ERLp6j6nRkyGlGEEKZ5UOrNwxrjaf9TpazNIxnMHPrqXyz1cCVvCW3lsd41bq9bYTa5/d9iZfm/pUWNueH0YwAb+j9VgmojMC1XZIh5LKCiKgvdaQ7HYRcZcJCVeMmC5jNnaOgZtbpMLrm5EUFq0gsOCw90uqyIU76WvvvxfHiTHg1v4eBsTUbr+9apDUAcLwfiOGlD6INYG+FX7FJg0DWazz65/RcrVT1tVOxwuACQo342XN8wC0LB/Wnnu6sB9VabxeGp1YpApj8ufJrNZpBOD/GCKKYt0FftZNfSzvGri6QwkSvQtz0BQ8 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: yR5iyc4Sj9HGw7B0lPgubDnTrbgIwJuj/k+VGaxxYafWqc7B6g+0dVWI606o4ZiEwKzhlOPUKVAaFHDndaOmwShj3ipC30gUBRGXtLUfg+b/yvrXkpJq+lh9OxwAcUT/+UHp4Je+98Y3vMj/7QXI1KNYu8rbG6VJyLPYfdZ5O3/kUk+UEMm35vz2mgHnOW60Kjd5dWsR2BDlNTiDRWflK8ApJw1PXYgfvbEQY2I+3I5xTL7NkRf3rynItRU8T48PP4LWhrYXQ/afitYnJk3s24uP5VO/jQXKOj1mbr1MNZW3I99yI82jJJw4rxwJ8KL57vgzXwtjWvcFR2eCTJ0peItSG6u3EDkP4/FSNEXlZnhOWBNZpzWgLj5wBt+/RexJULsFxHdnOD9q3jIVC3bSGTzKnZ+8uj3dfp5KhNJJDyq8F1U+fuP3pOBV1TaXN+z7Wirw4BDZCUKdGrFT5qFmLBzKCcjr0elrYbjvQtr0HOTUIx59YW4XO3rnvg3DYL+EczHkiNSB90R4cfUYwetaEAz/vgNAQBZNjXehjDisKNYIq6tu7aPzj1iWgdj82xR0lK8vFZGAI3+Zp3ZjzTtJuCH0HYGCOLNRIafnvLpbGaAxCPe67+toYV/WPRbm5jfWL8O3CD8Mi4YP0NGEI3XbadCsbFvY9CvoHHdH/6Pvpo8Ug+pZIDpEc8Zyz2tjO02J8JjTn5QklCGyibre95ruH1DoXQaQM1wDpjv4TLhZQFYHhzyebu1nXUy/R4uW4dUi9O0ZvUb85M2jqiKIhsF3T0xrRfzIUd7554rD2Zm8oYRjUw8LgueYfYLUeALsy2Wq7DOeGE+99CZ9rwQVBsv/dlmZrrc2se/NSZHPdZJt1Lu7EHrW41wxbjGNzyr78vdVUUuTrh7/hRWC+Z8ijMKt9CEgvkU/B3vAu973H9QadB2Fb/J3EgItMr+78J114tnOUi2FvSTKXlwZzb0hnlcEYvZYcYKecwbGOOu9DhG8XqVyEhNVaU7liTV6agHbLl3sZnfaKBZHxY/Wn8nEw//Mdk0lzRS3gtv/OE73omIlyMCIvkBefaIik/vbIgMDH0kZdHb28rNXJFLYjPpbrzwm5hkcmJnVkC3nH4cVbsdDd+s0du6Ote3FR1jO/wD3VUwb6oJJENeAcZOT2SpvSNclA/EmuPxbFf06AglFpSVX61sIbT+r2q3jOAGWF9X0ACQRsZPJxon8GI/EKALnWsfF1ZydkzlGnpDGGH9F2ie8EIIKQrzLCferlLwkx8I1dT+s X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8544158b-97e2-4349-f4d2-08db9680cc53 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Aug 2023 13:26:53.3797 (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: AS8P250MB0156 Subject: [FFmpeg-devel] [PATCH] fftools/ffprobe: Use proper enum type 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: HP5wvDK1KnvC This is a bit cleaner as int need not be the underlying type of an enum if a smaller type can hold all its values. Also declare the children_ids array as const as it never changes. Signed-off-by: Andreas Rheinhardt --- fftools/ffprobe.c | 38 ++++++++++++++++++-------------------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c index 5c2d4cbff1..4fcfe1164b 100644 --- a/fftools/ffprobe.c +++ b/fftools/ffprobe.c @@ -161,22 +161,6 @@ static int find_stream_info = 1; #define SECTION_MAX_NB_CHILDREN 10 -struct section { - int id; ///< unique id identifying a section - const char *name; - -#define SECTION_FLAG_IS_WRAPPER 1 ///< the section only contains other sections, but has no data at its own level -#define SECTION_FLAG_IS_ARRAY 2 ///< the section contains an array of elements of the same type -#define SECTION_FLAG_HAS_VARIABLE_FIELDS 4 ///< the section may contain a variable number of fields with variable keys. - /// For these sections the element_name field is mandatory. - int flags; - int children_ids[SECTION_MAX_NB_CHILDREN+1]; ///< list of children section IDS, terminated by -1 - const char *element_name; ///< name of the contained element, if provided - const char *unique_name; ///< unique section name, in case the name is ambiguous - AVDictionary *entries_to_show; - int show_all_entries; -}; - typedef enum { SECTION_ID_NONE = -1, SECTION_ID_CHAPTER, @@ -229,6 +213,22 @@ typedef enum { SECTION_ID_SUBTITLE, } SectionID; +struct section { + int id; ///< unique id identifying a section + const char *name; + +#define SECTION_FLAG_IS_WRAPPER 1 ///< the section only contains other sections, but has no data at its own level +#define SECTION_FLAG_IS_ARRAY 2 ///< the section contains an array of elements of the same type +#define SECTION_FLAG_HAS_VARIABLE_FIELDS 4 ///< the section may contain a variable number of fields with variable keys. + /// For these sections the element_name field is mandatory. + int flags; + const SectionID children_ids[SECTION_MAX_NB_CHILDREN+1]; ///< list of children section IDS, terminated by -1 + const char *element_name; ///< name of the contained element, if provided + const char *unique_name; ///< unique section name, in case the name is ambiguous + AVDictionary *entries_to_show; + int show_all_entries; +}; + static struct section sections[] = { [SECTION_ID_CHAPTERS] = { SECTION_ID_CHAPTERS, "chapters", SECTION_FLAG_IS_ARRAY, { SECTION_ID_CHAPTER, -1 } }, [SECTION_ID_CHAPTER] = { SECTION_ID_CHAPTER, "chapter", 0, { SECTION_ID_CHAPTER_TAGS, -1 } }, @@ -3688,8 +3688,7 @@ static inline void mark_section_show_entries(SectionID section_id, section->show_all_entries = show_all_entries; if (show_all_entries) { - SectionID *id; - for (id = section->children_ids; *id != -1; id++) + for (const SectionID *id = section->children_ids; *id != -1; id++) mark_section_show_entries(*id, show_all_entries, entries); } else { av_dict_copy(§ion->entries_to_show, entries, 0); @@ -4072,11 +4071,10 @@ static const OptionDef real_options[] = { static inline int check_section_show_entries(int section_id) { - int *id; struct section *section = §ions[section_id]; if (sections[section_id].show_all_entries || sections[section_id].entries_to_show) return 1; - for (id = section->children_ids; *id != -1; id++) + for (const SectionID *id = section->children_ids; *id != -1; id++) if (check_section_show_entries(*id)) return 1; return 0;