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 8CE5C4A142 for ; Fri, 22 Mar 2024 13:58:34 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C231B68D597; Fri, 22 Mar 2024 15:58:33 +0200 (EET) Received: from EUR02-AM0-obe.outbound.protection.outlook.com (mail-am0eur02olkn2068.outbound.protection.outlook.com [40.92.49.68]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 204F768D4DF for ; Fri, 22 Mar 2024 15:58:27 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Nh+XIv3vK4TqbkYVgwK+1Lc5Ip9eajnsAYNroIi8OtCjR3leXMQLXAg3zHkT9aKGpIP6FizlKcJUyQdYFWN3ZBh9K7mvZtD/Hd2Dwex5a2zJOB5Hr7xq8mhqtftTG97xFX8mAycXK5jVryR4Q+ZK/bngGIYGNlP1Bi0HGgcA1R0Mtpu8+J9DKasbYaMaMNBnQgHX2eJwz83qqYxizeILMFUabL91Sap761HvPNQ8vMYqG+tBK4Fh+lXP5ZVpih6lqFOfgV/v97CU0tT63jzlnyaC9oCsxhdGtYXii+fbH7Qr9gyQv5z/n9LwhCtNVtLvOm9bzKOwd5Q3vvDE61bSYA== 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=kk1+BXe8XLexp3UPXr2Vf6rPF+YZHBbnuMXWoY0MZnA=; b=l07Ai7xjiHP09XfWKsU2+nrOEG4zBx7tATIK4Z/5vNndBVsWRTee9EoHVIterqs9NZ2BPxrvCg+w9YAl1Y7haoqywo3OcJ5cmLtKerbdcVp4xI34WTnwO5jNvYG41n4b+rstiV6Nlacxb0+eP/vzu47PLxcl3go+PZmlkpCYg/wSWONXkILwBhAteFbLrvxeMe0Ih3p327MwzCLTabpKWvytk2W8s0DquaPP36ZgnFYECfgkdRZNMFb+78T83cdH97c1RGPoTtHKBkZLbYmIS1Ox88FxV73xGyAq0Q65B/X/NDSB83z4h1LB/LLI5JagcNsw2moyiUZrdn+rhlXITg== 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=kk1+BXe8XLexp3UPXr2Vf6rPF+YZHBbnuMXWoY0MZnA=; b=JP0Pm+XNjs7fVEseH1w0FRUPuJQtI5BzqKpDHpqMdldjuqOc97uAaR/YQD41ptQuiqCLNhSxMJu7NibRuOkDuFVji5w1W+fVa0fpnsr6ltLPteRnEXWJZ4zop3Z3H4i+2JUJJumZEq9zS0+uVypzu1+gnefpSvAeqhmVGtCGTZ0xNPBkgdHVMk2xZZG5D6H8J9wMppBiwsmx/UYW8WUzTaW77IQRqAssC4M7eXKa6uLyIDAudLg5CtetjBr4TH7Uh+8X08KUIHGp4JGyLEtfMI7dwEXcMU5RtkfiJ9Ha2rrHHSamHvJ6FhAQhm/cnmpNTKFjsVyJqbrNnOpwWnBDhA== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by AS8P250MB0069.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:377::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.24; Fri, 22 Mar 2024 13:58:24 +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.7386.025; Fri, 22 Mar 2024 13:58:24 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 22 Mar 2024 14:58:16 +0100 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [6m8XZ/6S7J04daK8hk33LdJb1PaqljfErTSwxYY+DMY=] X-ClientProxiedBy: ZR0P278CA0213.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:6a::19) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20240322135816.198916-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|AS8P250MB0069:EE_ X-MS-Office365-Filtering-Correlation-Id: 60fd4aa4-f09e-4fdf-2ee1-08dc4a782415 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 5l7NOPMIoBVqHehkhBnfw6/Jca7OURi9uZvAC+QJEZBVt8YAU6JPCmhBqzdRX2alWclgGaG2Adm0TNwZXQqvoq/t1Mh00To9fPgytWvsyCOG6dy1DEvpD7BWRGPH2mufZdTUpXjf+giAdmyV7VQ0UOYgEtclts+WTkP/LCDIOwEZs1HOn5QoOif3wV4i+v+AxO7wneiBG96E7AVC3WFIy+XBICKa5uKDgjDtPdfi+xPQ1JuVZ0ZBTULef+i/37M+wuclEkobAg4qU9MU1H5SFmJ4UqRN12yTYiA7f7K47YwexsaczhU5DhNEsRzXB553vNsL+txHbXJvb7JywJXW1CCV1+uXp62VovccjjIdFncy5O+2uTiaiWhBKriEa6L7xITTNvExweEtr5/nhN6LBa+wIK4SrgEsQvt5UmpVg8ButaPL/hPTp3w0QIgiYJ9iN08G5JkYX/UJF1LzzCY220hOh26RB6UO5tdsQql47fhkoP2y8Lhy9KGYGXAsqxuJNJPi7FaAe/jsTjdoAb8S/GPL/y1EK+0bm5PrWoxDlWY5sUm7IomGEQcjgTOaKzDTaT79A3K5ltNofQPH4UoMZmI6Y9XRPLRh77SrDrkENOcEX2hzFgRJ1YBavFH1Loap X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Tp0atn34LxSYt2gRX4MGnrrJBUM/hO5J0BqWbCg2V1NbqUXIsCOFLV1hIqyR?= =?us-ascii?Q?LpyM9H9og+i88Boce1q18IESCed8ZZrDCR4UPHFQFwxc9e0zmAjxrmJekOWl?= =?us-ascii?Q?Q/eZhugt5+90hGFdK3YnALiigNecsOssO/SLIaReGt3H0XAnoIoC0CkaD1IS?= =?us-ascii?Q?Exv4oUZffImpl0DafNGrOxHqop9UPt9rd+P8tOZHl+w/6ddu2Sr1uN9AMoce?= =?us-ascii?Q?XDyUrr94uEzhz7zwOZ/9icYYL92WpUo4ftMUjZ08TLkIaYNWMvo0t7mIk2Jo?= =?us-ascii?Q?imazkIJIvxtGLQVakhQhyTFtyyjsj3OfMn3P9o/KVhNnVM1R47xaKcsR6eE9?= =?us-ascii?Q?K0QP27o8UpA9PP0i6mxLDRhWjOyqbzdG7xZCDWqynswgEXVMmiDvuNWpnozz?= =?us-ascii?Q?5eYOQhD6wwhEFNG1i2Tvu/kZOaCj+MbkgkhmaEMONz0M6i1pshl2m8IJnbfM?= =?us-ascii?Q?LV+5XmZOBtq0WhgBsbjYyfs9UvQ7e37ppqKB24ao95VgS14ky+igFNWOfIGl?= =?us-ascii?Q?ia8ES39SxLNFkX3+imF0vQOGRwWHDQq3vgcPInlB2DM5eU8IP/eilQGLgtT2?= =?us-ascii?Q?d6smyapH5p/X+9d6xM42mNsoUAzK1p8Vin7rgiW/XcfXS92igm/Y1k99FjL3?= =?us-ascii?Q?BgVPDK+r2kYX7Rj5GRkPAtDM9rbo4GMN81rWQ6Qje/dhXX64MkX3a56hqN4Q?= =?us-ascii?Q?Lx0gFWbakK96cHI9zhxHP/sZpIwXgUfLXBG0oBMayHbGVxRqK610pFxvw3Bj?= =?us-ascii?Q?yc/tlkU1cJL2JHqDeLYnokfSuQBMZFvMAEc45gVXq9lRDbMZOFxjg35x+VZd?= =?us-ascii?Q?VfdTILV9iyCNG/JkYGJy2E+BeqXDJmhPqU7xCjCtrGkaMEMNPBih31HoPYRs?= =?us-ascii?Q?+6HADnZllb9jkwu6KxsOhJhBCe3ruoirJAHy3bS67VoqvL7h94zg3cUOjqwS?= =?us-ascii?Q?NlPFC/ABvTtQkE9vELNO6CiRKuX595JQXpplyGN0+vYKIPurwvzpj7QfQ3ch?= =?us-ascii?Q?tiyS8OmvF/kK/LiROzIVv0bXesY52Y5y2E1RBrVEKXWfYWOdwh0aStQ2m0WR?= =?us-ascii?Q?dL2E00WDtWdw70P7Y6kxwpYH3tGaxYHr7S8n/81OBYFT2BcMbN62t/gXYllO?= =?us-ascii?Q?tJ6ewGFcrkwKarUcgVw1II/NkYTRtA0FIMkE9VFBcLGZDRg509lKjD27fRKq?= =?us-ascii?Q?HpwSSH/Ugz8xmJBxIjxB7AQVSZhtphn6FqyCBellSL2rxkTtuW1IHU01OA7e?= =?us-ascii?Q?4js2S4proJh8aL4IahoZRbCpeqI3xoz9z3x0csqnxA=3D=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 60fd4aa4-f09e-4fdf-2ee1-08dc4a782415 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Mar 2024 13:58:24.3962 (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: AS8P250MB0069 Subject: [FFmpeg-devel] [PATCH 4/4] avutil/frame: Rename av_frame_side_data_get and add wrapper for it 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: av_frame_side_data_get() has a const AVFrameSideData * const *sd parameter; so calling it with an AVFramesSideData **sd like AVCodecContext.decoded_side_data (or with a AVFramesSideData * const *sd) is safe, but the conversion is not performed automatically in C. All users of this function therefore resort to a cast. This commit changes this: av_frame_side_data_get() is renamed to av_frame_side_data_get_c(); furthermore, a static inline wrapper for it name av_frame_side_data_get() is added that accepts an AVFramesSideData * const * and converts this to const AVFramesSideData * const * in a Wcast-qual safe way. This also allows to remove the casts from the current users. Signed-off-by: Andreas Rheinhardt --- libavcodec/libsvtav1.c | 6 ++---- libavcodec/libx264.c | 6 ++---- libavcodec/libx265.c | 6 ++---- libavutil/frame.c | 8 ++++---- libavutil/frame.h | 19 +++++++++++++++++-- 5 files changed, 27 insertions(+), 18 deletions(-) diff --git a/libavcodec/libsvtav1.c b/libavcodec/libsvtav1.c index 6400a6507a..8fa42d590b 100644 --- a/libavcodec/libsvtav1.c +++ b/libavcodec/libsvtav1.c @@ -180,12 +180,10 @@ static void handle_side_data(AVCodecContext *avctx, EbSvtAv1EncConfiguration *param) { const AVFrameSideData *cll_sd = - av_frame_side_data_get( - (const AVFrameSideData **)avctx->decoded_side_data, + av_frame_side_data_get(avctx->decoded_side_data, avctx->nb_decoded_side_data, AV_FRAME_DATA_CONTENT_LIGHT_LEVEL); const AVFrameSideData *mdcv_sd = - av_frame_side_data_get( - (const AVFrameSideData **)avctx->decoded_side_data, + av_frame_side_data_get(avctx->decoded_side_data, avctx->nb_decoded_side_data, AV_FRAME_DATA_MASTERING_DISPLAY_METADATA); diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c index 3d195fa6b6..eadb20d2b3 100644 --- a/libavcodec/libx264.c +++ b/libavcodec/libx264.c @@ -1044,12 +1044,10 @@ static void handle_side_data(AVCodecContext *avctx, x264_param_t *params) { #if CONFIG_LIBX264_HDR10 const AVFrameSideData *cll_sd = - av_frame_side_data_get( - (const AVFrameSideData **)avctx->decoded_side_data, + av_frame_side_data_get(avctx->decoded_side_data, avctx->nb_decoded_side_data, AV_FRAME_DATA_CONTENT_LIGHT_LEVEL); const AVFrameSideData *mdcv_sd = - av_frame_side_data_get( - (const AVFrameSideData **)avctx->decoded_side_data, + av_frame_side_data_get(avctx->decoded_side_data, avctx->nb_decoded_side_data, AV_FRAME_DATA_MASTERING_DISPLAY_METADATA); diff --git a/libavcodec/libx265.c b/libavcodec/libx265.c index 45349a85b9..d3e74eaacf 100644 --- a/libavcodec/libx265.c +++ b/libavcodec/libx265.c @@ -211,12 +211,10 @@ static int handle_side_data(AVCodecContext *avctx, const x265_api *api, x265_param *params) { const AVFrameSideData *cll_sd = - av_frame_side_data_get( - (const AVFrameSideData **)avctx->decoded_side_data, + av_frame_side_data_get(avctx->decoded_side_data, avctx->nb_decoded_side_data, AV_FRAME_DATA_CONTENT_LIGHT_LEVEL); const AVFrameSideData *mdcv_sd = - av_frame_side_data_get( - (const AVFrameSideData **)avctx->decoded_side_data, + av_frame_side_data_get(avctx->decoded_side_data, avctx->nb_decoded_side_data, AV_FRAME_DATA_MASTERING_DISPLAY_METADATA); diff --git a/libavutil/frame.c b/libavutil/frame.c index 8598aa98a2..7dd37e5490 100644 --- a/libavutil/frame.c +++ b/libavutil/frame.c @@ -813,9 +813,9 @@ int av_frame_side_data_clone(AVFrameSideData ***sd, int *nb_sd, return 0; } -const AVFrameSideData *av_frame_side_data_get(const AVFrameSideData * const *sd, - const int nb_sd, - enum AVFrameSideDataType type) +const AVFrameSideData *av_frame_side_data_get_c(const AVFrameSideData * const *sd, + const int nb_sd, + enum AVFrameSideDataType type) { for (int i = 0; i < nb_sd; i++) { if (sd[i]->type == type) @@ -828,7 +828,7 @@ AVFrameSideData *av_frame_get_side_data(const AVFrame *frame, enum AVFrameSideDataType type) { return (AVFrameSideData *)av_frame_side_data_get( - (const AVFrameSideData **)frame->side_data, frame->nb_side_data, + frame->side_data, frame->nb_side_data, type ); } diff --git a/libavutil/frame.h b/libavutil/frame.h index cf9ffe1ba9..373866c600 100644 --- a/libavutil/frame.h +++ b/libavutil/frame.h @@ -1051,9 +1051,24 @@ int av_frame_side_data_clone(AVFrameSideData ***sd, int *nb_sd, * @return a pointer to the side data of a given type on success, NULL if there * is no side data with such type in this set. */ -const AVFrameSideData *av_frame_side_data_get(const AVFrameSideData * const *sd, +const AVFrameSideData *av_frame_side_data_get_c(const AVFrameSideData * const *sd, + const int nb_sd, + enum AVFrameSideDataType type); + +/** + * Wrapper around av_frame_side_data_get_c() to workaround the limitation + * that for any type T the conversion from T * const * to const T * const * + * is not performed automatically in C. + * @see av_frame_side_data_get_c() + */ +static inline +const AVFrameSideData *av_frame_side_data_get(AVFrameSideData * const *sd, const int nb_sd, - enum AVFrameSideDataType type); + enum AVFrameSideDataType type) +{ + return av_frame_side_data_get_c((const AVFrameSideData * const *)sd, + nb_sd, type); +} /** * @} -- 2.40.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".