From patchwork Tue Apr 5 14:20:46 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Danil Chapovalov X-Patchwork-Id: 35216 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:c05:b0:7a:e998:b410 with SMTP id bw5csp328762pzb; Tue, 5 Apr 2022 07:21:29 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzR0rsfmGecKpVJZ1rfHK6lzpQ6xMCLFiVudJYNo+fyS0d81u46Upe+7Hg3IEd9zkJ2+kbd X-Received: by 2002:a05:6402:3712:b0:416:13bf:4fc5 with SMTP id ek18-20020a056402371200b0041613bf4fc5mr3880331edb.115.1649168489172; Tue, 05 Apr 2022 07:21:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1649168489; cv=none; d=google.com; s=arc-20160816; b=CBKPvzIGScwQbkTO8RuHV0TeYHi4M01WS6KMC0tZvAMn9UfutHIwct/DpTqq+GhhwZ NlTK/lCn7M62QXhL/XV3wywcT6/kVB0G4YI3V73xTwbNG3no7/WEWKZTyCCMaMFEmKKW BfgDimYQdRecexSSIve7HO4Qwi99LtV1/LKQRagnlHhYqUMvGBFxWgOhv3uCS/O+KcCI vZEXEcvZRnYcJRQalNnj9x+eK76AT2ojiLsu1HUfrcnJn17lynMHlkbJ/EBeBk4N1azO Cn7prw1HUBYyyAKYLE3QO9R88r94KsQmiPep1hPFpoum9E2uYtym7MWdSiPMRKnubLLd Y7Bg== 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:to:from:references:mime-version :message-id:in-reply-to:date:dkim-signature:delivered-to; bh=hH5I2zo/Np00UPqOsvs/XS3kWm9ZQlviRXYt12gusmg=; b=McXrdRVw/+Zn5O7aW5H54rX/23znxMtxKPYUAPrNsmwk3wqBXJnu9sUGefFVLDNzIX +dmMIjd45V+NmiSwL/61tOQx38RuI80KTDkVrXEBt3i6B016MtmvGxFTS6R8r8BdqnZj ZZ1kWYYTMCC7Ii3cWMTgHu/BzuBPnllV/3MDRtSklpGBpTbYrp2L6WlQ7nVzAJoHYqa3 bhfJgcNWdMEOxy9x3QbS+f60NYQM1qA0t2K0EoEgXGQCX7bJkHAB8mjd8SGLt74wUaGi Q98/94kVs3kqSnqWFWd3qCa8CoZUPF1iCiSre3GWkUGvWgQiNO6WGYNO3j2NA0wxoV2Q NPgg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@google.com header.s=20210112 header.b=nXKWMTpW; 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 w15-20020a509d8f000000b00418c2b5bd47si9100432ede.41.2022.04.05.07.21.05; Tue, 05 Apr 2022 07:21:29 -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=@google.com header.s=20210112 header.b=nXKWMTpW; 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 1268468B1AC; Tue, 5 Apr 2022 17:21:03 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-lj1-f201.google.com (mail-lj1-f201.google.com [209.85.208.201]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C8B3668A466 for ; Tue, 5 Apr 2022 17:20:56 +0300 (EEST) Received: by mail-lj1-f201.google.com with SMTP id w17-20020a05651c103100b0024986ae896fso3918389ljm.10 for ; Tue, 05 Apr 2022 07:20:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=aTUJ4X/zULqcipS7Ko9txE7Q8mrY/2XbzivAJX7S1S0=; b=nXKWMTpWqhzjgfCkjqC/AGHvzuZIZ8pe6xr0q8FX0nQcvXisxdP1EyW8WFurOWJ9Uv kaBVjstUe/HPyacZ8ANhS35eNckts4AJNuXEP2z+FLofmHVZJg+egYxzF/I/1CmatzS7 3I0oob0ONz0VVupM3rERp81fRo0042sibmOJd6Kmil9U4dApj+SvQAeNaJFeqEFe8ZSC N0pjkx7SO65QSHZoXqa5IsAtE8TbsjqzeyoIQuwrW1Eu8+FxZJSe2dss9lGrOm8Cg8sH xYtS3tgvIx0PVO0qYcjn5y2oRfLwtEUL+CZrO7eGWd2rCN4CMVp+ZEm6OK+BNyBZgqi4 eG4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=aTUJ4X/zULqcipS7Ko9txE7Q8mrY/2XbzivAJX7S1S0=; b=zc8FJHgi+mcr4hLQCaXY72f7oelCoRkndSOlfym/Rs6MeDc5OEP+Unq+OnJbY8Gskl 7x5yf6FLO6rOp0CFDf56jfgztebdSGDQtR251P8M5yIAq9S+Zt4YOmYUjCbZhLpsXECU QSTdPvBB7WpoTLnWDcI8ANYsgaBh5r+c7M6mxvPHJc8SED0UvGQK8C/QZpozxlW+ipoB Ks/h9Nq6l45KxmFriULa573rL02S0q3e5NPLVmpjW5LDlaluY6l7Z/yFM5KdSdikKztc GdggVj/vOWWvvojdG27SToMZ+GTXhU7lyWyrSLOgjmuNZZ6uPXdvup738ZTlCNx5/Y+j v7OQ== X-Gm-Message-State: AOAM5313yHm7Vw/rCFGS5rakehJJjLyaDhPn8hCYXeTykJPCUENJpwgj U4nQOJnH9SRR58PvjKmQ/U8W8nGii6TWfvOdfWBSRT3jRo+T7y/vfnJ1wVdbMcY51bn9HE6VnMz ul5ZRC1J3SRMUroYaUW3akiOvRNVbuZDh4zNIehgHEsf3HuR1vvA8hhfNteuDcC0NVlb8oZE= X-Received: from danilchap1.sto.corp.google.com ([2620:0:1043:12:482e:a52:8adb:40ef]) (user=danilchap job=sendgmr) by 2002:a05:6512:34d0:b0:44a:6d14:5019 with SMTP id w16-20020a05651234d000b0044a6d145019mr2768782lfr.632.1649168455878; Tue, 05 Apr 2022 07:20:55 -0700 (PDT) Date: Tue, 5 Apr 2022 16:20:46 +0200 In-Reply-To: <093841fd-5360-1f93-309d-f9cdf1643613@gmail.com> Message-Id: <20220405142046.1934500-1-danilchap@google.com> Mime-Version: 1.0 References: <093841fd-5360-1f93-309d-f9cdf1643613@gmail.com> X-Mailer: git-send-email 2.35.1.1094.g7c7d902a7c-goog From: Danil Chapovalov To: ffmpeg-devel@ffmpeg.org Subject: [FFmpeg-devel] [PATCH] avcodec/libvpxenc: return quantizer parameter for an encoded frame 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: Danil Chapovalov Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: IsHHbRinyoFC --- libavcodec/libvpxenc.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/libavcodec/libvpxenc.c b/libavcodec/libvpxenc.c index dff1d06b0e..b1d56d99b7 100644 --- a/libavcodec/libvpxenc.c +++ b/libavcodec/libvpxenc.c @@ -1250,6 +1250,8 @@ static int storeframe(AVCodecContext *avctx, struct FrameListData *cx_frame, int ret = ff_get_encode_buffer(avctx, pkt, cx_frame->sz, 0); uint8_t *side_data; int pict_type; + int quality; + VPxContext *ctx = avctx->priv_data; if (ret < 0) return ret; @@ -1264,7 +1266,10 @@ static int storeframe(AVCodecContext *avctx, struct FrameListData *cx_frame, pict_type = AV_PICTURE_TYPE_P; } - ff_side_data_set_encoder_stats(pkt, 0, cx_frame->sse + 1, + ret = vpx_codec_control(&ctx->encoder, VP8E_GET_LAST_QUANTIZER_64, &quality); + if (ret != VPX_CODEC_OK) + quality = 0; + ff_side_data_set_encoder_stats(pkt, quality * FF_QP2LAMBDA, cx_frame->sse + 1, cx_frame->have_sse ? 3 : 0, pict_type); if (cx_frame->have_sse) {