From patchwork Tue Apr 5 12:15:39 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Danil Chapovalov X-Patchwork-Id: 35209 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:c05:b0:7a:e998:b410 with SMTP id bw5csp261128pzb; Tue, 5 Apr 2022 05:16:34 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzTizdYuDP9TnvRaxDfa+MyI89T0QAEYnYgJpfkCxNgDg0DdT2jAhi64b4VaKRlp3LjMbhi X-Received: by 2002:a17:907:8a1c:b0:6df:ecd6:b6ea with SMTP id sc28-20020a1709078a1c00b006dfecd6b6eamr3234526ejc.530.1649160993766; Tue, 05 Apr 2022 05:16:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1649160993; cv=none; d=google.com; s=arc-20160816; b=IgN+ZspUrmxTO5O1jf0ywjmGw+oitHpFvtXUILO+rSQZ9RAJ8KKQvYEXjv5kGmGcbm MEMGkXohr7mjQY9CWYImcbQLLBig2xo1am79+Yf0Jb/hhUB2lbK6R7Zs1WNIHvCRLHEY teMSypDWS6kuvZf1eq93Pmebiik7JQ18+XeIR7WT+X9tjKzcDt4rMjiMuL/nrJ0uXX/4 GSzQij6x9MVuBmPy8Dsrs7nLrmupF1sg1veJRIZIVX2VikdsqS1YEUo/hy4X4+f4Gd7b yimo9ZcRG/w2L8sXcbhM5vgR/X/EnULBGzcox2+6tbILU67jiDYlL2nNMOeKsh/BLonk KOaA== 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=8r93PX1XFW3P0P/+E8E7IJ/X0HhdVuYPDoeZSEp660A=; b=e0J7vnxtn4i4OR84RMqgHtbmNJeqzOzlERfjYNXpD+PTdEhxvFoLkYS7MzWWwIi0M+ M8i9SP+kcu2KyyzaO5HD9e8tFDyNE1TbWPwsC+cRqHsat3TWlHBp8ziPh+T98sbmZZfK C8lSRaJttqsPr6G/g5FtZ+3Z+4pQTW2f/ZWCI97Qg1qQumolAHda8AQFUsSnOKYQEUHS yZPeeyREys1KgIRM5wgLwMZg9xt/+QvjZG5jplyLt+PkXSxMEYIKyjcWiNVsbN/Siz+9 S8Iy9YcxqSj2N8GQMUXKjYJgei42++Wr/WxWJS5nqE5N4OySgM2v2Dmu+LofVOwKi2w0 +BsQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@google.com header.s=20210112 header.b="k0itg/c2"; 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 qf38-20020a1709077f2600b006e7e84edc95si5805092ejc.297.2022.04.05.05.16.32; Tue, 05 Apr 2022 05:16:33 -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="k0itg/c2"; 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 1D6EE68B181; Tue, 5 Apr 2022 15:16:29 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-lf1-f74.google.com (mail-lf1-f74.google.com [209.85.167.74]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BD73868A77A for ; Tue, 5 Apr 2022 15:16:22 +0300 (EEST) Received: by mail-lf1-f74.google.com with SMTP id w34-20020a0565120b2200b0044adfdd1570so4320469lfu.23 for ; Tue, 05 Apr 2022 05:16:22 -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=E9gMhH6piswjkSv4eL0bujXxFk+Sjl+h6PbcIm45d1w=; b=k0itg/c2zsPbHUpIKcY1DMTHcUQNS5k7npfi4M9v5+YSuAWOjTLb+17qE5gCbLlPhY b989QsUDelRAuA+p2idtchv59NHQsDIpaHyhA+LaWDakzXexK+H05lUnFagM+weQLK8X 4JbnPQG1b4nsa3xT17mUCPhNAH8hXokXX7w3g2cTQIM/uSkA/bKSJUKxEPssyTL9pFza WZktn6o2T+E+qtzMgJby7LGsVsS6xDL8KWX+qO5BwwBCgi27slV7sZe2ZthRa57/65tC JaprNNu6SzJIAmlFW6RVj53hWrjckUIXW4KH3jp4gGpmypdbXOOSD1eh/v0gNfKy6mK+ M7ig== 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=E9gMhH6piswjkSv4eL0bujXxFk+Sjl+h6PbcIm45d1w=; b=kUeZrFMbd7yrCOFKlE6wl5uX6n7dxm61MuneiY8ziUvV4LIaxz4VUJutm+n0o5N83C JfUry6ngkl4ZjmTLjkv8FAzIOVNZ57KF292BpCmsRYRGhD6bUg6eU66SJ9V6n1QAXY0I JeffXAqq8MIyyzKB19+Om7AsaN74ltm6xYzjrUdh+/+Y3xAlsjRFxrxm0o2DUjUpQHZ3 oP9uy6XYb1CsuwSEcUI83L0pNhbzO2LApv/qrgCMchtgozrxPT1hpUDBxyZ54mN/Edbl bcLR+tYHOe2WeaidVn9iSamOldYZVZ/rdz6LIE5XuNLmMxs8BZ/uSTs3ijCYMQGNdERX BkYQ== X-Gm-Message-State: AOAM533Y0b4IfNhOCBSzr/x63zy7AEaiOR29YXgObWCuzmUHbDr2f66w 8UyKu2e56nDuCgG3RrSVQ6lL+SGbSfsjsj3JWoWd0Fc4snPxZZX3E8auRXkhxwxE+TR6qOHkmfH pMZNsDScBKLBYddlhLGpF/AbG+HfNYMiPagGwSg77/750JNZt/umatQLkh26s3a+OhTNA7DI= X-Received: from danilchap1.sto.corp.google.com ([2620:0:1043:12:482e:a52:8adb:40ef]) (user=danilchap job=sendgmr) by 2002:a2e:bf05:0:b0:247:b233:cfba with SMTP id c5-20020a2ebf05000000b00247b233cfbamr1920164ljr.131.1649160981619; Tue, 05 Apr 2022 05:16:21 -0700 (PDT) Date: Tue, 5 Apr 2022 14:15:39 +0200 In-Reply-To: <164915298959.21047.64072881760748019@lain.red.khirnov.net> Message-Id: <20220405121539.1773869-1-danilchap@google.com> Mime-Version: 1.0 References: <164915298959.21047.64072881760748019@lain.red.khirnov.net> 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: K05LewEX6AM5 --- libavcodec/libvpxenc.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/libavcodec/libvpxenc.c b/libavcodec/libvpxenc.c index dff1d06b0e..0705863450 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,12 @@ 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) {