From patchwork Fri Jul 7 21:31:03 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Lemler X-Patchwork-Id: 42527 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:6d25:b0:130:f365:34ad with SMTP id fv37csp107479pzb; Fri, 7 Jul 2023 14:31:21 -0700 (PDT) X-Google-Smtp-Source: APBJJlEVWl2dIDhC7yBFRWRE/bxHicrRmwmHJWHK5aFiQDWHT1zPfwaueA78NMuq1cBrvDMg4fug X-Received: by 2002:a17:907:a420:b0:982:26c5:6525 with SMTP id sg32-20020a170907a42000b0098226c56525mr5380301ejc.60.1688765481300; Fri, 07 Jul 2023 14:31:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688765481; cv=none; d=google.com; s=arc-20160816; b=z/ODf+Gc4xx8PGxHOX4MlAKA3CUEyz1WlLZn1lJjkvnAQEVv/pcpqxLzcRqb9gDzYn Giau98RvEAjUXssgRSM8UA/pBpLS5Umg5fIreVwFQ1jX8ILbNzOmF0/4iFYOI9bPAA8M y8VpKpLFGwn7nYcvIYacA72MA2cs3yPrGp/h9VcS5iP28VTvvQjnNyxvgy/TyRklsbxq 51ieSwa5+88dLqVbMZRcGkXRowlIpCGGA8SJFhpZJ3jLqCtrceVfHBE5os7ApczhLeew mDQJgMolipNIkj52tCC3+bk6t8cvPucmTelH7d5jt1ipqv4z5YdIPZ7Iv56+jJNJ0lo5 M7aw== 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:thread-index:content-language:mime-version :message-id:date:in-reply-to:to:from:dkim-signature:delivered-to; bh=xPNm2c6Azg0Z7UY7bB8CQ0ZWOYjA5j7qpAmaCB1qkdQ=; fh=NKup8XMqH+X4C6NIkb3rYlxm7+tsdWfO5fCzT9q5yuk=; b=JDVzZ7lpVDvU952FBygCtJDZVhVcywAUkX5CtR1xBWuvU+rADVX9kcZksptywfqzP3 G+laSQfhVPJI27cLK2vijIMHErHrVmc4lG1qU2QY5STSwBy33kOzcPe4M3nZwSNkVuo/ OhOk4XqLeZmNnlOC//jdIhLc8sgt6LfY30Nn/Rfv+KvHFLEIzCzxVIDzf+Dvz6sPOCrF 5Agd4NnkeUvxqFpH+KSn0dgUrlgTybaOdVjECv2YIkAIKER5n2DDvqLESQmX0uhe8kM5 aGJkEndu7/28illePHSIfqNIejZY7mXfOrVNygvD6iRJ3zFpYP3wh7O3x3qsVXcpzh9v YKxQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@lemler.family header.s=default header.b=C6WNpqL1; 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=lemler.family Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id gf21-20020a170906e21500b0098d7390816asi2630423ejb.756.2023.07.07.14.31.18; Fri, 07 Jul 2023 14:31:21 -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=@lemler.family header.s=default header.b=C6WNpqL1; 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=lemler.family Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B7C0668C6D5; Sat, 8 Jul 2023 00:31:14 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from MTA-10-4.privateemail.com (mta-10-4.privateemail.com [198.54.122.149]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6893A68C4BC for ; Sat, 8 Jul 2023 00:31:07 +0300 (EEST) Received: from mta-10.privateemail.com (localhost [127.0.0.1]) by mta-10.privateemail.com (Postfix) with ESMTP id 9309D1800235 for ; Fri, 7 Jul 2023 17:31:04 -0400 (EDT) Received: from EAS-08 (unknown [10.50.14.246]) by mta-10.privateemail.com (Postfix) with ESMTPA id 6D982180021D for ; Fri, 7 Jul 2023 17:31:04 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=lemler.family; s=default; t=1688765464; bh=Nvw+iczDpSShf1aDi9fWPesmWcKyMm6OBT0zTYCLFok=; h=From:To:In-Reply-To:Subject:Date:From; b=C6WNpqL1nxOqwy2oGHlxVC/Dh9ZqmR95OfdxbTCG0T9j0vZIoL7wzIZk43752Sm16 NpXcuHWEnxX2a7aNFJUdVu6NDKqjvvzDCFbmiVb4CwllHgaHccElNIOH+CundECUc0 yx1V97jIoRHX5CkK6KSg1BIbUZyRLaT7syd1cGFxhGjDhWUJ81fsPjuLrQ8PBmyE// R8njppp7X7Q/pUI39ub44VxYcwZlDmIEzVbdv4FK+niIARCgd0Ze+mmjOGlabmQACz dUVW6apAl/MM0Q6rlW/MVrfeTmOiMACDVk21GNREMZIVfFe9OO5BU0uOa1p8hVfpk2 He5Z52inN5vTQ== X-Header: Open-Xchange USM Mailer (USM Version: 7.10.6-4, EAS Version: 7.10.6-6, Build e35e63b749ebb3437d8208dad0793e43aace07d1) From: David Lemler To: ffmpeg-devel@ffmpeg.org In-Reply-To: Date: Fri, 7 Jul 2023 16:31:03 -0500 Message-ID: <1338627269.18082.1688765464391@localhost> MIME-Version: 1.0 X-Mailer: Open-Xchange Mailer v7.10.6-Rev47 Content-Language: en-us Thread-Index: AdmxGNjfoJbNxJAaTMm3jp5EcLW99Q== X-Originating-Client: USM-EAS X-Virus-Scanned: ClamAV using ClamSMTP Subject: [FFmpeg-devel] [PATCH] lavc/libvpxenc: prevent fifo from filling up 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: VUD+U+InYiHQ Prevent the fifo used in encoding VPx videos from filling up and stopping encode when it reaches 21845 items, which happens when the video has more than that number of frames. Incorporated suggestion from James Zern to prevent calling frame_data_submit() at all when performing the first pass of a 2-pass encode so the fifo is not filled at all; replaces original patch which drained the fifo after filling to prevent it from becoming full. Fixes the regression originally introduced in 5bda4ec6c3cb6f286bb40dee4457c3c26e0f78cb Co-authored-by: James Zern Signed-off-by: David Lemler --- libavcodec/libvpxenc.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) // this is for encoding with preset temporal layering patterns defined in diff --git a/libavcodec/libvpxenc.c b/libavcodec/libvpxenc.c index 8833df2d68..549ac55aaa 100644 --- a/libavcodec/libvpxenc.c +++ b/libavcodec/libvpxenc.c @@ -1780,9 +1780,11 @@ static int vpx_encode(AVCodecContext *avctx, AVPacket *pkt, } } - res = frame_data_submit(avctx, ctx->fifo, frame); - if (res < 0) - return res; + if (!(avctx->flags & AV_CODEC_FLAG_PASS1)) { + res = frame_data_submit(avctx, ctx->fifo, frame); + if (res < 0) + return res; + } }