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 AE2FF42289 for ; Tue, 1 Mar 2022 14:23:54 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id ABC4A68B22C; Tue, 1 Mar 2022 16:23:52 +0200 (EET) Received: from mail-oi1-f175.google.com (mail-oi1-f175.google.com [209.85.167.175]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 36FD268B19C for ; Tue, 1 Mar 2022 16:23:46 +0200 (EET) Received: by mail-oi1-f175.google.com with SMTP id ay7so16333107oib.8 for ; Tue, 01 Mar 2022 06:23:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=dSg7ogfWS1QfRvUyCab2w7L5HmAK36fEiqTCAM91Bgk=; b=bxHneRk5OJkP6DaRmKpScdatjJkI24xxPG0TLGH0u/qiutd9Dv47d7FBpMzviA7m9Q /DULgxbaa2A/z933b/bX6UyJWsKyqL0X3h9MKiZ32BqEpGCPbTxWtiph9s78ValMq/pI QuVoQKR5i4IMwCFrOBPDs+wyzzOliSnZ9Hks09vqKstltH6woxIfTOoajgizNut/+fKn auzM11TATwa05nUKbKOfz48PfgYmqxQcWc4p2HGrugYaRj2uOrKPYOdXLNm621SJ9M5X an/BCIU2w632KRjLu1IiI0cZGSCDDFsSJ+ZtK11peBSU36677FRWAkX/g7QEQT1zUrqA 4Lsg== 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:mime-version :content-transfer-encoding; bh=dSg7ogfWS1QfRvUyCab2w7L5HmAK36fEiqTCAM91Bgk=; b=MlRNW/aoN7iTs+nGOqWUCeXn97d/tZVVcys3KlVazD3tAf4YYnhIHkkK5kRT6e+SJ9 lJIg9Xluy7AT4DUKcBu92TFLw4z9eubb0SG8Z1FQCH2KFPJOTouCFgvsLBGeUtXdE14Y M8o9yQ7OQma1uR/9AeGGgv3HXqMUGnxzGJPdhBydYo88Z8N/fhhK00KtTxsQji37Eu7z mVQ1kbrSUx7kUvCfo6ODSxVQiXmSHZUbSYG+7/9bbJRba0gdHRISbQyIVu2rylS79Plm XYH0XIDN3A3pGqU7hP6Mf8JTN8Tgt78+A7+q/b0FdVRSvxx77b2jXoK1/GO8eWeW+dls udvg== X-Gm-Message-State: AOAM531c29IEsCT2/lLnxJ7uQXiX/+m0/9WzK3KkbtxBEJVW2xMPHXJY fzK583VpWNTNq2GG3sNd0IOGn4AkBkjDSA== X-Google-Smtp-Source: ABdhPJwp4bN6jH8QbJgy74TvgyAUjKPVwhbBfGyorXH0g0Gcv3NuYpwOozTZKvhnM5WtuRX57Hf6NQ== X-Received: by 2002:a05:6808:2020:b0:2d4:df44:17cb with SMTP id q32-20020a056808202000b002d4df4417cbmr12968496oiw.69.1646144623661; Tue, 01 Mar 2022 06:23:43 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id q12-20020a05683033cc00b005a0962673c5sm6580637ott.43.2022.03.01.06.23.42 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Mar 2022 06:23:42 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Tue, 1 Mar 2022 11:23:10 -0300 Message-Id: <20220301142310.16367-1-jamrial@gmail.com> X-Mailer: git-send-email 2.35.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] avfilter/framepool: use av_image_fill_plane_sizes() to calculate pool sizes 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-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: Signed-off-by: James Almer --- libavfilter/framepool.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/libavfilter/framepool.c b/libavfilter/framepool.c index 5b510c9af9..cf6a1d0ea0 100644 --- a/libavfilter/framepool.c +++ b/libavfilter/framepool.c @@ -57,6 +57,8 @@ FFFramePool *ff_frame_pool_video_init(AVBufferRef* (*alloc)(size_t size), int i, ret; FFFramePool *pool; const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(format); + ptrdiff_t linesizes[4]; + size_t sizes[4]; if (!desc) return NULL; @@ -89,13 +91,19 @@ FFFramePool *ff_frame_pool_video_init(AVBufferRef* (*alloc)(size_t size), } } - for (i = 0; i < 4 && pool->linesize[i]; i++) { - int h = pool->height; - if (i == 1 || i == 2) - h = AV_CEIL_RSHIFT(h, desc->log2_chroma_h); + for (i = 0; i < 4; i++) + linesizes[i] = pool->linesize[i]; - pool->pools[i] = av_buffer_pool_init(pool->linesize[i] * h + align, - alloc); + if (av_image_fill_plane_sizes(sizes, pool->format, + FFALIGN(pool->height, align), + linesizes) < 0) { + goto fail; + } + + for (i = 0; i < 4 && sizes[i]; i++) { + if (sizes[i] > SIZE_MAX - align) + goto fail; + pool->pools[i] = av_buffer_pool_init(sizes[i] + align, alloc); if (!pool->pools[i]) goto fail; } -- 2.35.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".