vpx_ext_ratectrl.h
Go to the documentation of this file.
/*
* Copyright (c) 2020 The WebM project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#ifndef VPX_VPX_VPX_EXT_RATECTRL_H_
#define VPX_VPX_VPX_EXT_RATECTRL_H_
#ifdef __cplusplus
extern "C" {
#endif
#include "./vpx_integer.h"
#include "./vpx_tpl.h"
#define VPX_EXT_RATECTRL_ABI_VERSION (7 + VPX_TPL_ABI_VERSION)
#define VPX_RC_MAX_STATIC_GF_GROUP_LENGTH 250
#define VPX_RC_MAX_REF_FRAMES 4
typedef enum vpx_rc_type {
VPX_RC_NONE = 0,
VPX_RC_QP = 1 << 0,
VPX_RC_GOP = 1 << 1,
VPX_RC_RDMULT = 1 << 2,
VPX_RC_GOP_QP = VPX_RC_QP | VPX_RC_GOP,
VPX_RC_GOP_QP_RDMULT = VPX_RC_QP | VPX_RC_GOP | VPX_RC_RDMULT
} vpx_rc_type_t;
typedef enum vpx_ext_rc_mode {
VPX_RC_QMODE = 0,
VPX_RC_VBR = 1,
VPX_RC_CQ = 2,
} vpx_ext_rc_mode_t;
typedef enum vpx_rc_frame_update_type {
VPX_RC_INVALID_UPDATE_TYPE = -1,
VPX_RC_KF_UPDATE = 0,
VPX_RC_LF_UPDATE = 1,
VPX_RC_GF_UPDATE = 2,
VPX_RC_ARF_UPDATE = 3,
VPX_RC_OVERLAY_UPDATE = 4,
VPX_RC_MID_OVERLAY_UPDATE = 5,
VPX_RC_USE_BUF_FRAME = 6,
} vpx_rc_frame_update_type_t;
typedef enum vpx_rc_ref_name {
VPX_RC_INVALID_REF_FRAME = -1,
VPX_RC_INTRA_FRAME = 0,
VPX_RC_LAST_FRAME = 1,
VPX_RC_GOLDEN_FRAME = 2,
VPX_RC_ALTREF_FRAME = 3,
} vpx_rc_ref_name_t;
typedef void *vpx_rc_model_t;
#define VPX_DEFAULT_Q -1
#define VPX_DEFAULT_RDMULT -1
typedef struct sb_parameters {
int q_index;
int rdmult;
} sb_params;
typedef struct vpx_rc_encodeframe_decision {
int q_index;
int rdmult;
int delta_q_uv;
sb_params *sb_params_list;
} vpx_rc_encodeframe_decision_t;
typedef struct vpx_rc_encodeframe_info {
int frame_type;
int show_index;
int coding_index;
int gop_index;
int ref_frame_coding_indexes[3];
int ref_frame_valid_list[3];
int gop_size;
int use_alt_ref;
} vpx_rc_encodeframe_info_t;
typedef struct vpx_rc_encodeframe_result {
int64_t bit_count;
int actual_encoding_qindex;
} vpx_rc_encodeframe_result_t;
typedef enum vpx_rc_status {
VPX_RC_OK = 0,
VPX_RC_ERROR = 1,
} vpx_rc_status_t;
typedef struct vpx_rc_frame_stats {
double frame;
double weight;
double intra_error;
double coded_error;
double sr_coded_error;
double frame_noise_energy;
double pcnt_inter;
double pcnt_motion;
double pcnt_second_ref;
double pcnt_neutral;
double pcnt_intra_low;
double pcnt_intra_high;
double intra_skip_pct;
double intra_smooth_pct;
double inactive_zone_rows;
double inactive_zone_cols;
double MVr;
double mvr_abs;
double MVc;
double mvc_abs;
double MVrv;
double MVcv;
double mv_in_out_count;
double duration;
double count;
double new_mv_count;
} vpx_rc_frame_stats_t;
typedef struct vpx_rc_firstpass_stats {
vpx_rc_frame_stats_t *frame_stats;
int num_frames;
} vpx_rc_firstpass_stats_t;
typedef struct vpx_rc_config {
int frame_width;
int frame_height;
int show_frame_count;
int max_gf_interval;
int min_gf_interval;
int target_bitrate_kbps;
int frame_rate_num;
int frame_rate_den;
vpx_ext_rc_mode_t rc_mode;
int overshoot_percent;
int undershoot_percent;
int min_base_q_index;
int max_base_q_index;
int base_qp;
} vpx_rc_config_t;
typedef struct vpx_rc_ref_frame {
int index[VPX_RC_MAX_REF_FRAMES];
vpx_rc_ref_name_t name[VPX_RC_MAX_REF_FRAMES];
} vpx_rc_ref_frame_t;
typedef struct vpx_rc_gop_decision {
int gop_coding_frames;
int use_alt_ref;
int use_key_frame;
vpx_rc_frame_update_type_t update_type[VPX_RC_MAX_STATIC_GF_GROUP_LENGTH + 2];
int update_ref_index[VPX_RC_MAX_STATIC_GF_GROUP_LENGTH + 2];
vpx_rc_ref_frame_t ref_frame_list[VPX_RC_MAX_STATIC_GF_GROUP_LENGTH + 2];
} vpx_rc_gop_decision_t;
typedef struct vpx_rc_key_frame_decision {
int key_frame_show_index;
int key_frame_group_size;
} vpx_rc_key_frame_decision_t;
typedef vpx_rc_status_t (*vpx_rc_create_model_cb_fn_t)(
void *priv, const vpx_rc_config_t *ratectrl_config,
vpx_rc_model_t *rate_ctrl_model_ptr);
typedef vpx_rc_status_t (*vpx_rc_send_firstpass_stats_cb_fn_t)(
vpx_rc_model_t rate_ctrl_model,
const vpx_rc_firstpass_stats_t *first_pass_stats);
typedef vpx_rc_status_t (*vpx_rc_send_tpl_gop_stats_cb_fn_t)(
vpx_rc_model_t rate_ctrl_model, const VpxTplGopStats *tpl_gop_stats);
typedef vpx_rc_status_t (*vpx_rc_get_encodeframe_decision_cb_fn_t)(
vpx_rc_model_t rate_ctrl_model, const int frame_gop_index,
vpx_rc_encodeframe_decision_t *frame_decision);
typedef vpx_rc_status_t (*vpx_rc_update_encodeframe_result_cb_fn_t)(
vpx_rc_model_t rate_ctrl_model,
const vpx_rc_encodeframe_result_t *encode_frame_result);
typedef vpx_rc_status_t (*vpx_rc_get_key_frame_decision_cb_fn_t)(
vpx_rc_model_t rate_ctrl_model,
vpx_rc_key_frame_decision_t *key_frame_decision);
typedef vpx_rc_status_t (*vpx_rc_get_gop_decision_cb_fn_t)(
vpx_rc_model_t rate_ctrl_model, vpx_rc_gop_decision_t *gop_decision);
typedef vpx_rc_status_t (*vpx_rc_get_frame_rdmult_cb_fn_t)(
vpx_rc_model_t rate_ctrl_model, const vpx_rc_encodeframe_info_t *frame_info,
int *rdmult);
typedef vpx_rc_status_t (*vpx_rc_delete_model_cb_fn_t)(
vpx_rc_model_t rate_ctrl_model);
typedef struct vpx_rc_funcs {
vpx_rc_type_t rc_type;
vpx_rc_create_model_cb_fn_t create_model;
vpx_rc_send_firstpass_stats_cb_fn_t send_firstpass_stats;
vpx_rc_send_tpl_gop_stats_cb_fn_t send_tpl_gop_stats;
vpx_rc_get_encodeframe_decision_cb_fn_t get_encodeframe_decision;
vpx_rc_update_encodeframe_result_cb_fn_t update_encodeframe_result;
vpx_rc_get_key_frame_decision_cb_fn_t get_key_frame_decision;
vpx_rc_get_gop_decision_cb_fn_t get_gop_decision;
vpx_rc_get_frame_rdmult_cb_fn_t get_frame_rdmult;
vpx_rc_delete_model_cb_fn_t delete_model;
const char *rate_ctrl_log_path;
void *priv;
} vpx_rc_funcs_t;
#ifdef __cplusplus
} // extern "C"
#endif
#endif // VPX_VPX_VPX_EXT_RATECTRL_H_
VpxTplGopStats
Temporal dependency model stats for each GOP before propagation.
Definition vpx_tpl.h:60
sb_parameters
Superblock quantization parameters Store the superblock quantization parameters.
Definition vpx_ext_ratectrl.h:138
sb_parameters::q_index
int q_index
Definition vpx_ext_ratectrl.h:139
sb_parameters::rdmult
int rdmult
Definition vpx_ext_ratectrl.h:140
vpx_rc_config
Encode config sent to external rate control model.
Definition vpx_ext_ratectrl.h:367
vpx_rc_config::min_base_q_index
int min_base_q_index
Definition vpx_ext_ratectrl.h:386
vpx_rc_config::frame_height
int frame_height
Definition vpx_ext_ratectrl.h:369
vpx_rc_config::max_base_q_index
int max_base_q_index
Definition vpx_ext_ratectrl.h:387
vpx_rc_config::frame_width
int frame_width
Definition vpx_ext_ratectrl.h:368
vpx_rc_config::show_frame_count
int show_frame_count
Definition vpx_ext_ratectrl.h:370
vpx_rc_config::overshoot_percent
int overshoot_percent
Definition vpx_ext_ratectrl.h:384
vpx_rc_config::base_qp
int base_qp
Definition vpx_ext_ratectrl.h:388
vpx_rc_config::max_gf_interval
int max_gf_interval
Definition vpx_ext_ratectrl.h:371
vpx_rc_config::undershoot_percent
int undershoot_percent
Definition vpx_ext_ratectrl.h:385
vpx_rc_config::target_bitrate_kbps
int target_bitrate_kbps
Definition vpx_ext_ratectrl.h:376
vpx_rc_config::rc_mode
vpx_ext_rc_mode_t rc_mode
Definition vpx_ext_ratectrl.h:383
vpx_rc_config::frame_rate_num
int frame_rate_num
Definition vpx_ext_ratectrl.h:377
vpx_rc_config::min_gf_interval
int min_gf_interval
Definition vpx_ext_ratectrl.h:372
vpx_rc_config::frame_rate_den
int frame_rate_den
Definition vpx_ext_ratectrl.h:378
vpx_rc_encodeframe_decision
Encode frame decision made by the external rate control model.
Definition vpx_ext_ratectrl.h:148
vpx_rc_encodeframe_decision::rdmult
int rdmult
Definition vpx_ext_ratectrl.h:150
vpx_rc_encodeframe_decision::q_index
int q_index
Definition vpx_ext_ratectrl.h:149
vpx_rc_encodeframe_decision::delta_q_uv
int delta_q_uv
Definition vpx_ext_ratectrl.h:151
vpx_rc_encodeframe_decision::sb_params_list
sb_params * sb_params_list
Definition vpx_ext_ratectrl.h:157
vpx_rc_encodeframe_info
Information for the frame to be encoded.
Definition vpx_ext_ratectrl.h:166
vpx_rc_encodeframe_info::show_index
int show_index
Definition vpx_ext_ratectrl.h:175
vpx_rc_encodeframe_info::coding_index
int coding_index
Definition vpx_ext_ratectrl.h:176
vpx_rc_encodeframe_info::ref_frame_coding_indexes
int ref_frame_coding_indexes[3]
Definition vpx_ext_ratectrl.h:181
vpx_rc_encodeframe_info::ref_frame_valid_list
int ref_frame_valid_list[3]
Definition vpx_ext_ratectrl.h:187
vpx_rc_encodeframe_info::gop_index
int gop_index
Definition vpx_ext_ratectrl.h:180
vpx_rc_encodeframe_info::frame_type
int frame_type
Definition vpx_ext_ratectrl.h:174
vpx_rc_encodeframe_info::use_alt_ref
int use_alt_ref
Definition vpx_ext_ratectrl.h:195
vpx_rc_encodeframe_info::gop_size
int gop_size
Definition vpx_ext_ratectrl.h:191
vpx_rc_encodeframe_result
Frame coding result.
Definition vpx_ext_ratectrl.h:203
vpx_rc_encodeframe_result::actual_encoding_qindex
int actual_encoding_qindex
Definition vpx_ext_ratectrl.h:205
vpx_rc_encodeframe_result::bit_count
int64_t bit_count
Definition vpx_ext_ratectrl.h:204
vpx_rc_firstpass_stats
Collection of first pass frame stats.
Definition vpx_ext_ratectrl.h:352
vpx_rc_firstpass_stats::frame_stats
vpx_rc_frame_stats_t * frame_stats
Definition vpx_ext_ratectrl.h:358
vpx_rc_firstpass_stats::num_frames
int num_frames
Definition vpx_ext_ratectrl.h:362
vpx_rc_frame_stats
First pass frame stats This is a mirror of vp9's FIRSTPASS_STATS except that spatial_layer_id is omit...
Definition vpx_ext_ratectrl.h:219
vpx_rc_frame_stats::mvr_abs
double mvr_abs
Definition vpx_ext_ratectrl.h:312
vpx_rc_frame_stats::duration
double duration
Definition vpx_ext_ratectrl.h:338
vpx_rc_frame_stats::pcnt_intra_low
double pcnt_intra_low
Definition vpx_ext_ratectrl.h:273
vpx_rc_frame_stats::inactive_zone_cols
double inactive_zone_cols
Definition vpx_ext_ratectrl.h:304
vpx_rc_frame_stats::weight
double weight
Definition vpx_ext_ratectrl.h:230
vpx_rc_frame_stats::MVr
double MVr
Definition vpx_ext_ratectrl.h:308
vpx_rc_frame_stats::mv_in_out_count
double mv_in_out_count
Definition vpx_ext_ratectrl.h:334
vpx_rc_frame_stats::inactive_zone_rows
double inactive_zone_rows
Definition vpx_ext_ratectrl.h:300
vpx_rc_frame_stats::frame
double frame
Definition vpx_ext_ratectrl.h:224
vpx_rc_frame_stats::new_mv_count
double new_mv_count
Definition vpx_ext_ratectrl.h:347
vpx_rc_frame_stats::intra_error
double intra_error
Definition vpx_ext_ratectrl.h:234
vpx_rc_frame_stats::frame_noise_energy
double frame_noise_energy
Definition vpx_ext_ratectrl.h:246
vpx_rc_frame_stats::pcnt_neutral
double pcnt_neutral
Definition vpx_ext_ratectrl.h:265
vpx_rc_frame_stats::MVc
double MVc
Definition vpx_ext_ratectrl.h:316
vpx_rc_frame_stats::mvc_abs
double mvc_abs
Definition vpx_ext_ratectrl.h:320
vpx_rc_frame_stats::intra_smooth_pct
double intra_smooth_pct
Definition vpx_ext_ratectrl.h:296
vpx_rc_frame_stats::MVrv
double MVrv
Definition vpx_ext_ratectrl.h:324
vpx_rc_frame_stats::pcnt_motion
double pcnt_motion
Definition vpx_ext_ratectrl.h:254
vpx_rc_frame_stats::MVcv
double MVcv
Definition vpx_ext_ratectrl.h:328
vpx_rc_frame_stats::pcnt_intra_high
double pcnt_intra_high
Definition vpx_ext_ratectrl.h:281
vpx_rc_frame_stats::count
double count
Definition vpx_ext_ratectrl.h:343
vpx_rc_frame_stats::pcnt_inter
double pcnt_inter
Definition vpx_ext_ratectrl.h:250
vpx_rc_frame_stats::intra_skip_pct
double intra_skip_pct
Definition vpx_ext_ratectrl.h:289
vpx_rc_frame_stats::sr_coded_error
double sr_coded_error
Definition vpx_ext_ratectrl.h:242
vpx_rc_frame_stats::pcnt_second_ref
double pcnt_second_ref
Definition vpx_ext_ratectrl.h:260
vpx_rc_frame_stats::coded_error
double coded_error
Definition vpx_ext_ratectrl.h:238
vpx_rc_funcs
Callback function set for external rate control.
Definition vpx_ext_ratectrl.h:549
vpx_rc_funcs::send_firstpass_stats
vpx_rc_send_firstpass_stats_cb_fn_t send_firstpass_stats
Definition vpx_ext_ratectrl.h:561
vpx_rc_funcs::get_encodeframe_decision
vpx_rc_get_encodeframe_decision_cb_fn_t get_encodeframe_decision
Definition vpx_ext_ratectrl.h:569
vpx_rc_funcs::create_model
vpx_rc_create_model_cb_fn_t create_model
Definition vpx_ext_ratectrl.h:557
vpx_rc_funcs::send_tpl_gop_stats
vpx_rc_send_tpl_gop_stats_cb_fn_t send_tpl_gop_stats
Definition vpx_ext_ratectrl.h:565
vpx_rc_funcs::get_gop_decision
vpx_rc_get_gop_decision_cb_fn_t get_gop_decision
Definition vpx_ext_ratectrl.h:581
vpx_rc_funcs::rc_type
vpx_rc_type_t rc_type
Definition vpx_ext_ratectrl.h:553
vpx_rc_funcs::priv
void * priv
Definition vpx_ext_ratectrl.h:598
vpx_rc_funcs::update_encodeframe_result
vpx_rc_update_encodeframe_result_cb_fn_t update_encodeframe_result
Definition vpx_ext_ratectrl.h:573
vpx_rc_funcs::rate_ctrl_log_path
const char * rate_ctrl_log_path
Definition vpx_ext_ratectrl.h:594
vpx_rc_funcs::get_key_frame_decision
vpx_rc_get_key_frame_decision_cb_fn_t get_key_frame_decision
Definition vpx_ext_ratectrl.h:577
vpx_rc_funcs::delete_model
vpx_rc_delete_model_cb_fn_t delete_model
Definition vpx_ext_ratectrl.h:589
vpx_rc_funcs::get_frame_rdmult
vpx_rc_get_frame_rdmult_cb_fn_t get_frame_rdmult
Definition vpx_ext_ratectrl.h:585
vpx_rc_gop_decision
The decision made by the external rate control model to set the group of picture.
Definition vpx_ext_ratectrl.h:410
vpx_rc_gop_decision::use_key_frame
int use_key_frame
Definition vpx_ext_ratectrl.h:413
vpx_rc_gop_decision::use_alt_ref
int use_alt_ref
Definition vpx_ext_ratectrl.h:412
vpx_rc_gop_decision::gop_coding_frames
int gop_coding_frames
Definition vpx_ext_ratectrl.h:411
vpx_rc_gop_decision::ref_frame_list
vpx_rc_ref_frame_t ref_frame_list[250+2]
Definition vpx_ext_ratectrl.h:423
vpx_rc_gop_decision::update_type
vpx_rc_frame_update_type_t update_type[250+2]
Definition vpx_ext_ratectrl.h:419
vpx_rc_gop_decision::update_ref_index
int update_ref_index[250+2]
Definition vpx_ext_ratectrl.h:421
vpx_rc_key_frame_decision
The decision made by the external rate control model to set the key frame location and the show frame...
Definition vpx_ext_ratectrl.h:429
vpx_rc_key_frame_decision::key_frame_group_size
int key_frame_group_size
Definition vpx_ext_ratectrl.h:431
vpx_rc_key_frame_decision::key_frame_show_index
int key_frame_show_index
Definition vpx_ext_ratectrl.h:430
vpx_rc_ref_frame
Control what ref frame to use and its index.
Definition vpx_ext_ratectrl.h:393
vpx_rc_ref_frame::name
vpx_rc_ref_name_t name[4]
Definition vpx_ext_ratectrl.h:404
vpx_rc_ref_frame::index
int index[4]
Definition vpx_ext_ratectrl.h:398
vpx_rc_type_t
enum vpx_rc_type vpx_rc_type_t
The type of the external rate control.
vpx_rc_frame_update_type
vpx_rc_frame_update_type
Corresponds to FRAME_UPDATE_TYPE defined in vp9_firstpass.h.
Definition vpx_ext_ratectrl.h:91
VPX_RC_MAX_REF_FRAMES
#define VPX_RC_MAX_REF_FRAMES
Max number of ref frames returned by the external RC.
Definition vpx_ext_ratectrl.h:43
vpx_rc_update_encodeframe_result_cb_fn_t
vpx_rc_status_t(* vpx_rc_update_encodeframe_result_cb_fn_t)(vpx_rc_model_t rate_ctrl_model, const vpx_rc_encodeframe_result_t *encode_frame_result)
Update encode frame result callback prototype.
Definition vpx_ext_ratectrl.h:493
vpx_rc_encodeframe_info_t
struct vpx_rc_encodeframe_info vpx_rc_encodeframe_info_t
Information for the frame to be encoded.
vpx_rc_send_firstpass_stats_cb_fn_t
vpx_rc_status_t(* vpx_rc_send_firstpass_stats_cb_fn_t)(vpx_rc_model_t rate_ctrl_model, const vpx_rc_firstpass_stats_t *first_pass_stats)
Send first pass stats to the external rate control model callback prototype.
Definition vpx_ext_ratectrl.h:456
vpx_rc_ref_frame_t
struct vpx_rc_ref_frame vpx_rc_ref_frame_t
Control what ref frame to use and its index.
vpx_rc_frame_update_type_t
enum vpx_rc_frame_update_type vpx_rc_frame_update_type_t
Corresponds to FRAME_UPDATE_TYPE defined in vp9_firstpass.h.
vpx_rc_get_gop_decision_cb_fn_t
vpx_rc_status_t(* vpx_rc_get_gop_decision_cb_fn_t)(vpx_rc_model_t rate_ctrl_model, vpx_rc_gop_decision_t *gop_decision)
Get the GOP structure from the external rate control model.
Definition vpx_ext_ratectrl.h:517
vpx_rc_get_frame_rdmult_cb_fn_t
vpx_rc_status_t(* vpx_rc_get_frame_rdmult_cb_fn_t)(vpx_rc_model_t rate_ctrl_model, const vpx_rc_encodeframe_info_t *frame_info, int *rdmult)
Get the frame rdmult from the external rate control model.
Definition vpx_ext_ratectrl.h:529
sb_params
struct sb_parameters sb_params
Superblock quantization parameters Store the superblock quantization parameters.
vpx_rc_status
vpx_rc_status
Status returned by rate control callback functions.
Definition vpx_ext_ratectrl.h:210
vpx_rc_firstpass_stats_t
struct vpx_rc_firstpass_stats vpx_rc_firstpass_stats_t
Collection of first pass frame stats.
vpx_rc_key_frame_decision_t
struct vpx_rc_key_frame_decision vpx_rc_key_frame_decision_t
The decision made by the external rate control model to set the key frame location and the show frame...
vpx_rc_gop_decision_t
struct vpx_rc_gop_decision vpx_rc_gop_decision_t
The decision made by the external rate control model to set the group of picture.
vpx_rc_type
vpx_rc_type
The type of the external rate control.
Definition vpx_ext_ratectrl.h:50
VPX_RC_RDMULT
@ VPX_RC_RDMULT
Definition vpx_ext_ratectrl.h:70
VPX_RC_GOP
@ VPX_RC_GOP
Definition vpx_ext_ratectrl.h:65
VPX_RC_QP
@ VPX_RC_QP
Definition vpx_ext_ratectrl.h:60
VPX_RC_GOP_QP
@ VPX_RC_GOP_QP
Definition vpx_ext_ratectrl.h:74
VPX_RC_NONE
@ VPX_RC_NONE
Definition vpx_ext_ratectrl.h:55
VPX_RC_GOP_QP_RDMULT
@ VPX_RC_GOP_QP_RDMULT
Definition vpx_ext_ratectrl.h:78
VPX_RC_MAX_STATIC_GF_GROUP_LENGTH
#define VPX_RC_MAX_STATIC_GF_GROUP_LENGTH
Corresponds to MAX_STATIC_GF_GROUP_LENGTH defined in vp9_ratectrl.h.
Definition vpx_ext_ratectrl.h:37
vpx_rc_frame_stats_t
struct vpx_rc_frame_stats vpx_rc_frame_stats_t
First pass frame stats This is a mirror of vp9's FIRSTPASS_STATS except that spatial_layer_id is omit...
vpx_rc_encodeframe_decision_t
struct vpx_rc_encodeframe_decision vpx_rc_encodeframe_decision_t
Encode frame decision made by the external rate control model.
vpx_rc_get_encodeframe_decision_cb_fn_t
vpx_rc_status_t(* vpx_rc_get_encodeframe_decision_cb_fn_t)(vpx_rc_model_t rate_ctrl_model, const int frame_gop_index, vpx_rc_encodeframe_decision_t *frame_decision)
Receive encode frame decision callback prototype.
Definition vpx_ext_ratectrl.h:481
vpx_rc_status_t
enum vpx_rc_status vpx_rc_status_t
Status returned by rate control callback functions.
vpx_ext_rc_mode
vpx_ext_rc_mode
The rate control mode for the external rate control model.
Definition vpx_ext_ratectrl.h:83
vpx_rc_get_key_frame_decision_cb_fn_t
vpx_rc_status_t(* vpx_rc_get_key_frame_decision_cb_fn_t)(vpx_rc_model_t rate_ctrl_model, vpx_rc_key_frame_decision_t *key_frame_decision)
Get the key frame decision from the external rate control model.
Definition vpx_ext_ratectrl.h:505
vpx_rc_encodeframe_result_t
struct vpx_rc_encodeframe_result vpx_rc_encodeframe_result_t
Frame coding result.
vpx_rc_model_t
void * vpx_rc_model_t
Abstract rate control model handler.
Definition vpx_ext_ratectrl.h:119
vpx_rc_ref_name
vpx_rc_ref_name
Name for the ref frames returned by the external RC.
Definition vpx_ext_ratectrl.h:106
vpx_rc_send_tpl_gop_stats_cb_fn_t
vpx_rc_status_t(* vpx_rc_send_tpl_gop_stats_cb_fn_t)(vpx_rc_model_t rate_ctrl_model, const VpxTplGopStats *tpl_gop_stats)
Send TPL stats for the current GOP to the external rate control model callback prototype.
Definition vpx_ext_ratectrl.h:469
vpx_rc_config_t
struct vpx_rc_config vpx_rc_config_t
Encode config sent to external rate control model.
vpx_rc_delete_model_cb_fn_t
vpx_rc_status_t(* vpx_rc_delete_model_cb_fn_t)(vpx_rc_model_t rate_ctrl_model)
Delete the external rate control model callback prototype.
Definition vpx_ext_ratectrl.h:540
vpx_rc_ref_name_t
enum vpx_rc_ref_name vpx_rc_ref_name_t
Name for the ref frames returned by the external RC.
vpx_ext_rc_mode_t
enum vpx_ext_rc_mode vpx_ext_rc_mode_t
The rate control mode for the external rate control model.
vpx_rc_create_model_cb_fn_t
vpx_rc_status_t(* vpx_rc_create_model_cb_fn_t)(void *priv, const vpx_rc_config_t *ratectrl_config, vpx_rc_model_t *rate_ctrl_model_ptr)
Create an external rate control model callback prototype.
Definition vpx_ext_ratectrl.h:443
vpx_rc_funcs_t
struct vpx_rc_funcs vpx_rc_funcs_t
Callback function set for external rate control.
vpx_tpl.h
Describes the TPL stats descriptor and associated operations.