From patchwork Thu Mar 24 17:25:24 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Danil Chapovalov X-Patchwork-Id: 34952 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:ab0:5fda:0:0:0:0:0 with SMTP id g26csp1183346uaj; Thu, 24 Mar 2022 10:26:14 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy2ibh3BC+qvBMBW5Ne5vgVN7tmtLxzfbekJm1G0BwvhP+pFAC1y7WLayp3ZJcgmWZVSE66 X-Received: by 2002:a17:906:16cc:b0:6ce:e607:ff02 with SMTP id t12-20020a17090616cc00b006cee607ff02mr6957749ejd.418.1648142774322; Thu, 24 Mar 2022 10:26:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1648142774; cv=none; d=google.com; s=arc-20160816; b=Er23IwEk+X3MNIP7aLaTIsg1ywDIb4av/X4+VXCldbvKN/lw3Cmn7VxqZn2v7bxCWW ag9DG/aOgFIZWzua4hb9Z3BmbKZvVxahMtx8dKTNAED8jVTWB8Ba0J8oAyBV1fNDjOJn Th21w+mTXwH4PfRgLFqAskIYcS5ZxAV+jWkfyXCJR7GVsGR4+DAodjLjZ/a5ExnFji/O wDun8pyc3psNMBPlUvTIDBpbM3kCmg2doBqeC/MoPJcXyxyX3uDyt1qVdw3uFoK54bYV iwEp4bjUq9DSP/woLwvpyeecaeG6jMqanXk8yMPFkuGj+s+oNtVfSEbp3qMbxnhnfmmA O/Sw== 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:mime-version:message-id:date :dkim-signature:delivered-to; bh=xPMKwr5O6VrTBnUUDPohJZRdQqWuoCy+adGWzViA04c=; b=ngjKmwJ6GE53ECfIJtLMVMl8xOI84KDt7VxaViyBBL8X7Y+W2DULsIMddXc0o3UxDO d6/aYgxFmieDxk3yigrI3DQydZ1/7Vhk/126bj/RxumkQXbKv4m2nSIKRp7kUksIWw0+ EPToGb/o4oJO33zu575JW94Qtr1zpyrJtGdAPMuYZMv5G6bDfwrX1JmlBbg+IdRYJouL GJRGKQrN3ja0FI9Ay26OWxi/hg6tHCtXnCcIoQ8Kp2zBONEIzbDGA9QyOj8QpQcxjZiW EdsUl43rauX7NJHs8e33weWxfuufth5pLT+kWCDVlrkB6BoMU/cv/95AybdcTwM1NfB2 8Pcg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@google.com header.s=20210112 header.b=ruGyfEF+; 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 jt2-20020a170906ca0200b006df76385bf6si11909ejb.150.2022.03.24.10.26.13; Thu, 24 Mar 2022 10:26:14 -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=ruGyfEF+; 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 4486768B174; Thu, 24 Mar 2022 19:26:09 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-lj1-f202.google.com (mail-lj1-f202.google.com [209.85.208.202]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A00BF68A318 for ; Thu, 24 Mar 2022 19:26:02 +0200 (EET) Received: by mail-lj1-f202.google.com with SMTP id w17-20020a05651c103100b0024986ae896fso2084068ljm.10 for ; Thu, 24 Mar 2022 10:26:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=date:message-id:mime-version:subject:from:to:cc; bh=sE+5m1etnqNP4bOvglYHRG/Hl9sdVwRjP6u2naUrqLs=; b=ruGyfEF+GNTZIw+oVDTBXZkCsGsmU64pVWUHN309Blpwh/b9ey0dcmBZAgDBrYmUwD 6usCny4l9KsCo/6jpRJhYbtauCtr4vQzDc0hb6CmbabU9spDM5VS9jIoGes6zFuCwXnk 2rAsQMJOraotwj07+wzftrFZPri2RoOTUJuTjRgBfw011Mgu79LYlqAprkLUaKN7gg3A w5LnDF2ZQu7NsaY/3raTbMgYQ7JtxSBJ8AyRzEuPjWK+DbuU4/2jJVjP5ewPnB3rLGOX lgjZxWwYthe2wTwry0BY/p1LRaYku/XNGjnS1lIvzpcUuQaMHejvAoRHbeTVZcEq5bzE AWrg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:message-id:mime-version:subject:from:to:cc; bh=sE+5m1etnqNP4bOvglYHRG/Hl9sdVwRjP6u2naUrqLs=; b=ftmbvYsdDt3nwSBj8z9jEnr6TA1xKRGmEu8UYXP0xMda459qNvaXNBJX3E6mki4wTk VKkFPdb6ZAAllO/9ROqRPVd00asuXpNItvuCMrzALNir3eRTR88WQi3+wAQKkR1V5QgE yDZ2r9Qvn4n0Fy8gMc8LfNtaxndg1CryoLZedIX9k/wRDry7S/rveiDN0UiSYuukUVNq fhESRVAxXqhcRJ+l2kkgYrH/MzsyZlU7Mg/3Px4JsI+S9Qs/kWIsC5vbWdTNK+W6IH5k C/asPckQ1mvFejjzy2GI1al5aRvf6a7dXIsKJ4TD7AmQ1Ix5c1TzwnN6zKnmtqNR0iBY Ie8A== X-Gm-Message-State: AOAM530AuuIF/u7BneQOnvJxfO4qXG4xgn5qctv+5BogCti90W7ktFyL H6c4A3TlJuvrCECAngm6VreY9RcYbKyf9Wo7KbcEJbC+RtXZXKTGSM8U7r3pDfQBgS2x/rE0iPq 3na+r6qfW5z8KVGA27MKC3d1dTvDUqSxzg2yVh3HQAOF8e5zdWHdRHJpT4x6uzkWt9Xtu6Tc= X-Received: from danilchap1.sto.corp.google.com ([2620:0:1043:12:5425:9c6f:f3e5:b674]) (user=danilchap job=sendgmr) by 2002:a05:651c:a0d:b0:249:b2ad:bfde with SMTP id k13-20020a05651c0a0d00b00249b2adbfdemr1579900ljq.234.1648142761505; Thu, 24 Mar 2022 10:26:01 -0700 (PDT) Date: Thu, 24 Mar 2022 18:25:24 +0100 Message-Id: <20220324172524.1191986-1-danilchap@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.35.1.1021.g381101b075-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: gCGmsnFBHKoX --- libavcodec/libvpxenc.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/libavcodec/libvpxenc.c b/libavcodec/libvpxenc.c index dff1d06b0e..5db31db5dc 100644 --- a/libavcodec/libvpxenc.c +++ b/libavcodec/libvpxenc.c @@ -1250,6 +1250,7 @@ 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; if (ret < 0) return ret; @@ -1264,7 +1265,13 @@ 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(&((VPxContext *)avctx->priv_data)->encoder, + VP8E_GET_LAST_QUANTIZER_64, &quality); + if (ret != VPX_CODEC_OK) { + quality = 0; + } + + ff_side_data_set_encoder_stats(pkt, quality, cx_frame->sse + 1, cx_frame->have_sse ? 3 : 0, pict_type); if (cx_frame->have_sse) {