| Index: source/libvpx/vpx/vpx_encoder.h
|
| diff --git a/source/libvpx/vpx/vpx_encoder.h b/source/libvpx/vpx/vpx_encoder.h
|
| index bf75584d58919b407d4758ec650c5a2a0fc84bed..2b17f98a2313f4aec55a4cb55fb98f389d90f384 100644
|
| --- a/source/libvpx/vpx/vpx_encoder.h
|
| +++ b/source/libvpx/vpx/vpx_encoder.h
|
| @@ -42,8 +42,11 @@ extern "C" {
|
| /*!\deprecated Use #VPX_TS_MAX_PERIODICITY instead. */
|
| #define MAX_PERIODICITY VPX_TS_MAX_PERIODICITY
|
|
|
| - /*!\deprecated Use #VPX_TS_MAX_LAYERS instead. */
|
| -#define MAX_LAYERS VPX_TS_MAX_LAYERS
|
| +/*! Temporal+Spatial Scalability: Maximum number of coding layers */
|
| +#define VPX_MAX_LAYERS 12 // 3 temporal + 4 spatial layers are allowed.
|
| +
|
| +/*!\deprecated Use #VPX_MAX_LAYERS instead. */
|
| +#define MAX_LAYERS VPX_MAX_LAYERS // 3 temporal + 4 spatial layers allowed.
|
|
|
| /*! Spatial Scalability: Maximum number of coding layers */
|
| #define VPX_SS_MAX_LAYERS 5
|
| @@ -59,7 +62,7 @@ extern "C" {
|
| * types, removing or reassigning enums, adding/removing/rearranging
|
| * fields to structures
|
| */
|
| -#define VPX_ENCODER_ABI_VERSION (4 + VPX_CODEC_ABI_VERSION) /**<\hideinitializer*/
|
| +#define VPX_ENCODER_ABI_VERSION (5 + VPX_CODEC_ABI_VERSION) /**<\hideinitializer*/
|
|
|
|
|
| /*! \brief Encoder capabilities bitfield
|
| @@ -163,7 +166,7 @@ extern "C" {
|
| VPX_CODEC_PSNR_PKT, /**< PSNR statistics for this frame */
|
| // Spatial SVC is still experimental and may be removed before the next ABI
|
| // bump.
|
| -#if VPX_ENCODER_ABI_VERSION > (4 + VPX_CODEC_ABI_VERSION)
|
| +#if VPX_ENCODER_ABI_VERSION > (5 + VPX_CODEC_ABI_VERSION)
|
| VPX_CODEC_SPATIAL_SVC_LAYER_SIZES, /**< Sizes for each layer in this frame*/
|
| VPX_CODEC_SPATIAL_SVC_LAYER_PSNR, /**< PSNR for each layer in this frame*/
|
| #endif
|
| @@ -205,7 +208,7 @@ extern "C" {
|
| vpx_fixed_buf_t raw; /**< data for arbitrary packets */
|
| // Spatial SVC is still experimental and may be removed before the next
|
| // ABI bump.
|
| -#if VPX_ENCODER_ABI_VERSION > (4 + VPX_CODEC_ABI_VERSION)
|
| +#if VPX_ENCODER_ABI_VERSION > (5 + VPX_CODEC_ABI_VERSION)
|
| size_t layer_sizes[VPX_SS_MAX_LAYERS];
|
| struct vpx_psnr_pkt layer_psnr[VPX_SS_MAX_LAYERS];
|
| #endif
|
| @@ -729,6 +732,22 @@ extern "C" {
|
| * ts_periodicity=8, then ts_layer_id = (0,1,0,1,0,1,0,1).
|
| */
|
| unsigned int ts_layer_id[VPX_TS_MAX_PERIODICITY];
|
| +
|
| + /*!\brief Target bitrate for each spatial/temporal layer.
|
| + *
|
| + * These values specify the target coding bitrate to be used for each
|
| + * spatial/temporal layer.
|
| + *
|
| + */
|
| + unsigned int layer_target_bitrate[VPX_MAX_LAYERS];
|
| +
|
| + /*!\brief Temporal layering mode indicating which temporal layering scheme to use.
|
| + *
|
| + * The value (refer to VP9E_TEMPORAL_LAYERING_MODE) specifies the
|
| + * temporal layering mode to use.
|
| + *
|
| + */
|
| + int temporal_layering_mode;
|
| } vpx_codec_enc_cfg_t; /**< alias for struct vpx_codec_enc_cfg */
|
|
|
| /*!\brief vp9 svc extra configure parameters
|
| @@ -737,10 +756,11 @@ extern "C" {
|
| *
|
| */
|
| typedef struct vpx_svc_parameters {
|
| - int max_quantizers[VPX_SS_MAX_LAYERS]; /**< Max Q for each layer */
|
| - int min_quantizers[VPX_SS_MAX_LAYERS]; /**< Min Q for each layer */
|
| - int scaling_factor_num[VPX_SS_MAX_LAYERS]; /**< Scaling factor-numerator*/
|
| - int scaling_factor_den[VPX_SS_MAX_LAYERS]; /**< Scaling factor-denominator*/
|
| + int max_quantizers[VPX_MAX_LAYERS]; /**< Max Q for each layer */
|
| + int min_quantizers[VPX_MAX_LAYERS]; /**< Min Q for each layer */
|
| + int scaling_factor_num[VPX_MAX_LAYERS]; /**< Scaling factor-numerator */
|
| + int scaling_factor_den[VPX_MAX_LAYERS]; /**< Scaling factor-denominator */
|
| + int temporal_layering_mode; /**< Temporal layering mode */
|
| } vpx_svc_extra_cfg_t;
|
|
|
|
|
|
|