From patchwork Sat Dec 28 23:55:12 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 17030 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 1F7F8448B82 for ; Sun, 29 Dec 2019 01:55:50 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 01A0D68ABA8; Sun, 29 Dec 2019 01:55:50 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pj1-f53.google.com (mail-pj1-f53.google.com [209.85.216.53]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7804A68AB36 for ; Sun, 29 Dec 2019 01:55:42 +0200 (EET) Received: by mail-pj1-f53.google.com with SMTP id j11so6342149pjs.1 for ; Sat, 28 Dec 2019 15:55:42 -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=oGtNfQSjigCo+5UmhAs9NseXYZbrADXdMdswtGPh0Ww=; b=GY0RjmDbOHDt4sdOdIgPyrK4tYo8D6/wNb/fWUjVg0cNKmyusyTH/I84ZczCzYrDP9 U+eWec0dJfkOH5iqb8MLbAYYAX4x5yF3w6b6xHZ98JREr2MCl8uGceZ4kw3AKkOIAWUO Tj5OnojkeSZ3ij49708ZrQiRZnkpPbgm5sErjoAtQQgiW2Dks1rm3fI7oyBxowY0oad6 CfyOqM4K0w5J1eDsuG5gULubdgeb81a3lfyNt3TMrpeO+FQFgo4YfVobmmAmNDo974Id 48gZGJA6QOw7vJbV8bc0lfOhqqM0vXmaHPTDolx/1NG4knROPwK4sqS9nwxlmH81lo6K SxZw== 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=oGtNfQSjigCo+5UmhAs9NseXYZbrADXdMdswtGPh0Ww=; b=XHOlrjHNEz6UKhM5LWZDJdzU0UXHdmfXRaSx0e8hNu2YYTHQ1Pv2sLb3iHDWGumKse G5WcJrTA88yhyCMYlRspzhqPvNfD1z9gCH5ucgJ5SL880qpIMxaSdCnFr/7H7vnUfEEZ P5a5J0+j4E8Q1myz2eBu4VR7NpIxQGTQu8zFmhjflczuRQyhcAVOHpSsNpJHsFeoSkvN 3+zxQS2hkJFQgIuVtbuJ4aWLge05Wl/exQ1tzES3JAnZad8Hd7l85bOIxmP1TQMxSPhs p0vwPPHneMk4Apq70ONCs0uppj6nMP8+0TdSZlUQfemLJw/J255q7LvCMWIUfcdegKJo ceWA== X-Gm-Message-State: APjAAAWEctXGhUBc0WuF49EdcFcHIGLjTrWOJ6xnxSRpRZh3V4TtGnKw XuCZjRoaWRADHoHlQnATMBdZflCE X-Google-Smtp-Source: APXvYqyZxWndMFUEG61v/mgFMufy4UKuI1bTAi+M+x3sWj37LKrpWJ1wrlmI9o1we0eCS8fTKOekSA== X-Received: by 2002:a17:90a:3945:: with SMTP id n5mr35589946pjf.34.1577577338355; Sat, 28 Dec 2019 15:55:38 -0800 (PST) Received: from localhost.localdomain ([181.23.77.192]) by smtp.gmail.com with ESMTPSA id f43sm19834039pje.23.2019.12.28.15.55.36 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 28 Dec 2019 15:55:37 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Sat, 28 Dec 2019 20:55:12 -0300 Message-Id: <20191228235514.5335-1-jamrial@gmail.com> X-Mailer: git-send-email 2.24.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/3] avcodec/libx265: apply some global AVCodecContext settings to the encoder context 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" There's no reason to ignore them if set. Signed-off-by: James Almer --- doc/encoders.texi | 14 ++++++++++++++ libavcodec/libx265.c | 13 +++++++++++++ 2 files changed, 27 insertions(+) diff --git a/doc/encoders.texi b/doc/encoders.texi index a207363650..673eaf6496 100644 --- a/doc/encoders.texi +++ b/doc/encoders.texi @@ -2415,6 +2415,20 @@ during configuration. You need to explicitly configure the build with @subsection Options @table @option +@item b +Sets target video bitrate. + +@item bf + +@item g +Set the GOP size. + +@item keyint_min +Minimum GOP size. + +@item refs +Number of reference frames each P-frame can use. The range is from @var{1-16}. + @item preset Set the x265 preset. diff --git a/libavcodec/libx265.c b/libavcodec/libx265.c index 963c28fb1d..508fade98b 100644 --- a/libavcodec/libx265.c +++ b/libavcodec/libx265.c @@ -241,6 +241,15 @@ static av_cold int libx265_encode_init(AVCodecContext *avctx) if (!(avctx->flags & AV_CODEC_FLAG_GLOBAL_HEADER)) ctx->params->bRepeatHeaders = 1; + if (avctx->gop_size >= 0) + ctx->params->keyframeMax = avctx->gop_size; + if (avctx->keyint_min > 0) + ctx->params->keyframeMin = avctx->keyint_min; + if (avctx->max_b_frames >= 0) + ctx->params->bframes = avctx->max_b_frames; + if (avctx->refs >= 0) + ctx->params->maxNumReferences = avctx->refs; + if (ctx->x265_opts) { AVDictionary *dict = NULL; AVDictionaryEntry *en = NULL; @@ -556,6 +565,10 @@ static const AVClass class = { static const AVCodecDefault x265_defaults[] = { { "b", "0" }, + { "bf", "-1" }, + { "g", "-1" }, + { "keyint_min", "-1" }, + { "refs", "-1" }, { NULL }, };