From patchwork Sun Nov 26 19:58:21 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Jan_Ekstr=C3=B6m?= X-Patchwork-Id: 44809 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:bca6:b0:181:818d:5e7f with SMTP id fx38csp2879722pzb; Sun, 26 Nov 2023 11:59:17 -0800 (PST) X-Google-Smtp-Source: AGHT+IGJams2pfXEUwBwXevIN2TxmvJ47NuxDw8UrbTJpiNxeByzSgP1/GiaYoW4458E+Y2JQ+Jd X-Received: by 2002:a17:906:11e:b0:a01:ae9a:c1d3 with SMTP id 30-20020a170906011e00b00a01ae9ac1d3mr8550907eje.11.1701028757216; Sun, 26 Nov 2023 11:59:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701028757; cv=none; d=google.com; s=arc-20160816; b=qp1/kgeM4JcZQwSAUHQsnDupk8ZDghM8wqIRPe9QjZQa3odycKM4y1FcN3jECavunW DVZP7wUVzXc8vn9xFdkwpG/OGIaC/VD36D2AYdUVO8OPoJPjsjlzTg+zvhwEq1G9zkO6 yQfFyUh8PCLnBGdWUemGzjIYNX7qoXTzogTaNAXEhNmTwmz5ef4SZl/PvOKRecfLfLiJ 85MN5PnE8lMwKhvj0FEXhX9O7cMD1tFuLHeGumQYaBIHvdzk6jaRgmvxx7RLtZLiEUzX cwu1KK2ksBR7IQ3iaB4RcXi/x0eShkZ8w5juCUXojIKR0QVkCxSc+hV4Zw6es+C597oV tF2g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=AK2pCMkUnO1U5OrYtGWHOlPojgU8aVEuuyoC3/Yyw+E=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=HPJ6QtDVYbUrUnpcyhV9hE7u2LbQzni4unUrnZMFiR96U/EOum8rZxSoJypYTzlPof +7Vipvf4U3JxRBLM70HtgogpnwL+Hq/aA45B7UiwVvqHGIkZ89vFMMFz0zCytd9dkZcK G7Eb969dGY/enWsMs9sXLgatHtXai4aNXIev5a8dr3ybYu0thVuJJ6jnOg6KfvadRxSB RQ4dbfEewrOO7ZsTZjEQIRS+EfRCRfMsisQxXbuQ5Hr/wFyPZSo9xKyIZ/+IXmUWyatK yFNRgUYAOhJNacElNCXTsTLCRx3Z81ST0Kqdcd49TfEaXr53OUXZVNZ1Vnlsqe5Gu1CB Tf4g== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=mjcmxcS6; 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=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id n8-20020a1709061d0800b009e65813118csi4112107ejh.584.2023.11.26.11.59.16; Sun, 26 Nov 2023 11:59:17 -0800 (PST) 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=@gmail.com header.s=20230601 header.b=mjcmxcS6; 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=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id F2D8B68CBF2; Sun, 26 Nov 2023 21:58:56 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-lf1-f51.google.com (mail-lf1-f51.google.com [209.85.167.51]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id CA0FD68CBF2 for ; Sun, 26 Nov 2023 21:58:48 +0200 (EET) Received: by mail-lf1-f51.google.com with SMTP id 2adb3069b0e04-50aa8c0af41so4655015e87.1 for ; Sun, 26 Nov 2023 11:58:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701028728; x=1701633528; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=LAKSe6+K9zynbBRmIP01MdptZky8V6VEeQXJv4IjXro=; b=mjcmxcS6fhbxuSyFRkmyyog2z0wRwkYOx9NgRlMfRrtFAvQBJ3TUJQHlTUB5TLyflq dL6BlNM2a1vEtgCEyZoVHkphCpbcwxkasZ525oh4zD1Gp262SiKDDUxZDv9ljzSSReQ5 q+Y25Xt5SLdAZLqtBOn6Q/1DOCaUWOjO0c6o5HkleuXrSqTNDxjWNRJwbr8R0kk6yfMj IcUnBroivGYXZWeoMk8jOIPTdHo/1a6CjKxgaUIYBp6oF6QZbraK1P70qKKRxJ8YwBaa O5V1i94h8wN7Hlhsi+MFWtm6nyFCyZ3AfKjIZ1TFLFCmcj/gLnurM+58RvcQhs7xOc4B lijQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701028728; x=1701633528; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=LAKSe6+K9zynbBRmIP01MdptZky8V6VEeQXJv4IjXro=; b=Lu8W+AB7rGNtTo9eXoqYxVWJVbf+ICn3Ma83mF+OTReq8vPJbkRXKXbOHAGT7WnUAv DFL5YU3egeBU/TPaugpOzJSEd0M0EeOCHcJBRBOr3ydwpHSF7Ca3d/JkWaDH78OTekAW i9YVzG07UQvYFpca+opfEOjOMD4fY/AaqiausBt3POVwNNjP1UkoBCScm0xQwZsTnHUI 8j4h4GyiBwUF3VMcG7FH9bhSruiQgJZpsjh6i6VZ96qJFRvhJhfDc9XBYjwcH0nILxYO /hXFXwqWwQx5ip0i1wkoe3RniD/FauDR86rzroUAgmtLbQfDqU88YysVL0NpPicFip9W Kn/g== X-Gm-Message-State: AOJu0YziRf4rpqTEU7k59J9BnPfFkBuXfg8mGdh6xGJ4qLlS8cdUDOzJ hBzvdelEKD1SN8RSpc/8J4huQgtB+mw= X-Received: by 2002:ac2:43a6:0:b0:50a:a8d4:25f9 with SMTP id t6-20020ac243a6000000b0050aa8d425f9mr3622280lfl.12.1701028727785; Sun, 26 Nov 2023 11:58:47 -0800 (PST) Received: from localhost.localdomain (91-153-198-187.elisa-laajakaista.fi. [91.153.198.187]) by smtp.gmail.com with ESMTPSA id k16-20020ac24f10000000b00500d1a72734sm1281833lfr.130.2023.11.26.11.58.47 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 26 Nov 2023 11:58:47 -0800 (PST) From: =?utf-8?q?Jan_Ekstr=C3=B6m?= To: ffmpeg-devel@ffmpeg.org Date: Sun, 26 Nov 2023 21:58:21 +0200 Message-ID: <20231126195838.392467-3-jeebjp@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20231126195838.392467-1-jeebjp@gmail.com> References: <20231126195838.392467-1-jeebjp@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v5 02/14] avutil/frame: split side data list wiping out to non-AVFrame function 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: qHkIMqtPu8YJ This will make it possible to to reuse logic in further commits. --- libavutil/frame.c | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/libavutil/frame.c b/libavutil/frame.c index a3f07ca089..d94710687b 100644 --- a/libavutil/frame.c +++ b/libavutil/frame.c @@ -75,14 +75,19 @@ static void free_side_data(AVFrameSideData **ptr_sd) av_freep(ptr_sd); } -static void wipe_side_data(AVFrame *frame) +static void wipe_side_data(AVFrameSideData ***sd, int *nb_side_data) { - for (int i = 0; i < frame->nb_side_data; i++) { - free_side_data(&frame->side_data[i]); + for (int i = 0; i < *nb_side_data; i++) { + free_side_data(&((*sd)[i])); } - frame->nb_side_data = 0; + *nb_side_data = 0; + + av_freep(sd); +} - av_freep(&frame->side_data); +static void frame_side_data_wipe(AVFrame *frame) +{ + wipe_side_data(&frame->side_data, &frame->nb_side_data); } AVFrame *av_frame_alloc(void) @@ -337,7 +342,7 @@ FF_ENABLE_DEPRECATION_WARNINGS sd_dst = av_frame_new_side_data(dst, sd_src->type, sd_src->size); if (!sd_dst) { - wipe_side_data(dst); + frame_side_data_wipe(dst); return AVERROR(ENOMEM); } memcpy(sd_dst->data, sd_src->data, sd_src->size); @@ -346,7 +351,7 @@ FF_ENABLE_DEPRECATION_WARNINGS sd_dst = av_frame_new_side_data_from_buf(dst, sd_src->type, ref); if (!sd_dst) { av_buffer_unref(&ref); - wipe_side_data(dst); + frame_side_data_wipe(dst); return AVERROR(ENOMEM); } } @@ -525,7 +530,7 @@ FF_DISABLE_DEPRECATION_WARNINGS FF_ENABLE_DEPRECATION_WARNINGS #endif - wipe_side_data(dst); + frame_side_data_wipe(dst); av_dict_free(&dst->metadata); ret = frame_copy_props(dst, src, 0); if (ret < 0) @@ -624,7 +629,7 @@ void av_frame_unref(AVFrame *frame) if (!frame) return; - wipe_side_data(frame); + frame_side_data_wipe(frame); for (int i = 0; i < FF_ARRAY_ELEMS(frame->buf); i++) av_buffer_unref(&frame->buf[i]);