mirror of
https://github.com/ZDoom/zdoom-macos-deps.git
synced 2025-02-17 17:11:29 +00:00
deps: update vpx to 1.13.0
This commit is contained in:
parent
d6c70c75c3
commit
9ce2ca7811
5 changed files with 184 additions and 11 deletions
12
deps/vpx/include/vpx/vp8cx.h
vendored
12
deps/vpx/include/vpx/vp8cx.h
vendored
|
@ -757,6 +757,16 @@ enum vp8e_enc_control_id {
|
||||||
* Supported in codecs: VP8
|
* Supported in codecs: VP8
|
||||||
*/
|
*/
|
||||||
VP8E_SET_RTC_EXTERNAL_RATECTRL,
|
VP8E_SET_RTC_EXTERNAL_RATECTRL,
|
||||||
|
|
||||||
|
/*!\brief Codec control to set quantizer for the next frame.
|
||||||
|
*
|
||||||
|
* This will turn off cyclic refresh. Only applicable to 1-pass without
|
||||||
|
* spatial layers.
|
||||||
|
*
|
||||||
|
* Supported in codecs: VP9
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
VP9E_SET_QUANTIZER_ONE_PASS,
|
||||||
};
|
};
|
||||||
|
|
||||||
/*!\brief vpx 1-D scaling mode
|
/*!\brief vpx 1-D scaling mode
|
||||||
|
@ -1085,6 +1095,8 @@ VPX_CTRL_USE_TYPE(VP9E_GET_LAST_QUANTIZER_SVC_LAYERS, int *)
|
||||||
#define VPX_CTRL_VP9E_GET_LAST_QUANTIZER_SVC_LAYERS
|
#define VPX_CTRL_VP9E_GET_LAST_QUANTIZER_SVC_LAYERS
|
||||||
VPX_CTRL_USE_TYPE(VP8E_SET_RTC_EXTERNAL_RATECTRL, int)
|
VPX_CTRL_USE_TYPE(VP8E_SET_RTC_EXTERNAL_RATECTRL, int)
|
||||||
#define VPX_CTRL_VP8E_SET_RTC_EXTERNAL_RATECTRL
|
#define VPX_CTRL_VP8E_SET_RTC_EXTERNAL_RATECTRL
|
||||||
|
VPX_CTRL_USE_TYPE(VP9E_SET_QUANTIZER_ONE_PASS, int)
|
||||||
|
#define VPX_CTRL_VP9E_SET_QUANTIZER_ONE_PASS
|
||||||
|
|
||||||
/*!\endcond */
|
/*!\endcond */
|
||||||
/*! @} - end defgroup vp8_encoder */
|
/*! @} - end defgroup vp8_encoder */
|
||||||
|
|
15
deps/vpx/include/vpx/vpx_encoder.h
vendored
15
deps/vpx/include/vpx/vpx_encoder.h
vendored
|
@ -115,14 +115,14 @@ typedef int64_t vpx_codec_pts_t;
|
||||||
* support frame types that are codec specific (MPEG-1 D-frames for example)
|
* support frame types that are codec specific (MPEG-1 D-frames for example)
|
||||||
*/
|
*/
|
||||||
typedef uint32_t vpx_codec_frame_flags_t;
|
typedef uint32_t vpx_codec_frame_flags_t;
|
||||||
#define VPX_FRAME_IS_KEY 0x1 /**< frame is the start of a GOP */
|
#define VPX_FRAME_IS_KEY 0x1u /**< frame is the start of a GOP */
|
||||||
/*!\brief frame can be dropped without affecting the stream (no future frame
|
/*!\brief frame can be dropped without affecting the stream (no future frame
|
||||||
* depends on this one) */
|
* depends on this one) */
|
||||||
#define VPX_FRAME_IS_DROPPABLE 0x2
|
#define VPX_FRAME_IS_DROPPABLE 0x2u
|
||||||
/*!\brief frame should be decoded but will not be shown */
|
/*!\brief frame should be decoded but will not be shown */
|
||||||
#define VPX_FRAME_IS_INVISIBLE 0x4
|
#define VPX_FRAME_IS_INVISIBLE 0x4u
|
||||||
/*!\brief this is a fragment of the encoded frame */
|
/*!\brief this is a fragment of the encoded frame */
|
||||||
#define VPX_FRAME_IS_FRAGMENT 0x8
|
#define VPX_FRAME_IS_FRAGMENT 0x8u
|
||||||
|
|
||||||
/*!\brief Error Resilient flags
|
/*!\brief Error Resilient flags
|
||||||
*
|
*
|
||||||
|
@ -132,12 +132,13 @@ typedef uint32_t vpx_codec_frame_flags_t;
|
||||||
*/
|
*/
|
||||||
typedef uint32_t vpx_codec_er_flags_t;
|
typedef uint32_t vpx_codec_er_flags_t;
|
||||||
/*!\brief Improve resiliency against losses of whole frames */
|
/*!\brief Improve resiliency against losses of whole frames */
|
||||||
#define VPX_ERROR_RESILIENT_DEFAULT 0x1
|
#define VPX_ERROR_RESILIENT_DEFAULT 0x1u
|
||||||
/*!\brief The frame partitions are independently decodable by the bool decoder,
|
/*!\brief The frame partitions are independently decodable by the bool decoder,
|
||||||
* meaning that partitions can be decoded even though earlier partitions have
|
* meaning that partitions can be decoded even though earlier partitions have
|
||||||
* been lost. Note that intra prediction is still done over the partition
|
* been lost. Note that intra prediction is still done over the partition
|
||||||
* boundary. */
|
* boundary.
|
||||||
#define VPX_ERROR_RESILIENT_PARTITIONS 0x2
|
* \note This is only supported by VP8.*/
|
||||||
|
#define VPX_ERROR_RESILIENT_PARTITIONS 0x2u
|
||||||
|
|
||||||
/*!\brief Encoder output packet variants
|
/*!\brief Encoder output packet variants
|
||||||
*
|
*
|
||||||
|
|
164
deps/vpx/include/vpx/vpx_ext_ratectrl.h
vendored
164
deps/vpx/include/vpx/vpx_ext_ratectrl.h
vendored
|
@ -25,7 +25,27 @@ extern "C" {
|
||||||
* types, removing or reassigning enums, adding/removing/rearranging
|
* types, removing or reassigning enums, adding/removing/rearranging
|
||||||
* fields to structures.
|
* fields to structures.
|
||||||
*/
|
*/
|
||||||
#define VPX_EXT_RATECTRL_ABI_VERSION (1)
|
#define VPX_EXT_RATECTRL_ABI_VERSION (6)
|
||||||
|
|
||||||
|
/*!\brief The control type of the inference API.
|
||||||
|
* In VPX_RC_QP mode, the external rate control model determines the
|
||||||
|
* quantization parameter (QP) for each frame.
|
||||||
|
* In VPX_RC_GOP mode, the external rate control model determines the
|
||||||
|
* group of picture (GOP) of the video sequence.
|
||||||
|
* In VPX_RC_RDMULT mode, the external rate control model determines the
|
||||||
|
* rate-distortion multiplier (rdmult) for the current frame.
|
||||||
|
* In VPX_RC_GOP_QP mode, the external rate control model determines
|
||||||
|
* both the QP and the GOP.
|
||||||
|
* In VPX_RC_GOP_QP_RDMULT mode, the external rate control model determines
|
||||||
|
* the QP, GOP and the rdmult.
|
||||||
|
*/
|
||||||
|
typedef enum vpx_rc_type {
|
||||||
|
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;
|
||||||
|
|
||||||
/*!\brief Abstract rate control model handler
|
/*!\brief Abstract rate control model handler
|
||||||
*
|
*
|
||||||
|
@ -34,11 +54,27 @@ extern "C" {
|
||||||
*/
|
*/
|
||||||
typedef void *vpx_rc_model_t;
|
typedef void *vpx_rc_model_t;
|
||||||
|
|
||||||
|
/*!\brief A reserved value for the q index.
|
||||||
|
* If the external rate control model returns this value,
|
||||||
|
* the encoder will use the default q selected by libvpx's rate control
|
||||||
|
* system.
|
||||||
|
*/
|
||||||
|
#define VPX_DEFAULT_Q -1
|
||||||
|
|
||||||
|
/*!\brief A reserved value for the rdmult.
|
||||||
|
* If the external rate control model returns this value,
|
||||||
|
* the encoder will use the default rdmult selected by libvpx's rate control
|
||||||
|
* system.
|
||||||
|
*/
|
||||||
|
#define VPX_DEFAULT_RDMULT -1
|
||||||
|
|
||||||
/*!\brief Encode frame decision made by the external rate control model
|
/*!\brief Encode frame decision made by the external rate control model
|
||||||
*
|
*
|
||||||
* The encoder will receive the decision from the external rate control model
|
* The encoder will receive the decision from the external rate control model
|
||||||
* through get_encodeframe_decision() defined in vpx_rc_funcs_t.
|
* through get_encodeframe_decision() defined in vpx_rc_funcs_t.
|
||||||
*
|
*
|
||||||
|
* If q_index = VPX_DEFAULT_Q, the encoder will use libvpx's default q.
|
||||||
|
*
|
||||||
* If max_frame_size = 0, the encoding ignores max frame size limit.
|
* If max_frame_size = 0, the encoding ignores max frame size limit.
|
||||||
* If max_frame_size = -1, the encoding uses VP9's max frame size as the limit.
|
* If max_frame_size = -1, the encoding uses VP9's max frame size as the limit.
|
||||||
* If the encoded frame size is larger than max_frame_size, the frame is
|
* If the encoded frame size is larger than max_frame_size, the frame is
|
||||||
|
@ -67,7 +103,7 @@ typedef struct vpx_rc_encodeframe_info {
|
||||||
int show_index; /**< display index, starts from zero*/
|
int show_index; /**< display index, starts from zero*/
|
||||||
int coding_index; /**< coding index, starts from zero*/
|
int coding_index; /**< coding index, starts from zero*/
|
||||||
/*!
|
/*!
|
||||||
* index in group of picture, starts from zero.
|
* index of the current frame in this group of picture, starts from zero.
|
||||||
*/
|
*/
|
||||||
int gop_index;
|
int gop_index;
|
||||||
int ref_frame_coding_indexes[3]; /**< three reference frames' coding indices*/
|
int ref_frame_coding_indexes[3]; /**< three reference frames' coding indices*/
|
||||||
|
@ -77,6 +113,14 @@ typedef struct vpx_rc_encodeframe_info {
|
||||||
* 1: Valid
|
* 1: Valid
|
||||||
*/
|
*/
|
||||||
int ref_frame_valid_list[3];
|
int ref_frame_valid_list[3];
|
||||||
|
/*!
|
||||||
|
* The length of the current GOP.
|
||||||
|
*/
|
||||||
|
int gop_size;
|
||||||
|
/*!
|
||||||
|
* Whether the current GOP uses an alt ref.
|
||||||
|
*/
|
||||||
|
int use_alt_ref;
|
||||||
} vpx_rc_encodeframe_info_t;
|
} vpx_rc_encodeframe_info_t;
|
||||||
|
|
||||||
/*!\brief Frame coding result
|
/*!\brief Frame coding result
|
||||||
|
@ -258,6 +302,84 @@ typedef struct vpx_rc_config {
|
||||||
int frame_rate_den; /**< denominator of frame rate */
|
int frame_rate_den; /**< denominator of frame rate */
|
||||||
} vpx_rc_config_t;
|
} vpx_rc_config_t;
|
||||||
|
|
||||||
|
/*!\brief Information passed to the external rate control model to
|
||||||
|
* help make GOP decisions.
|
||||||
|
*/
|
||||||
|
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;
|
||||||
|
/*!
|
||||||
|
* Maximum allowed gf interval, fixed for the whole clip.
|
||||||
|
*/
|
||||||
|
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, determined by the encoder.
|
||||||
|
* It is fixed for the entire encode.
|
||||||
|
* See function "is_altref_enabled" in vp9_encoder.h.
|
||||||
|
*/
|
||||||
|
int allow_alt_ref;
|
||||||
|
/*!
|
||||||
|
* Is the current frame a key frame.
|
||||||
|
*/
|
||||||
|
int is_key_frame;
|
||||||
|
/*!
|
||||||
|
* Does the previous gop use alt ref or not.
|
||||||
|
*/
|
||||||
|
int last_gop_use_alt_ref;
|
||||||
|
/*!
|
||||||
|
* Current frame distance to the last keyframe, e.g., if Nth frame is a key,
|
||||||
|
* then the value of the N+1 th frame is 1.
|
||||||
|
*/
|
||||||
|
int frames_since_key;
|
||||||
|
/*!
|
||||||
|
* Current frame distance to the next keyframe, e.g. if Nth frame is a key,
|
||||||
|
* then the value of frame N - 1 is 1.
|
||||||
|
*/
|
||||||
|
int frames_to_key;
|
||||||
|
/*!
|
||||||
|
* Number of lookahead source frames.
|
||||||
|
*/
|
||||||
|
int lag_in_frames;
|
||||||
|
/*!
|
||||||
|
* Display index (temporal stamp) of this frame in the whole clip,
|
||||||
|
* starts from zero.
|
||||||
|
*/
|
||||||
|
int show_index;
|
||||||
|
/*!
|
||||||
|
* Coding index of this frame in the whole clip, starts from zero.
|
||||||
|
*/
|
||||||
|
int coding_index;
|
||||||
|
/*!
|
||||||
|
* The index of the current gop, starts from zero, resets to zero
|
||||||
|
* when a keyframe is set.
|
||||||
|
*/
|
||||||
|
int gop_global_index;
|
||||||
|
} vpx_rc_gop_info_t;
|
||||||
|
|
||||||
|
/*!\brief The decision made by the external rate control model to set the
|
||||||
|
* group of picture.
|
||||||
|
*/
|
||||||
|
typedef struct vpx_rc_gop_decision {
|
||||||
|
int gop_coding_frames; /**< The number of frames of this GOP */
|
||||||
|
int use_alt_ref; /**< Whether to use alt ref for this GOP */
|
||||||
|
} vpx_rc_gop_decision_t;
|
||||||
|
|
||||||
/*!\brief Create an external rate control model callback prototype
|
/*!\brief Create an external rate control model callback prototype
|
||||||
*
|
*
|
||||||
* This callback is invoked by the encoder to create an external rate control
|
* This callback is invoked by the encoder to create an external rate control
|
||||||
|
@ -310,6 +432,32 @@ typedef vpx_rc_status_t (*vpx_rc_update_encodeframe_result_cb_fn_t)(
|
||||||
vpx_rc_model_t rate_ctrl_model,
|
vpx_rc_model_t rate_ctrl_model,
|
||||||
const vpx_rc_encodeframe_result_t *encode_frame_result);
|
const vpx_rc_encodeframe_result_t *encode_frame_result);
|
||||||
|
|
||||||
|
/*!\brief Get the GOP structure from the external rate control model.
|
||||||
|
*
|
||||||
|
* This callback is invoked by the encoder to get GOP decisions from
|
||||||
|
* the external rate control model.
|
||||||
|
*
|
||||||
|
* \param[in] rate_ctrl_model rate control model
|
||||||
|
* \param[in] gop_info information collected from the encoder
|
||||||
|
* \param[out] gop_decision GOP decision from the model
|
||||||
|
*/
|
||||||
|
typedef vpx_rc_status_t (*vpx_rc_get_gop_decision_cb_fn_t)(
|
||||||
|
vpx_rc_model_t rate_ctrl_model, const vpx_rc_gop_info_t *gop_info,
|
||||||
|
vpx_rc_gop_decision_t *gop_decision);
|
||||||
|
|
||||||
|
/*!\brief Get the frame rdmult from the external rate control model.
|
||||||
|
*
|
||||||
|
* This callback is invoked by the encoder to get rdmult from
|
||||||
|
* the external rate control model.
|
||||||
|
*
|
||||||
|
* \param[in] rate_ctrl_model rate control model
|
||||||
|
* \param[in] frame_info information collected from the encoder
|
||||||
|
* \param[out] rdmult frame rate-distortion multiplier from the model
|
||||||
|
*/
|
||||||
|
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);
|
||||||
|
|
||||||
/*!\brief Delete the external rate control model callback prototype
|
/*!\brief Delete the external rate control model callback prototype
|
||||||
*
|
*
|
||||||
* This callback is invoked by the encoder to delete the external rate control
|
* This callback is invoked by the encoder to delete the external rate control
|
||||||
|
@ -327,6 +475,10 @@ typedef vpx_rc_status_t (*vpx_rc_delete_model_cb_fn_t)(
|
||||||
* VP9E_SET_EXTERNAL_RATE_CONTROL.
|
* VP9E_SET_EXTERNAL_RATE_CONTROL.
|
||||||
*/
|
*/
|
||||||
typedef struct vpx_rc_funcs {
|
typedef struct vpx_rc_funcs {
|
||||||
|
/*!
|
||||||
|
* The rate control type of this API.
|
||||||
|
*/
|
||||||
|
vpx_rc_type_t rc_type;
|
||||||
/*!
|
/*!
|
||||||
* Create an external rate control model.
|
* Create an external rate control model.
|
||||||
*/
|
*/
|
||||||
|
@ -343,6 +495,14 @@ typedef struct vpx_rc_funcs {
|
||||||
* Update encodeframe result to the external rate control model.
|
* Update encodeframe result to the external rate control model.
|
||||||
*/
|
*/
|
||||||
vpx_rc_update_encodeframe_result_cb_fn_t update_encodeframe_result;
|
vpx_rc_update_encodeframe_result_cb_fn_t update_encodeframe_result;
|
||||||
|
/*!
|
||||||
|
* Get GOP decisions from the external rate control model.
|
||||||
|
*/
|
||||||
|
vpx_rc_get_gop_decision_cb_fn_t get_gop_decision;
|
||||||
|
/*!
|
||||||
|
* Get rdmult for the frame from the external rate control model.
|
||||||
|
*/
|
||||||
|
vpx_rc_get_frame_rdmult_cb_fn_t get_frame_rdmult;
|
||||||
/*!
|
/*!
|
||||||
* Delete the external rate control model.
|
* Delete the external rate control model.
|
||||||
*/
|
*/
|
||||||
|
|
BIN
deps/vpx/lib/libvpx.a
vendored
BIN
deps/vpx/lib/libvpx.a
vendored
Binary file not shown.
4
deps/vpx/lib/pkgconfig/vpx.pc
vendored
4
deps/vpx/lib/pkgconfig/vpx.pc
vendored
|
@ -1,4 +1,4 @@
|
||||||
# pkg-config file from libvpx v1.12.0
|
# pkg-config file from libvpx v1.13.0
|
||||||
prefix=
|
prefix=
|
||||||
exec_prefix=${prefix}
|
exec_prefix=${prefix}
|
||||||
libdir=${exec_prefix}/lib
|
libdir=${exec_prefix}/lib
|
||||||
|
@ -6,7 +6,7 @@ includedir=${prefix}/include
|
||||||
|
|
||||||
Name: vpx
|
Name: vpx
|
||||||
Description: WebM Project VPx codec implementation
|
Description: WebM Project VPx codec implementation
|
||||||
Version: 1.12.0
|
Version: 1.13.0
|
||||||
Requires:
|
Requires:
|
||||||
Conflicts:
|
Conflicts:
|
||||||
Libs: -L${libdir} -lvpx -lm
|
Libs: -L${libdir} -lvpx -lm
|
||||||
|
|
Loading…
Reference in a new issue