Index: source/libvpx/vpx/vp8cx.h |
diff --git a/source/libvpx/vpx/vp8cx.h b/source/libvpx/vpx/vp8cx.h |
index a920ee3f91c1a62f0457a7d5c010b6a7914ac352..5f063846c03ee1e7339f2d70b9f5fdb3e02ce02a 100644 |
--- a/source/libvpx/vpx/vp8cx.h |
+++ b/source/libvpx/vpx/vp8cx.h |
@@ -124,66 +124,145 @@ extern vpx_codec_iface_t *vpx_codec_vp9_cx(void); |
#define VP8_EFLAG_NO_UPD_ENTROPY (1<<20) |
-/*!\brief VP8 encoder control functions |
+/*!\brief VPx encoder control functions |
* |
- * This set of macros define the control functions available for the VP8 |
+ * This set of macros define the control functions available for VPx |
* encoder interface. |
* |
* \sa #vpx_codec_control |
*/ |
enum vp8e_enc_control_id { |
- VP8E_UPD_ENTROPY = 5, /**< control function to set mode of entropy update in encoder */ |
- VP8E_UPD_REFERENCE, /**< control function to set reference update mode in encoder */ |
- VP8E_USE_REFERENCE, /**< control function to set which reference frame encoder can use */ |
- VP8E_SET_ROI_MAP, /**< control function to pass an ROI map to encoder */ |
- VP8E_SET_ACTIVEMAP, /**< control function to pass an Active map to encoder */ |
- VP8E_SET_SCALEMODE = 11, /**< control function to set encoder scaling mode */ |
- /*!\brief control function to set vp8 encoder cpuused |
+ /*!\brief Codec control function to set mode of entropy update in encoder. |
+ * |
+ * Supported in codecs: VP8, VP9 |
+ */ |
+ VP8E_UPD_ENTROPY = 5, |
+ |
+ /*!\brief Codec control function to set reference update mode in encoder. |
+ * |
+ * Supported in codecs: VP8, VP9 |
+ */ |
+ VP8E_UPD_REFERENCE, |
+ |
+ /*!\brief Codec control function to set which reference frame encoder can use. |
+ * |
+ * Supported in codecs: VP8, VP9 |
+ */ |
+ VP8E_USE_REFERENCE, |
+ |
+ /*!\brief Codec control function to pass an ROI map to encoder. |
+ * |
+ * Supported in codecs: VP8, VP9 |
+ */ |
+ VP8E_SET_ROI_MAP, |
+ |
+ /*!\brief Codec control function to pass an Active map to encoder. |
+ * |
+ * Supported in codecs: VP8, VP9 |
+ */ |
+ VP8E_SET_ACTIVEMAP, |
+ |
+ /*!\brief Codec control function to set encoder scaling mode. |
+ * |
+ * Supported in codecs: VP8, VP9 |
+ */ |
+ VP8E_SET_SCALEMODE = 11, |
+ |
+ /*!\brief Codec control function to set encoder internal speed settings. |
* |
* Changes in this value influences, among others, the encoder's selection |
* of motion estimation methods. Values greater than 0 will increase encoder |
* speed at the expense of quality. |
- * The full set of adjustments can be found in |
- * onyx_if.c:vp8_set_speed_features(). |
- * \todo List highlights of the changes at various levels. |
* |
- * \note Valid range: -16..16 |
+ * \note Valid range for VP8: -16..16 |
+ * \note Valid range for VP9: -8..8 |
+ * |
+ * Supported in codecs: VP8, VP9 |
*/ |
VP8E_SET_CPUUSED = 13, |
- VP8E_SET_ENABLEAUTOALTREF, /**< control function to enable vp8 to automatic set and use altref frame */ |
+ |
+ /*!\brief Codec control function to enable automatic set and use alf frames. |
+ * |
+ * Supported in codecs: VP8, VP9 |
+ */ |
+ VP8E_SET_ENABLEAUTOALTREF, |
+ |
/*!\brief control function to set noise sensitivity |
* |
* 0: off, 1: OnYOnly, 2: OnYUV, |
* 3: OnYUVAggressive, 4: Adaptive |
+ * |
+ * Supported in codecs: VP8 |
*/ |
VP8E_SET_NOISE_SENSITIVITY, |
- VP8E_SET_SHARPNESS, /**< control function to set sharpness */ |
- VP8E_SET_STATIC_THRESHOLD, /**< control function to set the threshold for macroblocks treated static */ |
- VP8E_SET_TOKEN_PARTITIONS, /**< control function to set the number of token partitions */ |
- VP8E_GET_LAST_QUANTIZER, /**< return the quantizer chosen by the |
- encoder for the last frame using the internal |
- scale */ |
- VP8E_GET_LAST_QUANTIZER_64, /**< return the quantizer chosen by the |
- encoder for the last frame, using the 0..63 |
- scale as used by the rc_*_quantizer config |
- parameters */ |
- VP8E_SET_ARNR_MAXFRAMES, /**< control function to set the max number of frames blurred creating arf*/ |
- VP8E_SET_ARNR_STRENGTH, //!< control function to set the filter |
- //!< strength for the arf |
- |
- /*!\deprecated control function to set the filter type to use for the arf */ |
+ |
+ /*!\brief Codec control function to set sharpness. |
+ * |
+ * Supported in codecs: VP8, VP9 |
+ */ |
+ VP8E_SET_SHARPNESS, |
+ |
+ /*!\brief Codec control function to set the threshold for MBs treated static. |
+ * |
+ * Supported in codecs: VP8, VP9 |
+ */ |
+ VP8E_SET_STATIC_THRESHOLD, |
+ |
+ /*!\brief Codec control function to set the number of token partitions. |
+ * |
+ * Supported in codecs: VP8 |
+ */ |
+ VP8E_SET_TOKEN_PARTITIONS, |
+ |
+ /*!\brief Codec control function to get last quantizer chosen by the encoder. |
+ * |
+ * Return value uses internal quantizer scale defined by the codec. |
+ * |
+ * Supported in codecs: VP8, VP9 |
+ */ |
+ VP8E_GET_LAST_QUANTIZER, |
+ |
+ /*!\brief Codec control function to get last quantizer chosen by the encoder. |
+ * |
+ * Return value uses the 0..63 scale as used by the rc_*_quantizer config |
+ * parameters. |
+ * |
+ * Supported in codecs: VP8, VP9 |
+ */ |
+ VP8E_GET_LAST_QUANTIZER_64, |
+ |
+ /*!\brief Codec control function to set the max no of frames to create arf. |
+ * |
+ * Supported in codecs: VP8, VP9 |
+ */ |
+ VP8E_SET_ARNR_MAXFRAMES, |
+ |
+ /*!\brief Codec control function to set the filter strength for the arf. |
+ * |
+ * Supported in codecs: VP8, VP9 |
+ */ |
+ VP8E_SET_ARNR_STRENGTH, |
+ |
+ /*!\deprecated control function to set the filter type to use for the arf. */ |
VP8E_SET_ARNR_TYPE, |
- VP8E_SET_TUNING, /**< control function to set visual tuning */ |
- /*!\brief control function to set constrained quality level |
+ /*!\brief Codec control function to set visual tuning. |
+ * |
+ * Supported in codecs: VP8, VP9 |
+ */ |
+ VP8E_SET_TUNING, |
+ |
+ /*!\brief Codec control function to set constrained quality level. |
* |
* \attention For this value to be used vpx_codec_enc_cfg_t::g_usage must be |
* set to #VPX_CQ. |
* \note Valid range: 0..63 |
+ * |
+ * Supported in codecs: VP8, VP9 |
*/ |
VP8E_SET_CQ_LEVEL, |
- /*!\brief Max data rate for Intra frames |
+ /*!\brief Codec control function to set Max data rate for Intra frames. |
* |
* This value controls additional clamping on the maximum size of a |
* keyframe. It is expressed as a percentage of the average |
@@ -194,11 +273,17 @@ enum vp8e_enc_control_id { |
* For example, to allocate no more than 4.5 frames worth of bitrate |
* to a keyframe, set this to 450. |
* |
+ * Supported in codecs: VP8, VP9 |
*/ |
VP8E_SET_MAX_INTRA_BITRATE_PCT, |
- VP8E_SET_FRAME_FLAGS, /**< control function to set reference and update frame flags */ |
- /*!\brief Max data rate for Inter frames |
+ /*!\brief Codec control function to set reference and update frame flags. |
+ * |
+ * Supported in codecs: VP8 |
+ */ |
+ VP8E_SET_FRAME_FLAGS, |
+ |
+ /*!\brief Codec control function to set max data rate for Inter frames. |
* |
* This value controls additional clamping on the maximum size of an |
* inter frame. It is expressed as a percentage of the average |
@@ -209,10 +294,11 @@ enum vp8e_enc_control_id { |
* For example, to allow no more than 4.5 frames worth of bitrate |
* to an inter frame, set this to 450. |
* |
+ * Supported in codecs: VP9 |
*/ |
- VP8E_SET_MAX_INTER_BITRATE_PCT, |
+ VP9E_SET_MAX_INTER_BITRATE_PCT, |
- /*!\brief Boost percentage for Golden Frame in CBR mode |
+ /*!\brief Boost percentage for Golden Frame in CBR mode. |
* |
* This value controls the amount of boost given to Golden Frame in |
* CBR mode. It is expressed as a percentage of the average |
@@ -223,21 +309,28 @@ enum vp8e_enc_control_id { |
* For example, to allow 100% more bits, i.e, 2X, in a golden frame |
* than average frame, set this to 100. |
* |
+ * Supported in codecs: VP9 |
*/ |
- VP8E_SET_GF_CBR_BOOST_PCT, |
+ VP9E_SET_GF_CBR_BOOST_PCT, |
- /*!\brief Codec control function to set the temporal layer id |
+ /*!\brief Codec control function to set the temporal layer id. |
* |
* For temporal scalability: this control allows the application to set the |
* layer id for each frame to be encoded. Note that this control must be set |
* for every frame prior to encoding. The usage of this control function |
* supersedes the internal temporal pattern counter, which is now deprecated. |
+ * |
+ * Supported in codecs: VP8 |
*/ |
VP8E_SET_TEMPORAL_LAYER_ID, |
- VP8E_SET_SCREEN_CONTENT_MODE, /**<control function to set encoder screen content mode */ |
+ /*!\brief Codec control function to set encoder screen content mode. |
+ * |
+ * Supported in codecs: VP8 |
+ */ |
+ VP8E_SET_SCREEN_CONTENT_MODE, |
- /*!\brief Codec control function to set lossless encoding mode |
+ /*!\brief Codec control function to set lossless encoding mode. |
* |
* VP9 can operate in lossless encoding mode, in which the bitstream |
* produced will be able to decode and reconstruct a perfect copy of |
@@ -247,10 +340,12 @@ enum vp8e_enc_control_id { |
* 1 = lossless coding mode |
* |
* By default, encoder operates in normal coding mode (maybe lossy). |
+ * |
+ * Supported in codecs: VP9 |
*/ |
VP9E_SET_LOSSLESS, |
- /*!\brief Codec control function to set number of tile columns |
+ /*!\brief Codec control function to set number of tile columns. |
* |
* In encoding and decoding, VP9 allows an input image frame be partitioned |
* into separated vertical tile columns, which can be encoded or decoded |
@@ -268,10 +363,12 @@ enum vp8e_enc_control_id { |
* is 4096). |
* |
* By default, the value is 0, i.e. one single column tile for entire image. |
+ * |
+ * Supported in codecs: VP9 |
*/ |
VP9E_SET_TILE_COLUMNS, |
- /*!\brief Codec control function to set number of tile rows |
+ /*!\brief Codec control function to set number of tile rows. |
* |
* In encoding and decoding, VP9 allows an input image frame be partitioned |
* into separated horizontal tile rows. Tile rows are encoded or decoded |
@@ -286,10 +383,12 @@ enum vp8e_enc_control_id { |
* 2 = 4 tile rows |
* |
* By default, the value is 0, i.e. one single row tile for entire image. |
+ * |
+ * Supported in codecs: VP9 |
*/ |
VP9E_SET_TILE_ROWS, |
- /*!\brief Codec control function to enable frame parallel decoding feature |
+ /*!\brief Codec control function to enable frame parallel decoding feature. |
* |
* VP9 has a bitstream feature to reduce decoding dependency between frames |
* by turning off backward update of probability context used in encoding |
@@ -298,10 +397,12 @@ enum vp8e_enc_control_id { |
* turn this feature on or off for bitstreams produced by encoder. |
* |
* By default, this feature is off. |
+ * |
+ * Supported in codecs: VP9 |
*/ |
VP9E_SET_FRAME_PARALLEL_DECODING, |
- /*!\brief Codec control function to set adaptive quantization mode |
+ /*!\brief Codec control function to set adaptive quantization mode. |
* |
* VP9 has a segment based feature that allows encoder to adaptively change |
* quantization parameter for each segment within a frame to improve the |
@@ -309,10 +410,12 @@ enum vp8e_enc_control_id { |
* several AQ_modes supported. |
* |
* By default, encoder operates with AQ_Mode 0(adaptive quantization off). |
+ * |
+ * Supported in codecs: VP9 |
*/ |
VP9E_SET_AQ_MODE, |
- /*!\brief Codec control function to enable/disable periodic Q boost |
+ /*!\brief Codec control function to enable/disable periodic Q boost. |
* |
* One VP9 encoder speed feature is to enable quality boost by lowering |
* frame level Q periodically. This control function provides a mean to |
@@ -322,55 +425,71 @@ enum vp8e_enc_control_id { |
* |
* By default, the encoder is allowed to use this feature for appropriate |
* encoding modes. |
+ * |
+ * Supported in codecs: VP9 |
*/ |
VP9E_SET_FRAME_PERIODIC_BOOST, |
- /*!\brief control function to set noise sensitivity |
+ /*!\brief Codec control function to set noise sensitivity. |
+ * |
+ * 0: off, 1: On(YOnly) |
* |
- * 0: off, 1: OnYOnly |
+ * Supported in codecs: VP9 |
*/ |
VP9E_SET_NOISE_SENSITIVITY, |
- /*!\brief control function to turn on/off SVC in encoder. |
+ /*!\brief Codec control function to turn on/off SVC in encoder. |
* \note Return value is VPX_CODEC_INVALID_PARAM if the encoder does not |
* support SVC in its current encoding mode |
* 0: off, 1: on |
+ * |
+ * Supported in codecs: VP9 |
*/ |
VP9E_SET_SVC, |
- /*!\brief control function to set parameters for SVC. |
+ /*!\brief Codec control function to set parameters for SVC. |
* \note Parameters contain min_q, max_q, scaling factor for each of the |
* SVC layers. |
+ * |
+ * Supported in codecs: VP9 |
*/ |
VP9E_SET_SVC_PARAMETERS, |
- /*!\brief control function to set svc layer for spatial and temporal. |
+ /*!\brief Codec control function to set svc layer for spatial and temporal. |
* \note Valid ranges: 0..#vpx_codec_enc_cfg::ss_number_layers for spatial |
* layer and 0..#vpx_codec_enc_cfg::ts_number_layers for |
* temporal layer. |
+ * |
+ * Supported in codecs: VP9 |
*/ |
VP9E_SET_SVC_LAYER_ID, |
- /*!\brief control function to set content type. |
+ /*!\brief Codec control function to set content type. |
* \note Valid parameter range: |
* VP9E_CONTENT_DEFAULT = Regular video content (Default) |
* VP9E_CONTENT_SCREEN = Screen capture content |
+ * |
+ * Supported in codecs: VP9 |
*/ |
VP9E_SET_TUNE_CONTENT, |
- /*!\brief control function to get svc layer ID. |
+ /*!\brief Codec control function to get svc layer ID. |
* \note The layer ID returned is for the data packet from the registered |
* callback function. |
+ * |
+ * Supported in codecs: VP9 |
*/ |
VP9E_GET_SVC_LAYER_ID, |
- /*!\brief control function to register callback for getting per layer packet. |
+ /*!\brief Codec control function to register callback to get per layer packet. |
* \note Parameter for this control function is a structure with a callback |
* function and a pointer to private data used by the callback. |
+ * |
+ * Supported in codecs: VP9 |
*/ |
VP9E_REGISTER_CX_CALLBACK, |
- /*!\brief control function to set color space info. |
+ /*!\brief Codec control function to set color space info. |
* \note Valid ranges: 0..7, default is "UNKNOWN". |
* 0 = UNKNOWN, |
* 1 = BT_601 |
@@ -380,6 +499,8 @@ enum vp8e_enc_control_id { |
* 5 = BT_2020 |
* 6 = RESERVED |
* 7 = SRGB |
+ * |
+ * Supported in codecs: VP9 |
*/ |
VP9E_SET_COLOR_SPACE, |
}; |
@@ -531,10 +652,10 @@ VPX_CTRL_USE_TYPE(VP9E_GET_SVC_LAYER_ID, vpx_svc_layer_id_t *) |
VPX_CTRL_USE_TYPE(VP8E_SET_MAX_INTRA_BITRATE_PCT, unsigned int) |
VPX_CTRL_USE_TYPE(VP8E_SET_MAX_INTER_BITRATE_PCT, unsigned int) |
-VPX_CTRL_USE_TYPE(VP8E_SET_GF_CBR_BOOST_PCT, unsigned int) |
- |
VPX_CTRL_USE_TYPE(VP8E_SET_SCREEN_CONTENT_MODE, unsigned int) |
+VPX_CTRL_USE_TYPE(VP9E_SET_GF_CBR_BOOST_PCT, unsigned int) |
+ |
VPX_CTRL_USE_TYPE(VP9E_SET_LOSSLESS, unsigned int) |
VPX_CTRL_USE_TYPE(VP9E_SET_FRAME_PARALLEL_DECODING, unsigned int) |