From patchwork Sat Feb 23 00:35:28 2019 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: 12146 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 0AF81447017 for ; Sat, 23 Feb 2019 02:35:37 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E3A01689D1A; Sat, 23 Feb 2019 02:35:36 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-lf1-f48.google.com (mail-lf1-f48.google.com [209.85.167.48]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 78F36689A2A for ; Sat, 23 Feb 2019 02:35:30 +0200 (EET) Received: by mail-lf1-f48.google.com with SMTP id m11so3036284lfc.6 for ; Fri, 22 Feb 2019 16:35:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=hQkBGeat3xbXL/UGAHfx2BCH5YxPXaNa+9ZNzi27s6k=; b=UXSAeWCRsBn/qEtz+khZ4kC9WUgMsLkxj1YvyEDz1VoCa58+ALCRs0bRE5igNJ3Pw/ BleiNT9wn4Us08VwSlmIXobf80IonSAsHzkYDzwVcgIqjEM3Vdsd+yScO/1bosnXXeXk dxf23afVcRzkvVrFeDKNl27G5joo2zMfjF+uP3jdxmqHA6PX2Q147MlcbYOK2RiXI5o9 CG/he0YMtu/6WytUqdi6hexJ4cpkbHN/2Vdfabmj0B0vR9QCRpwxIpVVDVRHXpO9a5UQ ZmImlH/C7XPtMTznBFiH/8aBt8iY60CPWcWpt+SlxlMCUiMuUUf2eW/lSaQxK9xaIeS3 2Yvw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=hQkBGeat3xbXL/UGAHfx2BCH5YxPXaNa+9ZNzi27s6k=; b=YnpEZ3/c2hIh7fjC8aTJpuPIMRS7dy3uPG+g8CjkgIsGoafR0odY5G5kw0FUz/hOc9 xUHEMUiZv0BSydgX+mMnk6egQyPYAMTlKuq4G6lKrzE9RAzsFa489/EGG71A/MfjKZ6P sqzTTH8pzz7/Zrl3O0XyFziRq+JChjQdQeVFyjBvvw6jKfjZmIQ6+TAVBJI0bnskKIwa kIj2pNUDmUu8ym1dIBA7BGYRNFTWQ5+80r4Fli1S264J9qpWm4TNfGyikz2wX9t+vcgl O2Y9qslWIWBFYkDlXPT2zMvE981ahK27NbNpAeffgGR+06O9mRGmrYjXJGrAhJg7VSt2 8oAQ== X-Gm-Message-State: AHQUAuZugKS0M8uF9n6LihoIYz1z7Yd2mZHXxBpTjUBIkjEj3Mx3MTJ7 1AMclHMFgPyhgaf8ZV4EwsOWpyIr X-Google-Smtp-Source: AHgI3Ib3h0xF4j3qVeQUkBkPC6FPYYgr+dWCwoygTnjYiss16AuIuQVH/YCX22z+ag14/99vqzNaKg== X-Received: by 2002:a19:f01a:: with SMTP id p26mr382923lfc.163.1550882129363; Fri, 22 Feb 2019 16:35:29 -0800 (PST) Received: from localhost.localdomain (91-159-194-103.elisa-laajakaista.fi. [91.159.194.103]) by smtp.gmail.com with ESMTPSA id e72sm952562lfg.48.2019.02.22.16.35.28 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 22 Feb 2019 16:35:28 -0800 (PST) From: =?UTF-8?q?Jan=20Ekstr=C3=B6m?= To: ffmpeg-devel@ffmpeg.org Date: Sat, 23 Feb 2019 02:35:28 +0200 Message-Id: <20190223003528.16182-1-jeebjp@gmail.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] lavc/libx265: signal CPB properties through side data X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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" This way values such as maxrate/bufsize can be utilized further down the chain. --- libavcodec/libx265.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libavcodec/libx265.c b/libavcodec/libx265.c index 98415366da..fe39f45241 100644 --- a/libavcodec/libx265.c +++ b/libavcodec/libx265.c @@ -79,6 +79,7 @@ static av_cold int libx265_encode_close(AVCodecContext *avctx) static av_cold int libx265_encode_init(AVCodecContext *avctx) { libx265Context *ctx = avctx->priv_data; + AVCPBProperties *cpb_props = NULL; ctx->api = x265_api_get(av_pix_fmt_desc_get(avctx->pix_fmt)->comp[0].depth); if (!ctx->api) @@ -208,6 +209,13 @@ static av_cold int libx265_encode_init(AVCodecContext *avctx) ctx->params->rc.vbvBufferSize = avctx->rc_buffer_size / 1000; ctx->params->rc.vbvMaxBitrate = avctx->rc_max_rate / 1000; + cpb_props = ff_add_cpb_side_data(avctx); + if (!cpb_props) + return AVERROR(ENOMEM); + cpb_props->buffer_size = ctx->params->rc.vbvBufferSize * 1000; + cpb_props->max_bitrate = ctx->params->rc.vbvMaxBitrate * 1000; + cpb_props->avg_bitrate = ctx->params->rc.bitrate * 1000; + if (!(avctx->flags & AV_CODEC_FLAG_GLOBAL_HEADER)) ctx->params->bRepeatHeaders = 1;