From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 99C4146C18 for ; Mon, 7 Aug 2023 07:28:47 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4F0E668C5A2; Mon, 7 Aug 2023 10:28:44 +0300 (EEST) Received: from mail-ed1-f53.google.com (mail-ed1-f53.google.com [209.85.208.53]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id CB93368C334 for ; Mon, 7 Aug 2023 10:28:37 +0300 (EEST) Received: by mail-ed1-f53.google.com with SMTP id 4fb4d7f45d1cf-51a52a7d859so11087549a12.0 for ; Mon, 07 Aug 2023 00:28:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691393316; x=1691998116; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=JdkszemTTJ40WO3YElX5gt1bKTrgMlexzniU31o1KDo=; b=I1tw1nYIhmLwWcIQqQCED/DzSjpgDGle8OGrbdCJF9KO9nW/mmZnaNzyqXV0bNpZbU Y90LQzh6HIl+JQ2mnvlgo9xWqRrW+YhHtwwG92joqr7L7AxxaJh4ti6WZ9AKrFcj6tLV gjeAjg76iUDbBA2u+ZJqGdLTZasRDQRulhtEjo8g1BXlobusCYOD+xAMKGDaTqWCjKVP MUYZFclq0Jowtwuta+w/2Y6xM2Ii5nHsN/XxOMflnCmYAaD3VUcIupkwXhfjsn2nNbh2 P9Qy1gil52ZpEW1vJNVbdz7O5fqvx6dl/H3rLtAZN9nY2swcxhfRpx0u3fZeCUuebtOb kiPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691393316; x=1691998116; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=JdkszemTTJ40WO3YElX5gt1bKTrgMlexzniU31o1KDo=; b=S2axJ66cio2hr5vVVzz7M8YWXAu8pTFJwwJEn4S4zz/vKzSwHpz/h152+8vPLhqQ40 n+EN98i4oLOaW2kskzkf+G9SQ110KDqhzbC7YNULmeZ3gqcgs3pzsgr9MFVlMnM7EzWe ThWjjdVKkJ74qSMLuw3P4c0R44TZVOO76Cjkx0RmhSo898YsTcaMdxwSvRvfDEf+7NmF jbEcJv2AiXSZbRsf9YY9jIE5D+eszj35F1UMdwL42l64sHlz8ZepOaikS3OEPsCQ0v4e GERHdHp1/kC4KYLM0LK1QJMArp3xXga14Z/DoHAeQJ70QU4kKqzQO6F1+mRO+kFTJX0r jwLw== X-Gm-Message-State: AOJu0YykMSYoxB58JYmfYESmMtyUCUy5G1h3Cbu+dV20M0GMLytLXI8M 397yNgUiLscU+0wqzxa3wHEV/AK3egk= X-Google-Smtp-Source: AGHT+IHVM7pxsGaXcypoiotx67Z8esFMBxrhfB9xl6A4Z5xuwWChmzZevWlZzx/CU57Ve/UAuZmElQ== X-Received: by 2002:a17:907:1c8b:b0:992:103c:43fa with SMTP id nb11-20020a1709071c8b00b00992103c43famr7343702ejc.30.1691393316361; Mon, 07 Aug 2023 00:28:36 -0700 (PDT) Received: from mitsuki.. (ip-62-245-76-195.bb.vodafone.cz. [62.245.76.195]) by smtp.gmail.com with ESMTPSA id l7-20020a1709066b8700b0099c53c4407dsm4826417ejr.78.2023.08.07.00.28.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 07 Aug 2023 00:28:35 -0700 (PDT) From: David Rosca To: ffmpeg-devel@ffmpeg.org Date: Mon, 7 Aug 2023 09:27:54 +0200 Message-ID: <20230807072801.14703-2-nowrep@gmail.com> X-Mailer: git-send-email 2.41.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2] lavc/vaapi_encode: Add filler_data option 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: David Rosca Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: v2: Add description in encoders.texi --- doc/encoders.texi | 3 +++ libavcodec/vaapi_encode.c | 1 + libavcodec/vaapi_encode.h | 9 ++++++++- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/doc/encoders.texi b/doc/encoders.texi index 25d6b7f09e..f146942aa5 100644 --- a/doc/encoders.texi +++ b/doc/encoders.texi @@ -3963,6 +3963,9 @@ Set the allowed max size in bytes for each frame. If the frame size exceeds the limitation, encoder will adjust the QP value to control the frame size. Invalid in CQP rate control mode. +@item filler_data +Insert filler data in CBR rate control mode to ensure target bitrate. + @item rc_mode Set the rate control mode to use. A given driver may only support a subset of modes. diff --git a/libavcodec/vaapi_encode.c b/libavcodec/vaapi_encode.c index bfca315a7a..f161c76304 100644 --- a/libavcodec/vaapi_encode.c +++ b/libavcodec/vaapi_encode.c @@ -1860,6 +1860,7 @@ rc_mode_found: #if VA_CHECK_VERSION(1, 3, 0) .quality_factor = rc_quality, #endif + .rc_flags.bits.disable_bit_stuffing = !ctx->filler_data, }; vaapi_encode_add_global_param(avctx, VAEncMiscParameterTypeRateControl, diff --git a/libavcodec/vaapi_encode.h b/libavcodec/vaapi_encode.h index a1e639f56b..a2170cb8b0 100644 --- a/libavcodec/vaapi_encode.h +++ b/libavcodec/vaapi_encode.h @@ -198,6 +198,9 @@ typedef struct VAAPIEncodeContext { // Max Frame Size int max_frame_size; + // Filler Data + int filler_data; + // Explicitly set RC mode (otherwise attempt to pick from // available modes). int explicit_rc_mode; @@ -490,7 +493,11 @@ int ff_vaapi_encode_close(AVCodecContext *avctx); { "max_frame_size", \ "Maximum frame size (in bytes)",\ OFFSET(common.max_frame_size), AV_OPT_TYPE_INT, \ - { .i64 = 0 }, 0, INT_MAX, FLAGS } + { .i64 = 0 }, 0, INT_MAX, FLAGS }, \ + { "filler_data", \ + "Enable filler data", \ + OFFSET(common.filler_data), AV_OPT_TYPE_BOOL, \ + { .i64 = 1 }, 0, 1, FLAGS } #define VAAPI_ENCODE_RC_MODE(name, desc) \ { #name, desc, 0, AV_OPT_TYPE_CONST, { .i64 = RC_MODE_ ## name }, \ -- 2.41.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".