From patchwork Sat Feb 12 00:13:01 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 34238 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6838:14aa:0:0:0:0 with SMTP id bz10csp3674430nkb; Fri, 11 Feb 2022 16:14:42 -0800 (PST) X-Google-Smtp-Source: ABdhPJwWtgXU9M3Z2z8awzsBDqnE0IPoIlO21LM2Hwqvo9EpJ5oD3B7I8gmGBMQAk1dk7gaOdtgM X-Received: by 2002:a17:907:e86:: with SMTP id ho6mr3274731ejc.61.1644624882065; Fri, 11 Feb 2022 16:14:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1644624882; cv=none; d=google.com; s=arc-20160816; b=MZ3kEGkNLu8z8eHj2W3tqoeSwaKjpWyN3pmygkzdvW5hFPX6NZj6T1+J8soSoC/DNd pLiZMUtebfrb0yOqMoijyU13ndFJdw7+6HWIvhSKpthD9Hvh67+66Z5kyIDBDgGeX/Ng QL7U/gxtWydn+NxL8Kr+ridRs0m9XfBz7Raq4zeu5m7i6x5gCAPD8labmO6Vjpob5fUt 4kxf5SMIDpeDjV/WVocOrmNMl6TS5+2+y9IKZsNhGaWvLC/7gsNzpqng3RleI6Cms9eC yefx790XaLwkSrwITWnBO/Rimiw9RbvRLrMh3E/pRTlgKwUxl14mTaAte7FYr5L4a3FI W9HA== 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=sC45Pp9baiNnxm4XpvRyuWI9aXCf8/hqnqZ4dEZiezc=; b=u+ztpQim8laW7gPJFl4DP1rowLIoWydLuiMew49vXuf9U+Qw+bvW7SH08Pbq/J1Qnl jysTFdNOy5qJUlUmTF8FMuZ0yrWBZ5c3AHXOSTRM4O8DumOj2YTV/Jrd/M4Xa2CM3oR/ nck7GYhvblWvQ5YnL1udS/DCuGtuPF4nhYTt2oVOMp9K7kKbMaP5P9pWqaoNchaC5s6P Pb4/vyHqtbDxkwBHb7R5aMQHa5FuxoFbTJZ5zDfHpUb/d3QdtcbcH5ry+YvVdWwjVFyJ 3pROafBVVZcZC9UMgcSrWwj5H5HhNST62vks9Au3ho3JUdP8rcZAm3esrFwRH0V0aLX+ leEQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=XinrC94g; 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 p5si870617eju.389.2022.02.11.16.14.41; Fri, 11 Feb 2022 16:14:42 -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=20210112 header.b=XinrC94g; 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 49BCE68AF87; Sat, 12 Feb 2022 02:14:09 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oi1-f170.google.com (mail-oi1-f170.google.com [209.85.167.170]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 63B8E68AF80 for ; Sat, 12 Feb 2022 02:14:01 +0200 (EET) Received: by mail-oi1-f170.google.com with SMTP id x4so1100156oic.9 for ; Fri, 11 Feb 2022 16:14:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=XR2CMMX7mL9Q0Tz5/MqHSV2QY4xN1jvYQjcEgKHTTLo=; b=XinrC94gDPxlK27Xrc6muJ5QcIEwmXw22i5lukr9EToaDqg0SFfnoGt+hD/CXLouMz nAQbCcqiDfoz+0U8pMRE4Yqa6VFMsAZCGnB9pTGpOGkbHNnk6if78u+rZgTGc9CQvnPM e05bUhzm8UZNp/BPclu6Qn71YvKMCtp+Ds+YccrK23CeUv1LgmKNdU59+J6VQ9Ee9XK2 nMr5XbTSEZeP7Q10XRWHljE0tgQ3GB+vnl9zpklchFmqY89aEcWEdN1R31to7j7SdDBG oT3mFCij314HQ+vATD5bVF8muNNfIo3SUnYROmskr8sqIM3se1zJVsQFR99013el7T+p ztPA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=XR2CMMX7mL9Q0Tz5/MqHSV2QY4xN1jvYQjcEgKHTTLo=; b=Zhh/ucVdutkLg+x9tgEjXQScI/v2/Ai9NFkK22/3ua78e8ezoZ1SS3O8bBLpgyAiT2 SzWc5UZR1CmTQSPj1roAhsTDu4zIUbMexB4OYQC40mgoShb8R4rcWgVmCnaCJ0BhwiK3 ellK0PSAs7fWnl4LTAxxkTVP5jo8w7HJmVPXKxxVPFWR8EC8Zt+hAzmYxOkKnJTxYoMD o2uImIW9YYNHRAOcsOSUsyVpUGaqiBVOnURAXPllQKKVNP7Ih0TpIO74jlwKuoT+qfOx V/LZkPVNu4aIa3F75ihXUZs4++IKa41N61OwHFJTr2HkIR70iXcokRTPEeSdKZqQF/ZO TrCA== X-Gm-Message-State: AOAM531QlAeu2tWEm4qnCUMQDqn18qXqGaObBLl6aAb2Uipm93b6Wmvi m9EU2637ggTkqIAPKihemApHGCq9uGg= X-Received: by 2002:aca:ad97:: with SMTP id w145mr1363893oie.166.1644624839743; Fri, 11 Feb 2022 16:13:59 -0800 (PST) Received: from localhost.localdomain ([191.83.214.101]) by smtp.gmail.com with ESMTPSA id k19sm9777448oot.41.2022.02.11.16.13.58 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 11 Feb 2022 16:13:59 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Fri, 11 Feb 2022 21:13:01 -0300 Message-Id: <20220212001301.4090-4-jamrial@gmail.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220212001301.4090-1-jamrial@gmail.com> References: <20220212001301.4090-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 4/4] avformat/vapoursynth: stop hardcoding sizeof(AVFrame) 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: noiqRAEZtqdr Use instead the new internal avpriv_avframe_size constant. This will ensure the actual size of AVFrame from the libavutil loaded at runtime is used instead. Also add the missing padding bytes required by the AVPacket API while at it. Signed-off-by: James Almer --- libavformat/vapoursynth.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/libavformat/vapoursynth.c b/libavformat/vapoursynth.c index 1578a6ac77..5c57f3a71c 100644 --- a/libavformat/vapoursynth.c +++ b/libavformat/vapoursynth.c @@ -31,6 +31,7 @@ #include "libavutil/avassert.h" #include "libavutil/avstring.h" #include "libavutil/eval.h" +#include "libavutil/frame_internal.h" #include "libavutil/imgutils.h" #include "libavutil/opt.h" #include "libavutil/pixdesc.h" @@ -344,6 +345,7 @@ static int read_packet_vs(AVFormatContext *s, AVPacket *pkt) const AVPixFmtDescriptor *desc; AVBufferRef *vsframe_ref = NULL; struct vsframe_ref_data *ref_data; + const size_t size = avpriv_avframe_size; int err = 0; int i; @@ -382,11 +384,13 @@ static int read_packet_vs(AVFormatContext *s, AVPacket *pkt) props = vs->vsapi->getFramePropsRO(vsframe); - frame = av_frame_alloc(); + frame = (AVFrame *)av_mallocz(size + AV_INPUT_BUFFER_PADDING_SIZE); if (!frame) { err = AVERROR(ENOMEM); goto end; } + // Set frame defaults + av_frame_unref(frame); frame->format = st->codecpar->format; frame->width = st->codecpar->width; @@ -432,8 +436,8 @@ static int read_packet_vs(AVFormatContext *s, AVPacket *pkt) frame->buf[i]->size = frame->linesize[i] * plane_h; } - pkt->buf = av_buffer_create((uint8_t*)frame, sizeof(*frame), - free_frame, NULL, 0); + pkt->buf = av_buffer_create((uint8_t*)frame, size + AV_INPUT_BUFFER_PADDING_SIZE, + free_frame, NULL, AV_BUFFER_FLAG_READONLY); if (!pkt->buf) { err = AVERROR(ENOMEM); goto end; @@ -442,7 +446,7 @@ static int read_packet_vs(AVFormatContext *s, AVPacket *pkt) frame = NULL; // pkt owns it now pkt->data = pkt->buf->data; - pkt->size = pkt->buf->size; + pkt->size = size; pkt->flags |= AV_PKT_FLAG_TRUSTED; if (vs->is_cfr)