From patchwork Mon Mar 14 13:04:59 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Danil Chapovalov X-Patchwork-Id: 34723 Delivered-To: andriy.gelman@gmail.com Received: by 2002:a02:cdd1:0:0:0:0:0 with SMTP id m17csp2166205jap; Mon, 14 Mar 2022 06:05:19 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw6VRWwTCodTI067ReEeoN3CLo/bBzsZr4hCBOJdNYEl6verWUPUBG/+1eD4XQlT+s9VT/v X-Received: by 2002:a05:6402:5173:b0:415:f1e2:8d53 with SMTP id d19-20020a056402517300b00415f1e28d53mr20375914ede.95.1647263119562; Mon, 14 Mar 2022 06:05:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647263119; cv=none; d=google.com; s=arc-20160816; b=uQX4HEFapV3YT0meeBaoVLz/I4p4LKxRTMo6Fij7d/V8n8ms8X3XV3gj/n83gRf+K+ a8swxWYHKIfKTKS6XLcVnd1eB2TwoqYgb5NVytwa3qo9qdHIhfrIUxOKeA255OhgbTSl 9YdqFgicEG48puY75G7EdQ/Y56ZFS9sx4UjssU+Tvv+n0//Ic7FRKHB5R66ISwt/iU54 yRuhMS6sQrhjaxyJLSd4pJI24Ykvsb3t7R+TB0bc+imQHUsgK1KlHd5/i4Tl+NXBPwYv iFTIzh1sSHzsQwP/Oep1A1STV9jZ/JLYKzGrG8f6ZIkLyCD+BjgVKZ2409/HupaSO3eD BCWg== 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=9lh2tO6DHyIsblNNZp4B6e8C7qixVK+a6qVOaxRkKxo=; b=YrS4MOlYdLS6EqvVt9yM4CCCgDzHvwkka86PKhtPkpty3RplRQHa1zZlbE4ZLuIYJi H6kquyT/34ZYeGcA/8qjbR8HB7orGZL6YGcIEpcmj6NsSEI0Vm4ms851J2syXvYJciqC lvoOp13vfK9aDgnrWlz/5MuqC0bpeW4nwmYgD4L/LX5M/T/oE1b/b48x3gqckBvblyOv rWBZFJMexEwFaBkyQpyaXTFByoAhjQpzygpKgrDGkS4LpzGZMRxoTROleXAk9+vUbZvk +cDCrruIiVeHstC7wCCuUHEljIfgeK+kIuZyaSw56jZZQQWcvRpumaZkHIZKbrZDxiIF 4gtQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@google.com header.s=20210112 header.b="lCy8/y1s"; 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 i2-20020a170906a28200b006bafdc159cfsi8982836ejz.276.2022.03.14.06.05.17; Mon, 14 Mar 2022 06:05:19 -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="lCy8/y1s"; 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 DD79868B19D; Mon, 14 Mar 2022 15:05:12 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-lf1-f73.google.com (mail-lf1-f73.google.com [209.85.167.73]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D073A68B13D for ; Mon, 14 Mar 2022 15:05:06 +0200 (EET) Received: by mail-lf1-f73.google.com with SMTP id h21-20020a056512221500b0044859ece797so4051742lfu.15 for ; Mon, 14 Mar 2022 06:05:06 -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=AjNSMkN7EXxqPzXvPWeSoCiwOFJseYdgFNp12MdD5bI=; b=lCy8/y1sBQK+6VIu57IpE0i+pFcHPw9SvjtLDtq7CfaKi9AqJyDdagCuWMR5dvJ5Q6 zFkYBGDHV/ENW+QowrppI2u8gAFjOMB+YHQWc5PcdQMkI5tbJZTs1r4CuOwjboE41cIs RCM0zQ0xVEb0CQ5aTVfTooVC5qSCohOJ1pBzsPo9KT2SVatXSre40vhdk5s/EaCjYzI2 QPHtMCERH2BUVOe02sUZ7GONmtfOnGQ7FKrhV5Qy1mDeBTdhmClLHbvadv36wT2shotJ Egi+P3DM/rv7c5gjqeXT0THjPxu50CFxylcKKSTgZtHcfYvB5BHo8gNTWPtU37xD7ij1 yTlQ== 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=AjNSMkN7EXxqPzXvPWeSoCiwOFJseYdgFNp12MdD5bI=; b=OZRCS9OOxQvZLAPm5zGSnj3WgvsLTHZPNUnwFagDsFpr4CZlLRokHNOa3YWpaAFftm UFIa5rJ7sKyxBlpcHuoLcki8/ftYDI8I44sSe8r1pALlcT8T3y9WuTIe+iNsIpKwdwZs yI0t9ikbM0uU39lNI8z89uPC0lmLn2vYezNgDeZf/eLhyn/jpdTq2N+GBsff/x0XGJF/ /jAHmoZSfRJtBj44Lt+LLWdJ6NDniV3JJBdSxJGGQBz/n/D6j2cBDkYUnWFl8vkMR3/N cTc5PXZO0FBDpGpdVcP7uPf/U/vJGMbOpjrfUhzcBRROPpFRN6pOzg7Mqoway+8fEYmW /Tpw== X-Gm-Message-State: AOAM532U2CDKOpP3r1GjhCdsPfHRl8wY5Y8jmEje0BxFICpcb6WHnQPB A4hgGrD/vFDnUqj7X32g+OWjI2gidIrLMWN8db2Ts5pWe/LxQP7XkAk/ydWn7R6zkyrI0wYIuP4 9ygxW7TaGce/mz+7Zk/m+z8BzwF6GUp/HDWxSHSHDTu0O2UMcyhUoCBgCItxMRjmCWMtRsbQ= X-Received: from danilchap1.sto.corp.google.com ([2620:0:1043:12:258d:240d:ac3e:65ab]) (user=danilchap job=sendgmr) by 2002:a05:651c:1a22:b0:249:1ef2:e4c7 with SMTP id by34-20020a05651c1a2200b002491ef2e4c7mr9443436ljb.15.1647263105673; Mon, 14 Mar 2022 06:05:05 -0700 (PDT) Date: Mon, 14 Mar 2022 14:04:59 +0100 Message-Id: <20220314130459.88494-1-danilchap@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.35.1.723.g4982287a31-goog From: Danil Chapovalov To: ffmpeg-devel@ffmpeg.org Subject: [FFmpeg-devel] [PATCH] Allow to modify max qp configuration parameter in libvpx without reseting the encoder 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: IR/TXnL/LlXR Content-Length: 1101 --- libavcodec/libvpxenc.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/libavcodec/libvpxenc.c b/libavcodec/libvpxenc.c index 8f94ba15dc..45baeed435 100644 --- a/libavcodec/libvpxenc.c +++ b/libavcodec/libvpxenc.c @@ -1658,6 +1658,13 @@ static int vpx_encode(AVCodecContext *avctx, AVPacket *pkt, flags |= strtoul(en->value, NULL, 10); } + en = av_dict_get(frame->metadata, "max-quantizer", NULL, 0); + if (en) { + struct vpx_codec_enc_cfg cfg = *enccfg; + cfg.rc_max_quantizer = strtoul(en->value, NULL, 10); + vpx_codec_enc_config_set(&ctx->encoder, &cfg); + } + memset(&layer_id, 0, sizeof(layer_id)); en = av_dict_get(frame->metadata, "temporal_id", NULL, 0);