summaryrefslogtreecommitdiff
path: root/vpx/vpx_ext_ratectrl.h
diff options
context:
space:
mode:
authorCheng Chen <chengchen@google.com>2022-06-24 11:57:42 -0700
committerCheng Chen <chengchen@google.com>2022-06-27 13:58:54 -0700
commitec58d55c3af91f9db2511fb872bdc19868cbed92 (patch)
tree68d5e2ba3af4921a2bf24d23ec99d24e4a2686a0 /vpx/vpx_ext_ratectrl.h
parent08b86d76224453ef9cbab4b10a48617715d9a14e (diff)
downloadlibvpx-ec58d55c3af91f9db2511fb872bdc19868cbed92.tar
libvpx-ec58d55c3af91f9db2511fb872bdc19868cbed92.tar.gz
libvpx-ec58d55c3af91f9db2511fb872bdc19868cbed92.tar.bz2
libvpx-ec58d55c3af91f9db2511fb872bdc19868cbed92.zip
L2E: Distinguish fixed and active gf_interval
min/max_gf_interval is fixed and can be passed from the command line. It must satisfy the level constraints. active_min/max_gf_interval might be changing based on min/max_gf_interval. It is determined per GOP. Change-Id: If456c691c97a8b4c946859c05cedd39ca7defa9c
Diffstat (limited to 'vpx/vpx_ext_ratectrl.h')
-rw-r--r--vpx/vpx_ext_ratectrl.h16
1 files changed, 15 insertions, 1 deletions
diff --git a/vpx/vpx_ext_ratectrl.h b/vpx/vpx_ext_ratectrl.h
index b57148c69..c3309b0f2 100644
--- a/vpx/vpx_ext_ratectrl.h
+++ b/vpx/vpx_ext_ratectrl.h
@@ -25,7 +25,7 @@ extern "C" {
* types, removing or reassigning enums, adding/removing/rearranging
* fields to structures.
*/
-#define VPX_EXT_RATECTRL_ABI_VERSION (4)
+#define VPX_EXT_RATECTRL_ABI_VERSION (5)
/*!\brief The control type of the inference API.
* In VPX_RC_QP mode, the external rate control model determines the
@@ -287,6 +287,10 @@ typedef struct vpx_rc_config {
typedef struct vpx_rc_gop_info {
/*!
* Minimum allowed gf interval, fixed for the whole clip.
+ * Note that it will be modified to match vp9's level constraints
+ * in the encoder.
+ * The level constraint is defined in vp9_encoder.c:
+ * const Vp9LevelSpec vp9_level_defs[VP9_LEVELS].
*/
int min_gf_interval;
/*!
@@ -294,6 +298,16 @@ typedef struct vpx_rc_gop_info {
*/
int max_gf_interval;
/*!
+ * Minimum allowed gf interval for the current GOP, determined
+ * by the encoder.
+ */
+ int active_min_gf_interval;
+ /*!
+ * Maximum allowed gf interval for the current GOP, determined
+ * by the encoder.
+ */
+ int active_max_gf_interval;
+ /*!
* Whether to allow the use of alt ref, can be changed per gop.
*/
int allow_alt_ref;