From patchwork Tue Aug 10 02:37:54 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ameer Jalil X-Patchwork-Id: 29387 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:8e8b:0:0:0:0:0 with SMTP id q133csp36926iod; Mon, 9 Aug 2021 19:39:50 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxDCqAnGsjIA8sOAtwC5Q33Pfwu8Rva74HPijoyUmVy+W7YvvlxC7WshlhpTn98Oyi0CZGj X-Received: by 2002:a17:906:f8d5:: with SMTP id lh21mr1061938ejb.6.1628563190601; Mon, 09 Aug 2021 19:39:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1628563190; cv=none; d=google.com; s=arc-20160816; b=As0jMKX3AD1Rwo8zd+w09uaXwKJ8Bip4f3LAjxkqC3+sYh6lWOGNZQVXuBaZDCzKFq 7x2PsIjcngMhCGSnSf0fHCj4/xI+tyCwZCkMlEXQm1XSN7+w3ezjCo2ciY2ocbqF8n/B C8uhSXMndaW/0SWfnuXCvjCiE96yrMr0ADtibnKZOVoNUzIyq7XvGgycCdes3MHZNa4t ua4w7Dpt6BTJa+qVQqSqHM+OnlN4p+CQcvANmgl1i5IEnxW6b2+2jt2vFXZFdjyZthyO jaPCvVnZc8+d6eJ2tluRAy8kRl83Iim/JM2YgxCcj8YVHvRoBPuGQlHXr9mOIC70abC3 UgWw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=vEzTpoZ3KJROaMo6DAOfPbLjoBPaqF1KTz9xNJeEHVs=; b=aWvbZEdq8llNXgmsPdYdxG1oKsL7Y80d0VSYKlZ0SUYjaKuE6TOlpsN7zBlVGw7g9Y G5KWUA21t9KHSaeNOSS2EaLrDMWm9UbKdorXWvNm6Epl0hZwS+gjB8AP4C5D/0pJJK0g Cr7EeL1r63T7lPH6hEf3r3N6GIIzEgf5RGbSE4vtEetA3WNGCE8R7b5aZDKF3px0Nr2w t62DG7ircgXfLmXgAFQytR+9OVw/+qqMfYWuRj1jrTiuJ10ges/v5KIqX2j1SjtimSuo 3X7O6F0C2X5MMKeKGjf2qf8M+bWjidbH6iCJO+zuYVi0fvVe4EvP3ztVKi3mpSRj9Vl8 zLSA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=ZFAPeMcl; 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 h1si19160668ejf.90.2021.08.09.19.39.49; Mon, 09 Aug 2021 19:39:50 -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=@gmail.com header.s=20161025 header.b=ZFAPeMcl; 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 21DDC6899E0; Tue, 10 Aug 2021 05:39:45 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f172.google.com (mail-qk1-f172.google.com [209.85.222.172]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8E590680518 for ; Tue, 10 Aug 2021 05:39:38 +0300 (EEST) Received: by mail-qk1-f172.google.com with SMTP id a19so20827177qkg.2 for ; Mon, 09 Aug 2021 19:39:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=iJqqyi/LwbF9B9cgGrZSr9nLojIjiasQQjIv/axy1Eo=; b=ZFAPeMcle8JxX1c3Ht50kztPiIY3AT5sRYYi/YzXcZ/oYgNfzVGt/uc94Sr0C+TD2c /M1pzX/zSGtxr4RrYsEOPR1uqtRpHABhTIznKonVSFcVSyHlBbbJ6noYZG/MUgBtpFLW ygDI08uvhnNRMAIB16qoSaS9uFHBDtv6Kw4E+MAEoUjsYqxoYpYQSqwdkZpCGcQn4cwf F0mjw+HhPenpWVcKSk2JUg2HITBamFlc/vopBCPQ48BNqVK5W9ZdRmaFCg79NPnoKbys yVQbuaAno4MF7chUrmCF8K3gxdXm6lFdsX4KH7aputBs17jKsJraubjXCxhzPT2TZHu5 yVaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=iJqqyi/LwbF9B9cgGrZSr9nLojIjiasQQjIv/axy1Eo=; b=RfnnREbBp1z0Ip+KNF/ThCdFd7SKyxbHCedmDofDLxEYUdnip+A44twNG6kUFMm3Cp xw0GtuHeoRRq3jVzdtscTLxN0kzIClhgjSum2rOGXPz1FiVoY74dDmFxeWlx7A7U7D4o bXZa9k3mR7QQoFCISwtstRvvqz0c4D04ZB9eTdTrWKqdq1IboORNh7oUurFkBjVBAdHf lCYPepHOupmo2I5Qjn9vjQl3jatdJp1d5q1BCRVaOmOnI16xoqVUot890ypmaXYa4DIP xxtoAaEPM7fj9W+cJ2gCqmKBi8YvmkxLgvqrXUSEPi3C9R3oZ44BAbGO9CHTR8frcU7Y ku+Q== X-Gm-Message-State: AOAM533lXFjw6Yi4VYHpIbKVQZZtN8hwJWDSxY1j4Ll8E0CLDMhpzDio GxaAc/fNWCmxGqWgbAyJcg6xZUBgy6U= X-Received: by 2002:a05:620a:12bc:: with SMTP id x28mr26065239qki.419.1628563176231; Mon, 09 Aug 2021 19:39:36 -0700 (PDT) Received: from HOME-PC.localdomain (pool-108-4-218-68.phlapa.fios.verizon.net. [108.4.218.68]) by smtp.gmail.com with ESMTPSA id y26sm494459qkm.65.2021.08.09.19.39.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Aug 2021 19:39:35 -0700 (PDT) From: Ameer J To: ffmpeg-devel@ffmpeg.org Date: Mon, 9 Aug 2021 22:37:54 -0400 Message-Id: <20210810023754.2905-1-ameer.jalil6@gmail.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] libavcodec/nvdec: Do not exceed 32 surfaces when initializing hw_frames_ctx 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 Cc: ameerj <52414509+ameerj@users.noreply.github.com> Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: yEhcxlJg8rsk From: ameerj <52414509+ameerj@users.noreply.github.com> nvdec is likely to fail when the initial pool size exceeds 32. This change ensures we don't exceed the limit when initializing a new hw_frames_ctx Signed-off-by: ameerj <52414509+ameerj@users.noreply.github.com> --- libavcodec/nvdec.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libavcodec/nvdec.c b/libavcodec/nvdec.c index 251be039a8..bef33dbae9 100644 --- a/libavcodec/nvdec.c +++ b/libavcodec/nvdec.c @@ -303,8 +303,10 @@ static int nvdec_init_hwframes(AVCodecContext *avctx, AVBufferRef **out_frames_r frames_ctx = (AVHWFramesContext*)(*out_frames_ref)->data; if (dummy) { - // Copied from ff_decode_get_hw_frames_ctx for compatibility - frames_ctx->initial_pool_size += 3; + // The function above guarantees 1 work surface, We must guarantee 4 work surfaces. + // (the absolute minimum), so add the missing count without exceeding the maximum + // recommended for nvdec. + frames_ctx->initial_pool_size = min(frames_ctx->initial_pool_size + 3, 32); frames_ctx->free = nvdec_free_dummy; frames_ctx->pool = av_buffer_pool_init(0, nvdec_alloc_dummy);