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 F3FA64A27B for ; Mon, 25 Mar 2024 21:00:24 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 062F668D505; Mon, 25 Mar 2024 23:00:22 +0200 (EET) Received: from mail-pj1-f47.google.com (mail-pj1-f47.google.com [209.85.216.47]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BC78268D41D for ; Mon, 25 Mar 2024 23:00:15 +0200 (EET) Received: by mail-pj1-f47.google.com with SMTP id 98e67ed59e1d1-29e0229d6b5so3694657a91.3 for ; Mon, 25 Mar 2024 14:00:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1711400413; x=1712005213; darn=ffmpeg.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:to:subject:user-agent:mime-version:date:message-id:from :to:cc:subject:date:message-id:reply-to; bh=g2ZXCQg3L1x6kvdSFyRy/Z45sr4md2vllmR2xAz5OpY=; b=VHU0duzDdCxrGbHOS76Dwp0je1H7sKYW0piiMHNgzbUqt0n6L4HFufuEC7n/7/0Cbm 5wIaiXxUWqKwvL0qNDl/VJmjegKbDtq+WEXlQmC1NFm6RZgmnUuXoY3YpHASxmBfN34o 5A2B3FlNMYs+wQwx0g4Nds2zsW/HPnl0VrE89oPLNgnvrJlNOgcA7oJbiJYUEXKOu1Du +RcfIOuCi1fm4z3rK+ogDU71NktJftRCg/5zh06moXMzhq2W9e00aiyf50ikxDtmQLYJ UJ3auZDpC9NLoQjTBY1QMCqtBGtRu9hhGe4BRN9gR6ZzaQOi7S8QAghH6fp4THuPDfpU +A4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711400413; x=1712005213; h=content-transfer-encoding:in-reply-to:from:content-language :references:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=g2ZXCQg3L1x6kvdSFyRy/Z45sr4md2vllmR2xAz5OpY=; b=BenBPPnPF3U7LoGpxPAVssElTrPAMdR+A7xdAiOp1M8d7kX38IaJtMG1sdE3E4PXqg iI19coQYbQw9DkMQCJontblgChJG9gGxeZX909KdC5Kfrh80bY/BQbwlKhbe3We5DjO0 owXfpwGT/s4Z8mhr6D5bDG3bKcQMYPyrJPatimscCEENO/AQE1SMKCySfB1xgSyccwKF 5dcqDg0h8EPz+C1cWVA+cmgtVeUxNFCVbV+Zm5aV3N/XBVxOo7nTzy1fx5O0ELwXzYDv lF72kCBBjZF3Psd2B/6uV7hjMwgB20cYht4OfqrSpOXSMEPtfKlAmbvkPhjFjovFJ0zs Pb4w== X-Gm-Message-State: AOJu0YxZD92f48s05snZiEk429dplctKIocQ6TOzUd2Dl6I/m5L2TtbH ei6ObwGipq1TpujsAGss4Wn8+X+m+dtP5ZswuhAlhbYjAC1NvKDY8UqiH4se X-Google-Smtp-Source: AGHT+IEUxjGXbbedaomG5V0Zauz5RlKcHk6wfxpYnVik2eesZr2ppGnFP3dS1qrKzgRtDyibezbIpw== X-Received: by 2002:a17:90a:8504:b0:29f:7672:7fee with SMTP id l4-20020a17090a850400b0029f76727feemr7536831pjn.31.1711400412310; Mon, 25 Mar 2024 14:00:12 -0700 (PDT) Received: from [192.168.0.15] ([190.194.167.233]) by smtp.gmail.com with ESMTPSA id sz4-20020a17090b2d4400b0029df9355e79sm6747111pjb.13.2024.03.25.14.00.11 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 25 Mar 2024 14:00:11 -0700 (PDT) Message-ID: Date: Mon, 25 Mar 2024 18:00:09 -0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: ffmpeg-devel@ffmpeg.org References: <20240325200602.63020-1-jamrial@gmail.com> <20240325200602.63020-4-jamrial@gmail.com> Content-Language: en-US From: James Almer In-Reply-To: Subject: Re: [FFmpeg-devel] [PATCH 4/6 v2] avutil/mastering_display_metadata: add a new allocator function that returns a size 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 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: On 3/25/2024 5:40 PM, Andreas Rheinhardt wrote: > James Almer: >> av_mastering_display_metadata_alloc() is not useful in scenarios where you need to >> know the runtime size of AVMasteringDisplayMetadata. >> >> Signed-off-by: James Almer >> --- >> libavutil/mastering_display_metadata.c | 13 +++++++++++++ >> libavutil/mastering_display_metadata.h | 9 +++++++++ >> 2 files changed, 22 insertions(+) >> >> diff --git a/libavutil/mastering_display_metadata.c b/libavutil/mastering_display_metadata.c >> index 6069347617..ea41f13f9d 100644 >> --- a/libavutil/mastering_display_metadata.c >> +++ b/libavutil/mastering_display_metadata.c >> @@ -18,6 +18,7 @@ >> * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA >> */ >> >> +#include >> #include >> #include >> >> @@ -29,6 +30,18 @@ AVMasteringDisplayMetadata *av_mastering_display_metadata_alloc(void) >> return av_mallocz(sizeof(AVMasteringDisplayMetadata)); >> } >> >> +AVMasteringDisplayMetadata *av_mastering_display_metadata_alloc_size(size_t *size) >> +{ >> + AVMasteringDisplayMetadata *mastering = av_mallocz(sizeof(AVMasteringDisplayMetadata)); >> + if (!mastering) >> + return NULL; >> + >> + if (size) >> + *size = sizeof(*mastering); >> + >> + return mastering; >> +} >> + >> AVMasteringDisplayMetadata *av_mastering_display_metadata_create_side_data(AVFrame *frame) >> { >> AVFrameSideData *side_data = av_frame_new_side_data(frame, >> diff --git a/libavutil/mastering_display_metadata.h b/libavutil/mastering_display_metadata.h >> index c23b07c3cd..52fcef9e37 100644 >> --- a/libavutil/mastering_display_metadata.h >> +++ b/libavutil/mastering_display_metadata.h >> @@ -77,6 +77,15 @@ typedef struct AVMasteringDisplayMetadata { >> */ >> AVMasteringDisplayMetadata *av_mastering_display_metadata_alloc(void); >> >> +/** >> + * Allocate an AVMasteringDisplayMetadata structure and set its fields to >> + * default values. The resulting struct can be freed using av_freep(). >> + * >> + * @return An AVMasteringDisplayMetadata filled with default values or NULL >> + * on failure. >> + */ >> +AVMasteringDisplayMetadata *av_mastering_display_metadata_alloc_size(size_t *size); >> + >> /** >> * Allocate a complete AVMasteringDisplayMetadata and add it to the frame. >> * > > Instead of this we should have a generic allocator like > void *av_frame_side_data_allocate(enum AVFrameSideDataType, size_t > *size, size_t elem_count), with the latter being used for the allocators > that allocate arrays (like AVRegionOfInterest); it has to be set to zero > for the others. This will also avoid creating new > av_*_create_side_data() functions. I don't mind a function like that being added to simplify future additions, but this API is orthogonal to the frame side data one. It's also used in packets, for example, and right now lavf is using sizeof(AVMasteringDisplayMetadata) because av_mastering_display_metadata_alloc() is not useful. > > - Andreas > > _______________________________________________ > 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". _______________________________________________ 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".