summaryrefslogtreecommitdiff
path: root/vpx/vp8cx.h
diff options
context:
space:
mode:
authorJames Zern <jzern@google.com>2015-03-19 12:20:14 -0700
committerJames Zern <jzern@google.com>2015-03-19 12:29:16 -0700
commit18613408a31bf280aab06260874ba04f9daab26d (patch)
treedaf3185e3dd0929ca155b50a6a75cc4f54385c24 /vpx/vp8cx.h
parente4aa19a81d5917bee6be948f54f000bc48dae0a8 (diff)
downloadlibvpx-18613408a31bf280aab06260874ba04f9daab26d.tar
libvpx-18613408a31bf280aab06260874ba04f9daab26d.tar.gz
libvpx-18613408a31bf280aab06260874ba04f9daab26d.tar.bz2
libvpx-18613408a31bf280aab06260874ba04f9daab26d.zip
put spatial svc behind an ABI check
this removes the CONFIG_* checks from public headers, but means '--enable-experimental --enable-spatial-svc' builds will fail without a local change to the ABI in vpx_encoder.h. this should be all right for testing this experiment. Change-Id: Ief55e7b9d1e8332cfce990275e04c29b30af0c4a
Diffstat (limited to 'vpx/vp8cx.h')
-rw-r--r--vpx/vp8cx.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/vpx/vp8cx.h b/vpx/vp8cx.h
index 5f063846c..fc83ce667 100644
--- a/vpx/vp8cx.h
+++ b/vpx/vp8cx.h
@@ -16,6 +16,7 @@
* @{
*/
#include "./vp8.h"
+#include "vpx/vpx_encoder.h"
/*!\file
* \brief Provides definitions for using VP8 or VP9 encoder algorithm within the
@@ -447,6 +448,7 @@ enum vp8e_enc_control_id {
*/
VP9E_SET_SVC,
+#if VPX_ENCODER_ABI_VERSION > (4 + VPX_CODEC_ABI_VERSION)
/*!\brief Codec control function to set parameters for SVC.
* \note Parameters contain min_q, max_q, scaling factor for each of the
* SVC layers.
@@ -454,6 +456,7 @@ enum vp8e_enc_control_id {
* Supported in codecs: VP9
*/
VP9E_SET_SVC_PARAMETERS,
+#endif
/*!\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
@@ -473,6 +476,7 @@ enum vp8e_enc_control_id {
*/
VP9E_SET_TUNE_CONTENT,
+#if VPX_ENCODER_ABI_VERSION > (4 + VPX_CODEC_ABI_VERSION)
/*!\brief Codec control function to get svc layer ID.
* \note The layer ID returned is for the data packet from the registered
* callback function.
@@ -488,6 +492,7 @@ enum vp8e_enc_control_id {
* Supported in codecs: VP9
*/
VP9E_REGISTER_CX_CALLBACK,
+#endif
/*!\brief Codec control function to set color space info.
* \note Valid ranges: 0..7, default is "UNKNOWN".
@@ -591,6 +596,7 @@ typedef enum {
VP8_TUNE_SSIM
} vp8e_tuning;
+#if VPX_ENCODER_ABI_VERSION > (4 + VPX_CODEC_ABI_VERSION)
/*!\brief vp9 svc layer parameters
*
* This defines the spatial and temporal layer id numbers for svc encoding.
@@ -602,6 +608,18 @@ typedef struct vpx_svc_layer_id {
int spatial_layer_id; /**< Spatial layer id number. */
int temporal_layer_id; /**< Temporal layer id number. */
} vpx_svc_layer_id_t;
+#else
+/*!\brief vp9 svc layer parameters
+ *
+ * This defines the temporal layer id numbers for svc encoding.
+ * This is used with the #VP9E_SET_SVC_LAYER_ID control to set the
+ * temporal layer id for the current frame.
+ *
+ */
+typedef struct vpx_svc_layer_id {
+ int temporal_layer_id; /**< Temporal layer id number. */
+} vpx_svc_layer_id_t;
+#endif
/*!\brief VP8 encoder control function parameter type
*
@@ -625,8 +643,10 @@ VPX_CTRL_USE_TYPE(VP8E_SET_ACTIVEMAP, vpx_active_map_t *)
VPX_CTRL_USE_TYPE(VP8E_SET_SCALEMODE, vpx_scaling_mode_t *)
VPX_CTRL_USE_TYPE(VP9E_SET_SVC, int)
+#if VPX_ENCODER_ABI_VERSION > (4 + VPX_CODEC_ABI_VERSION)
VPX_CTRL_USE_TYPE(VP9E_SET_SVC_PARAMETERS, void *)
VPX_CTRL_USE_TYPE(VP9E_REGISTER_CX_CALLBACK, void *)
+#endif
VPX_CTRL_USE_TYPE(VP9E_SET_SVC_LAYER_ID, vpx_svc_layer_id_t *)
VPX_CTRL_USE_TYPE(VP8E_SET_CPUUSED, int)
@@ -647,7 +667,9 @@ VPX_CTRL_USE_TYPE(VP9E_SET_TILE_ROWS, int)
VPX_CTRL_USE_TYPE(VP8E_GET_LAST_QUANTIZER, int *)
VPX_CTRL_USE_TYPE(VP8E_GET_LAST_QUANTIZER_64, int *)
+#if VPX_ENCODER_ABI_VERSION > (4 + VPX_CODEC_ABI_VERSION)
VPX_CTRL_USE_TYPE(VP9E_GET_SVC_LAYER_ID, vpx_svc_layer_id_t *)
+#endif
VPX_CTRL_USE_TYPE(VP8E_SET_MAX_INTRA_BITRATE_PCT, unsigned int)
VPX_CTRL_USE_TYPE(VP8E_SET_MAX_INTER_BITRATE_PCT, unsigned int)