Index: source/libvpx/vpx/vp8cx.h |
=================================================================== |
--- source/libvpx/vpx/vp8cx.h (revision 172621) |
+++ source/libvpx/vpx/vp8cx.h (working copy) |
@@ -31,7 +31,14 @@ |
* @{ |
*/ |
extern vpx_codec_iface_t vpx_codec_vp8_cx_algo; |
-extern vpx_codec_iface_t* vpx_codec_vp8_cx(void); |
+extern vpx_codec_iface_t *vpx_codec_vp8_cx(void); |
+ |
+/* TODO(jkoleszar): These move to VP9 in a later patch set. */ |
+extern vpx_codec_iface_t vpx_codec_vp9_cx_algo; |
+extern vpx_codec_iface_t *vpx_codec_vp9_cx(void); |
+extern vpx_codec_iface_t vpx_codec_vp9x_cx_algo; |
+extern vpx_codec_iface_t *vpx_codec_vp9x_cx(void); |
+ |
/*!@} - end algorithm interface member group*/ |
@@ -121,75 +128,77 @@ |
* |
* \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 |
- * |
- * 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 |
- */ |
- VP8E_SET_CPUUSED = 13, |
- VP8E_SET_ENABLEAUTOALTREF, /**< control function to enable vp8 to automatic set and use altref frame */ |
- VP8E_SET_NOISE_SENSITIVITY, /**< control function to 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 |
+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 |
+ * |
+ * 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 |
+ */ |
+ VP8E_SET_CPUUSED = 13, |
+ VP8E_SET_ENABLEAUTOALTREF, /**< control function to enable vp8 to automatic set and use altref frame */ |
+ VP8E_SET_NOISE_SENSITIVITY, /**< control function to 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 |
+ 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 */ |
- VP8E_SET_ARNR_TYPE , /**< control function to set the type of filter to use for the arf*/ |
- VP8E_SET_TUNING, /**< control function to set visual tuning */ |
- /*!\brief 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 |
- */ |
- VP8E_SET_CQ_LEVEL, |
+ 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 */ |
+ VP8E_SET_ARNR_TYPE, /**< control function to set the type of filter to use for the arf*/ |
+ VP8E_SET_TUNING, /**< control function to set visual tuning */ |
+ /*!\brief 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 |
+ */ |
+ VP8E_SET_CQ_LEVEL, |
- /*!\brief 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 |
- * per-frame bitrate, with the special (and default) value 0 meaning |
- * unlimited, or no additional clamping beyond the codec's built-in |
- * algorithm. |
- * |
- * For example, to allocate no more than 4.5 frames worth of bitrate |
- * to a keyframe, set this to 450. |
- * |
- */ |
- VP8E_SET_MAX_INTRA_BITRATE_PCT |
+ /*!\brief 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 |
+ * per-frame bitrate, with the special (and default) value 0 meaning |
+ * unlimited, or no additional clamping beyond the codec's built-in |
+ * algorithm. |
+ * |
+ * For example, to allocate no more than 4.5 frames worth of bitrate |
+ * to a keyframe, set this to 450. |
+ * |
+ */ |
+ VP8E_SET_MAX_INTRA_BITRATE_PCT, |
+ |
+ |
+ /* TODO(jkoleszar): Move to vp9cx.h */ |
+ VP9E_SET_LOSSLESS |
}; |
/*!\brief vpx 1-D scaling mode |
* |
* This set of constants define 1-D vpx scaling modes |
*/ |
-typedef enum vpx_scaling_mode_1d |
-{ |
- VP8E_NORMAL = 0, |
- VP8E_FOURFIVE = 1, |
- VP8E_THREEFIVE = 2, |
- VP8E_ONETWO = 3 |
+typedef enum vpx_scaling_mode_1d { |
+ VP8E_NORMAL = 0, |
+ VP8E_FOURFIVE = 1, |
+ VP8E_THREEFIVE = 2, |
+ VP8E_ONETWO = 3 |
} VPX_SCALING_MODE; |
@@ -199,14 +208,13 @@ |
* |
*/ |
-typedef struct vpx_roi_map |
-{ |
- unsigned char *roi_map; /**< specify an id between 0 and 3 for each 16x16 region within a frame */ |
- unsigned int rows; /**< number of rows */ |
- unsigned int cols; /**< number of cols */ |
- int delta_q[4]; /**< quantizer delta [-63, 63] off baseline for regions with id between 0 and 3*/ |
- int delta_lf[4]; /**< loop filter strength delta [-63, 63] for regions with id between 0 and 3 */ |
- unsigned int static_threshold[4];/**< threshold for region to be treated as static */ |
+typedef struct vpx_roi_map { |
+ unsigned char *roi_map; /**< specify an id between 0 and 3 for each 16x16 region within a frame */ |
+ unsigned int rows; /**< number of rows */ |
+ unsigned int cols; /**< number of cols */ |
+ int delta_q[4]; /**< quantizer delta [-63, 63] off baseline for regions with id between 0 and 3*/ |
+ int delta_lf[4]; /**< loop filter strength delta [-63, 63] for regions with id between 0 and 3 */ |
+ unsigned int static_threshold[4];/**< threshold for region to be treated as static */ |
} vpx_roi_map_t; |
/*!\brief vpx active region map |
@@ -216,11 +224,10 @@ |
*/ |
-typedef struct vpx_active_map |
-{ |
- unsigned char *active_map; /**< specify an on (1) or off (0) each 16x16 region within a frame */ |
- unsigned int rows; /**< number of rows */ |
- unsigned int cols; /**< number of cols */ |
+typedef struct vpx_active_map { |
+ unsigned char *active_map; /**< specify an on (1) or off (0) each 16x16 region within a frame */ |
+ unsigned int rows; /**< number of rows */ |
+ unsigned int cols; /**< number of cols */ |
} vpx_active_map_t; |
/*!\brief vpx image scaling mode |
@@ -228,10 +235,9 @@ |
* This defines the data structure for image scaling mode |
* |
*/ |
-typedef struct vpx_scaling_mode |
-{ |
- VPX_SCALING_MODE h_scaling_mode; /**< horizontal scaling mode */ |
- VPX_SCALING_MODE v_scaling_mode; /**< vertical scaling mode */ |
+typedef struct vpx_scaling_mode { |
+ VPX_SCALING_MODE h_scaling_mode; /**< horizontal scaling mode */ |
+ VPX_SCALING_MODE v_scaling_mode; /**< vertical scaling mode */ |
} vpx_scaling_mode_t; |
/*!\brief VP8 token partition mode |
@@ -241,12 +247,11 @@ |
* |
*/ |
-typedef enum |
-{ |
- VP8_ONE_TOKENPARTITION = 0, |
- VP8_TWO_TOKENPARTITION = 1, |
- VP8_FOUR_TOKENPARTITION = 2, |
- VP8_EIGHT_TOKENPARTITION = 3 |
+typedef enum { |
+ VP8_ONE_TOKENPARTITION = 0, |
+ VP8_TWO_TOKENPARTITION = 1, |
+ VP8_FOUR_TOKENPARTITION = 2, |
+ VP8_EIGHT_TOKENPARTITION = 3 |
} vp8e_token_partitions; |
@@ -255,10 +260,9 @@ |
* Changes the encoder to tune for certain types of input material. |
* |
*/ |
-typedef enum |
-{ |
- VP8_TUNE_PSNR, |
- VP8_TUNE_SSIM |
+typedef enum { |
+ VP8_TUNE_PSNR, |
+ VP8_TUNE_SSIM |
} vp8e_tuning; |
@@ -289,16 +293,17 @@ |
VPX_CTRL_USE_TYPE(VP8E_SET_TOKEN_PARTITIONS, int) /* vp8e_token_partitions */ |
VPX_CTRL_USE_TYPE(VP8E_SET_ARNR_MAXFRAMES, unsigned int) |
-VPX_CTRL_USE_TYPE(VP8E_SET_ARNR_STRENGTH , unsigned int) |
-VPX_CTRL_USE_TYPE(VP8E_SET_ARNR_TYPE , unsigned int) |
+VPX_CTRL_USE_TYPE(VP8E_SET_ARNR_STRENGTH, unsigned int) |
+VPX_CTRL_USE_TYPE(VP8E_SET_ARNR_TYPE, unsigned int) |
VPX_CTRL_USE_TYPE(VP8E_SET_TUNING, int) /* vp8e_tuning */ |
-VPX_CTRL_USE_TYPE(VP8E_SET_CQ_LEVEL , unsigned int) |
+VPX_CTRL_USE_TYPE(VP8E_SET_CQ_LEVEL, unsigned int) |
VPX_CTRL_USE_TYPE(VP8E_GET_LAST_QUANTIZER, int *) |
VPX_CTRL_USE_TYPE(VP8E_GET_LAST_QUANTIZER_64, int *) |
VPX_CTRL_USE_TYPE(VP8E_SET_MAX_INTRA_BITRATE_PCT, unsigned int) |
+VPX_CTRL_USE_TYPE(VP9E_SET_LOSSLESS, unsigned int) |
/*! @} - end defgroup vp8_encoder */ |
#include "vpx_codec_impl_bottom.h" |