From patchwork Fri Feb 23 23:21:39 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cosmin Stejerean X-Patchwork-Id: 46501 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:c51b:b0:19e:cdac:8cce with SMTP id gm27csp186199pzb; Fri, 23 Feb 2024 15:21:52 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCW5a8uvmw6PzuCI/2UTxLsBxCjox0toVha9pdORs4bDcST76or9y7X1ab/z8SZO/gr0SrLtt50tLuexAZIofSSY8qRyxjB0Orochw== X-Google-Smtp-Source: AGHT+IGYnxDdbTL5Ol8tuA/a93g9SjmZMDx14LIgQ7NldpdZKd6Ljgg6RAqVw/QWqKTZSlSow5Gu X-Received: by 2002:a17:906:309b:b0:a3e:21f5:7af6 with SMTP id 27-20020a170906309b00b00a3e21f57af6mr641461ejv.3.1708730512663; Fri, 23 Feb 2024 15:21:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1708730512; cv=none; d=google.com; s=arc-20160816; b=iEV3Q/sIObAj8HLuARDJbr3rvwiv4JJ70NmqqkUAi7VhAu7InkqrQqmA70R6CRSTgi dzCR7gsu6FiqmFnh44JHzMdOhHfRPC+dy2lS1z2dlWg9WckC/EkUi9bGEMv0EPHN2wfG 8jmkWIPcgYGpdBfRThvcNk6d1tdWxroZNkhYeZiwKBaQySRvHiat/Sm3NkaNj5RfgWmP CnGEfsxRs0CNrNguZ95pCvLyR3rhR8H/q9kod9RRVG63Jh7Z9pwAbVvXmUtLIFBag9lC 7yE1jM/B8WIBaYi1XvN/gXeQBOJJVJr9EiuPXkW/97vqGEjQXRPHBHJLmN5uLGhN4z7D +J4Q== 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:from :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:feedback-id:message-id:thread-topic :thread-index:references:mime-version:date:to:delivered-to; bh=J1rVrEH2Hehdje38DH0R8vT58nLaPZU7sQueWi905Oc=; fh=CBS/D0cB4KwqFBY8d8UQ4TY1w6HZ9TulitLE+VqI2+k=; b=UNRxti9te/c2wDm0v9FlXzUtd+69TeJdtw7IS8pCp9jmhaIE5/t5P8e/ic6ch0EUes PWCmKYi9wEaJ5BKZnpdfj6cF7GomKvDOyuTdpHuIln6hCjF7PZ4BMO9M1vazbW3leWU4 zRPzU4+GvdbJwQrl8H42X2jHJSW42enlr9nOWWRIkkCKUt3gSlOdCFSlDOuQ06J02pHN 6dQqvuMok0qY1NhQPWyzlKEv5u37FyLY1rAnQ9MIcsaM2csWukxGX8lBciN0Jin+Pq5+ g/BhDIsVIImESQlJuVa2NKKf46tag86omrulKi2QrDHhuAICeJ3jlviL/HUU1Y2i446n GFhw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; 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 qf14-20020a1709077f0e00b00a3e61a1938esi35373ejc.681.2024.02.23.15.21.52; Fri, 23 Feb 2024 15:21:52 -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; 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 153A368C620; Sat, 24 Feb 2024 01:21:49 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from a27-212.smtp-out.us-west-2.amazonses.com (unknown [54.240.27.212]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 67A5B68BFA9 for ; Sat, 24 Feb 2024 01:21:42 +0200 (EET) To: =?utf-8?q?ffmpeg-devel=40ffmpeg=2Eorg?= Date: Fri, 23 Feb 2024 23:21:39 +0000 Mime-Version: 1.0 References: <20240223232136.49044-1-cosmin@cosmin.at> X-Mailer: Amazon WorkMail Thread-Index: AQHaZq8N9eR+9wxbRd+6BX94XWPlHw== Thread-Topic: [PATCH] avcodec/libsvtav1: send the EOS signal without a one frame delay to allow for the library to operate in a low-delay mode X-Original-Mailer: git-send-email 2.42.1 X-Wm-Sent-Timestamp: 1708730499 Message-ID: <0101018dd846432e-958ca9e5-663b-43aa-96b1-8bc9fc5d938c-000000@us-west-2.amazonses.com> Feedback-ID: 1.us-west-2.An468LAV0jCjQDrDLvlZjeAthld7qrhZr+vow8irkvU=:AmazonSES X-SES-Outgoing: 2024.02.23-54.240.27.212 Subject: [FFmpeg-devel] [PATCH] avcodec/libsvtav1: send the EOS signal without a one frame delay to allow for the library to operate in a low-delay mode 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: , X-Patchwork-Original-From: Cosmin Stejerean via ffmpeg-devel From: Cosmin Stejerean Reply-To: FFmpeg development discussions and patches Cc: =?utf-8?q?Cosmin_Stejerean?= Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: I5aWZLv4Vi/n From: Cosmin Stejerean Co-authored-by: Amir Naghdinezhad Signed-off-by: Cosmin Stejerean --- libavcodec/libsvtav1.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/libavcodec/libsvtav1.c b/libavcodec/libsvtav1.c index 3b41f5a39e..1eda63200c 100644 --- a/libavcodec/libsvtav1.c +++ b/libavcodec/libsvtav1.c @@ -539,6 +539,14 @@ static int eb_receive_packet(AVCodecContext *avctx, AVPacket *pkt) if (svt_ret == EB_NoErrorEmptyQueue) return AVERROR(EAGAIN); +#if SVT_AV1_CHECK_VERSION(2, 0, 0) + if (headerPtr->flags & EB_BUFFERFLAG_EOS) { + svt_enc->eos_flag = EOS_RECEIVED; + svt_av1_enc_release_out_buffer(&headerPtr); + return AVERROR_EOF; + } +#endif + ref = get_output_ref(avctx, svt_enc, headerPtr->n_filled_len); if (!ref) { av_log(avctx, AV_LOG_ERROR, "Failed to allocate output packet.\n"); @@ -573,8 +581,10 @@ static int eb_receive_packet(AVCodecContext *avctx, AVPacket *pkt) if (headerPtr->pic_type == EB_AV1_NON_REF_PICTURE) pkt->flags |= AV_PKT_FLAG_DISPOSABLE; +#if !(SVT_AV1_CHECK_VERSION(2, 0, 0)) if (headerPtr->flags & EB_BUFFERFLAG_EOS) svt_enc->eos_flag = EOS_RECEIVED; +#endif ff_side_data_set_encoder_stats(pkt, headerPtr->qp * FF_QP2LAMBDA, NULL, 0, pict_type);