From patchwork Sun Mar 27 18:02:10 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Jan_Ekstr=C3=B6m?= X-Patchwork-Id: 35002 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:6d9d:b0:79:214c:b845 with SMTP id gl29csp3954486pzb; Sun, 27 Mar 2022 11:02:32 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxh3JgRQy0L1HtrnlZkDu1PhmoVYLg34SjYIdQqXFTtj2383Ehoc6QEvw4kenEJCF1qCwvB X-Received: by 2002:aa7:de93:0:b0:418:d700:662a with SMTP id j19-20020aa7de93000000b00418d700662amr11401205edv.107.1648404151893; Sun, 27 Mar 2022 11:02:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1648404151; cv=none; d=google.com; s=arc-20160816; b=vLuYqae/zSPfB5mYwwoBtKZ8psHno6h/vXowFQSLBmdRKTZZlhztuwFLRE1+dMG2BL FgdS9pGN9p0y56D4R7Byn3hj1ls3eBcZ1XmSqhpz71uW845ATeTjyVmpZZjFBnkQtJ4w MVQ5NktxUK0TWPMbf8PTRzMG7RV0KLhDCxwXQBr8HaE7ZQ9/8yvlg9DL4z/ObDX8Or5W TqYhl991EoK0bbWtnAfZdqgxVPXLauDSkRC11fFCQ7lqgVZpMfVIthXNRyETCTNRKl+Z zsIcCFvrE/kGToUaqNdhCqRo/ynSLJXOji2RBLWLgEdlRtQulNeLA9sZ9k/lmJHkf190 Epsg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=gGhzyTZ+5XIDleqUtbJHtlZlAFIDkbTXzsHxiKqiFvA=; b=XQs+K5Lf7FBg3FipYw0e+/h+3JUy/tmwUOoesUrJr46N9zI2KJ2oK2nNuA2BGCrDF/ 8aX52kFQX98VELBRNXmpYpl5d8DJF9jNu5L3IzYiS4WXHUmFTOzm2m3bgKuWog2S6BkX DqRgINCFDfo8ZZLFqKvZeDjH7WYpJA6B31R2Opo/IjkNxDwY5zB7g7B/LjPoZjxJ9GO7 Iqyn+PZ39ffphU7rGB+STYxUhzxlF6tUcFglXffAx5fkE6BrTtMVVMhM/m8+Z1qZjyUN eZN/E97yoWxsf3y95FJD1XLDMGc2EQTyACYDkYRXj0xJu3Il53nqeJ0JLbKJUnNrrCfp 48NA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=GtF5nlIm; 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; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id z5-20020a170906434500b006df76385e7asi10067563ejm.794.2022.03.27.11.02.30; Sun, 27 Mar 2022 11:02:31 -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=@gmail.com header.s=20210112 header.b=GtF5nlIm; 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; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 536AB68B251; Sun, 27 Mar 2022 21:02:25 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-lj1-f178.google.com (mail-lj1-f178.google.com [209.85.208.178]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0D56D68B148 for ; Sun, 27 Mar 2022 21:02:18 +0300 (EEST) Received: by mail-lj1-f178.google.com with SMTP id bn33so16420974ljb.6 for ; Sun, 27 Mar 2022 11:02:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=RkPPAirslhtOAbc7NJXrkNG2q6oRMocPmATBwdBbiWg=; b=GtF5nlImY9xpESp9gazSobh6t0yrH73yW/MigfXabPYJvb3NEFAShFnlcZ6CC0TzlE j2zLrlyt4N9uC5uXluLDlRKjTlgPYB9buGVB4mHI3EknOl6qb/hyvUgMRLmCZ1ZsjJXU ohSswvQrofcK7UYvyydn2R+NrNsmcpAEMuRAlQKp/mdG9YYc/if39xWfRGZ7+PE4Mnk/ Oh92UA9d57v9wtCtYGKIi3qMJ3deCidMVhSxeSKXHnldM8NOxn+5+gZY4GaSziRtqjRR J8vhQaiEUK89XW4nxWKm1U1krZKIkYYdiKX1PFPAFKHF4hW9uMPU7wjvEgEUyNhKxlVj PTXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=RkPPAirslhtOAbc7NJXrkNG2q6oRMocPmATBwdBbiWg=; b=U6Ea7W050z4nVtqcCCt/ApnXKmx53DuDa5Tv+DaJqBiCZCGjOMcalqwt9Xhr4me7Ml L8V038i1jNr3J63RHRi2rICZG5i542lsiibnn4ZPNXRZKHr/Y7BNnFgsfjqbuiG/23PD tpo5/k/+mnnqEv+hxEUHwryJq5mq2ApqAYO/hE3Dy+MvW+s8T70ewbW+qryMAxnFMCWO BkujYuV/vz9efu+rl7kLx6Mh6e/py8olTXXzINZzrvcHrOlxNlBqIbFG1RgtlJMh4ToH i0Q1bzoTBVuiUBsj1Z9aQPT6XpYy9Z+UmDGJbwUhkc78dh/qPA54DwZ/iyNeiDiRBQpt D60Q== X-Gm-Message-State: AOAM530tLE+17XETJ10cI6f5jhwHVYsdaoOFxBYMjwfmC+9AuwoZLvAW mGNSE5eIRewFMR6w3wO3MkH+QyTqKNY= X-Received: by 2002:a2e:b5b3:0:b0:249:80b6:f53e with SMTP id f19-20020a2eb5b3000000b0024980b6f53emr16859061ljn.82.1648404137124; Sun, 27 Mar 2022 11:02:17 -0700 (PDT) Received: from localhost.localdomain (91-153-198-187.elisa-laajakaista.fi. [91.153.198.187]) by smtp.gmail.com with ESMTPSA id w13-20020a2e998d000000b002496199495csm1477934lji.55.2022.03.27.11.02.16 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 27 Mar 2022 11:02:16 -0700 (PDT) From: =?utf-8?q?Jan_Ekstr=C3=B6m?= To: ffmpeg-devel@ffmpeg.org Date: Sun, 27 Mar 2022 21:02:10 +0300 Message-Id: <20220327180211.12038-1-jeebjp@gmail.com> X-Mailer: git-send-email 2.35.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/2] avcodec/libsvtav1: signal CPB properties through side data 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: gLRIr/YdDTGr This way values such as maxrate/bufsize can be utilized further down the chain. The libavcodec values are utilized instead of from the encoder configuration struct since: 1) both utilize bits per second, so no loss of precision occured. 2) the struct defaults various values to nonzero - even though it is documented to be unused outside of bit rate based rate control modes. --- libavcodec/libsvtav1.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/libavcodec/libsvtav1.c b/libavcodec/libsvtav1.c index 6cf280377e..d89fefdf4c 100644 --- a/libavcodec/libsvtav1.c +++ b/libavcodec/libsvtav1.c @@ -156,6 +156,9 @@ static int config_enc_params(EbSvtAv1EncConfiguration *param, SvtContext *svt_enc = avctx->priv_data; const AVPixFmtDescriptor *desc; AVDictionaryEntry *en = NULL; + AVCPBProperties *cpb_props = ff_add_cpb_side_data(avctx); + if (!cpb_props) + return AVERROR(ENOMEM); // Update param from options #if FF_API_SVTAV1_OPTS @@ -191,6 +194,10 @@ static int config_enc_params(EbSvtAv1EncConfiguration *param, param->enable_adaptive_quantization = 0; } + cpb_props->buffer_size = avctx->rc_buffer_size; + cpb_props->max_bitrate = avctx->rc_max_rate; + cpb_props->avg_bitrate = avctx->bit_rate;; + #if SVT_AV1_CHECK_VERSION(0, 9, 1) while ((en = av_dict_get(svt_enc->svtav1_opts, "", en, AV_DICT_IGNORE_SUFFIX))) { EbErrorType ret = svt_av1_enc_parse_parameter(param, en->key, en->value);