From patchwork Sun Sep 22 18:00:03 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Khirnov X-Patchwork-Id: 51702 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a59:d154:0:b0:48e:c0f8:d0de with SMTP id bt20csp2083267vqb; Sun, 22 Sep 2024 11:39:17 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWMBqHvtQQ+Dga/OhpjQAhm1HYBRqkIBLK7bIi67sb6jwnIwmENCWI6laUBgFkSv2/7uxZBvvbqbh36L9XWW4hZ@gmail.com X-Google-Smtp-Source: AGHT+IFxwqGbRA6d44nM4EUuV1pqvaO6AGQCuiufDgYUt2kfBhNyGPzm/FOqeS1qAL1413lOMCsp X-Received: by 2002:a2e:9bcf:0:b0:2f7:a759:72a0 with SMTP id 38308e7fff4ca-2f7cb375d00mr35127161fa.40.1727030356848; Sun, 22 Sep 2024 11:39:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1727030356; cv=none; d=google.com; s=arc-20240605; b=ez5DF+g6pvNwiLbY+eevGbulAwGWfud0mbJZuIOiZUQLznjNkMvdjNjw3Hb0xYkUPO WMQjAkLSiW8WprQ2KdXn21igo3XuL/jizj3LFtNJXtMWNjpiOqoJ6Ipg8Nns7eBOy5sM b2NSl7RvTl+QoK+NOSkreYwCeg0cMmnNEt7r/3Bb22cx+1B/1sglIdAEcVfZk1wO40WK UEw7lZWzHjw8ukjMyizak0m0YLPfDsKxv7r+JMU4ZvgmR0c+bhPVP6o8iR114AnQmiIV o9+FKwBLm9P0CQ8UnICd4lFKyB/3xvxlVjVlCVZEdbZ+/7iaoFhTsa6br+bIiqR3Y/W4 amAw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; 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=SdcwR299r19Fy1NIw9ihYGmNbDGMC8twj31pejueISM=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=djcxtB/aZDskkBpTD346NiGPdKEvQPAgGXZR9BIOGehsNNPX8vrBD2L7qy1AJlMRyO UlE6cAG13u6v0K+w0sMfjrDZBdKye2xJE13CFnRS3/XCGGICRqcAePB1oAYUsYb7te6F mKgVWX0ES7I3AJbpTfqRR1N17i9zzkINMDF+9Ctqwew+6SYU9/FjFTFvYsX6xe1dU6PY myWMiibQWJucDHid+0IV91nJYOH3Uj5KM3/Rx0FJKv0ETtkyHa9pJj3VNOci0+Ge0ZJh 2cR9Zk9Jf1MnJAHH6pgptn/jJhjXFzBL4rdYk12OvU3oDONlKdJeZEtTDRnX+oeAE8eu vtFQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@khirnov.net header.s=mail header.b=kdruQY3i; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 38308e7fff4ca-2f79d47bffdsi57462031fa.563.2024.09.22.11.39.16; Sun, 22 Sep 2024 11:39:16 -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=@khirnov.net header.s=mail header.b=kdruQY3i; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0EB4768DAD6; Sun, 22 Sep 2024 21:00:33 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail1.khirnov.net (quelana.khirnov.net [94.230.150.81]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 95CB968D9FD for ; Sun, 22 Sep 2024 21:00:24 +0300 (EEST) Authentication-Results: mail1.khirnov.net; dkim=pass (2048-bit key; unprotected) header.d=khirnov.net header.i=@khirnov.net header.a=rsa-sha256 header.s=mail header.b=kdruQY3i; dkim-atps=neutral Received: from localhost (mail1.khirnov.net [IPv6:::1]) by mail1.khirnov.net (Postfix) with ESMTP id 389194D9D for ; Sun, 22 Sep 2024 20:00:24 +0200 (CEST) Received: from mail1.khirnov.net ([IPv6:::1]) by localhost (mail1.khirnov.net [IPv6:::1]) (amavis, port 10024) with ESMTP id Nq1prH1MrG8g for ; Sun, 22 Sep 2024 20:00:22 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=khirnov.net; s=mail; t=1727028022; bh=Dwrardk+v2dbJ+UveheBaXeYkh4rG/BAHTVK6IG4Zwo=; h=From:To:Subject:Date:In-Reply-To:References:From; b=kdruQY3id47089wplbnXFLF8BRDFpol7P/sJzrLWif2A6z2+lU8Rjd9QKU4abCnI5 oT9BjM4vGr5pearcrhWmEKrff4DDqO8thXkqtNuBX8qjWIiqb6vfHDHr0Hndo+E5Zp rCi6WC0I7/g1MnpmNb+rDCphg9RlE+EwhDffU6FZrk+UaKtl4WsXOrik1FwvqGtVrM t5Pum3zZ4HtrwY3RGjXWppsxjH1bj+oamfsQ5/WP2t+veSr2eE9zeF1I9IqVrzscQ/ ID5/fFFSeX4Ml558IWyI7QdLTiqS6HRFKGu3E6kuc6wq21ntF5fd4MOmjiksW+Hh/o fvoUmVeGPUHqg== Received: from libav.khirnov.net (libav.khirnov.net [IPv6:2a00:c500:561:201::7]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "libav.khirnov.net", Issuer "smtp.khirnov.net SMTP CA" (verified OK)) by mail1.khirnov.net (Postfix) with ESMTPS id A64544DEE for ; Sun, 22 Sep 2024 20:00:21 +0200 (CEST) Received: from libav.khirnov.net (libav.khirnov.net [IPv6:::1]) by libav.khirnov.net (Postfix) with ESMTP id 965EA3A036E for ; Sun, 22 Sep 2024 20:00:14 +0200 (CEST) From: Anton Khirnov To: ffmpeg-devel@ffmpeg.org Date: Sun, 22 Sep 2024 20:00:03 +0200 Message-ID: <20240922180005.6549-1-anton@khirnov.net> X-Mailer: git-send-email 2.43.0 In-Reply-To: References: MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/3] lavc/decode: clear side data in reget_buffer() 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: 3xhj3PQ+gUlU Otherwise it may accumulate when e.g. global side data is repeatedly copied to the frame with in each subsequent reget_buffer() call. --- libavcodec/decode.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libavcodec/decode.c b/libavcodec/decode.c index 1f2fbda6ad..57cca44d05 100644 --- a/libavcodec/decode.c +++ b/libavcodec/decode.c @@ -1685,6 +1685,8 @@ static int reget_buffer_internal(AVCodecContext *avctx, AVFrame *frame, int flag if (!frame->data[0]) return ff_get_buffer(avctx, frame, AV_GET_BUFFER_FLAG_REF); + av_frame_side_data_free(&frame->side_data, &frame->nb_side_data); + if ((flags & FF_REGET_BUFFER_FLAG_READONLY) || av_frame_is_writable(frame)) return ff_decode_frame_props(avctx, frame);