Remove ABI check for 1 pass CBR SVC.
Remove the ABI check for the controls needed for SVC 1 pass CBR mode. Bump up the ABI version. Change-Id: I35b79ee010e14af83c6d1e801d574deaaa2fc7eb
This commit is contained in:
parent
5df6c04585
commit
a8c5ab2ca6
@ -1,3 +1,6 @@
|
|||||||
|
xxxx-yy-zz v1.4.0 "Changes for next release"
|
||||||
|
Encoder controls added for 1 pass SVC.
|
||||||
|
|
||||||
2015-04-03 v1.4.0 "Indian Runner Duck"
|
2015-04-03 v1.4.0 "Indian Runner Duck"
|
||||||
This release includes significant improvements to the VP9 codec.
|
This release includes significant improvements to the VP9 codec.
|
||||||
|
|
||||||
|
@ -684,27 +684,22 @@ int main(int argc, char **argv) {
|
|||||||
vpx_codec_control(&codec, VP8E_SET_NOISE_SENSITIVITY, kDenoiserOff);
|
vpx_codec_control(&codec, VP8E_SET_NOISE_SENSITIVITY, kDenoiserOff);
|
||||||
vpx_codec_control(&codec, VP8E_SET_STATIC_THRESHOLD, 0);
|
vpx_codec_control(&codec, VP8E_SET_STATIC_THRESHOLD, 0);
|
||||||
} else if (strncmp(encoder->name, "vp9", 3) == 0) {
|
} else if (strncmp(encoder->name, "vp9", 3) == 0) {
|
||||||
#if VPX_ENCODER_ABI_VERSION > (4 + VPX_CODEC_ABI_VERSION)
|
|
||||||
vpx_svc_extra_cfg_t svc_params;
|
vpx_svc_extra_cfg_t svc_params;
|
||||||
#endif
|
vpx_codec_control(&codec, VP8E_SET_CPUUSED, speed);
|
||||||
vpx_codec_control(&codec, VP8E_SET_CPUUSED, speed);
|
vpx_codec_control(&codec, VP9E_SET_AQ_MODE, 3);
|
||||||
vpx_codec_control(&codec, VP9E_SET_AQ_MODE, 3);
|
vpx_codec_control(&codec, VP9E_SET_FRAME_PERIODIC_BOOST, 0);
|
||||||
vpx_codec_control(&codec, VP9E_SET_FRAME_PERIODIC_BOOST, 0);
|
vpx_codec_control(&codec, VP9E_SET_NOISE_SENSITIVITY, 0);
|
||||||
vpx_codec_control(&codec, VP9E_SET_NOISE_SENSITIVITY, 0);
|
vpx_codec_control(&codec, VP8E_SET_STATIC_THRESHOLD, 0);
|
||||||
vpx_codec_control(&codec, VP8E_SET_STATIC_THRESHOLD, 0);
|
vpx_codec_control(&codec, VP9E_SET_TILE_COLUMNS, (cfg.g_threads >> 1));
|
||||||
vpx_codec_control(&codec, VP9E_SET_TILE_COLUMNS, (cfg.g_threads >> 1));
|
if (vpx_codec_control(&codec, VP9E_SET_SVC, layering_mode > 0 ? 1: 0))
|
||||||
if (vpx_codec_control(&codec, VP9E_SET_SVC, layering_mode > 0 ? 1: 0)) {
|
die_codec(&codec, "Failed to set SVC");
|
||||||
die_codec(&codec, "Failed to set SVC");
|
for (i = 0; i < cfg.ts_number_layers; ++i) {
|
||||||
#if VPX_ENCODER_ABI_VERSION > (4 + VPX_CODEC_ABI_VERSION)
|
svc_params.max_quantizers[i] = cfg.rc_max_quantizer;
|
||||||
for (i = 0; i < cfg.ts_number_layers; ++i) {
|
svc_params.min_quantizers[i] = cfg.rc_min_quantizer;
|
||||||
svc_params.max_quantizers[i] = cfg.rc_max_quantizer;
|
|
||||||
svc_params.min_quantizers[i] = cfg.rc_min_quantizer;
|
|
||||||
}
|
|
||||||
svc_params.scaling_factor_num[0] = cfg.g_h;
|
|
||||||
svc_params.scaling_factor_den[0] = cfg.g_h;
|
|
||||||
vpx_codec_control(&codec, VP9E_SET_SVC_PARAMETERS, &svc_params);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
svc_params.scaling_factor_num[0] = cfg.g_h;
|
||||||
|
svc_params.scaling_factor_den[0] = cfg.g_h;
|
||||||
|
vpx_codec_control(&codec, VP9E_SET_SVC_PARAMETERS, &svc_params);
|
||||||
}
|
}
|
||||||
if (strncmp(encoder->name, "vp8", 3) == 0) {
|
if (strncmp(encoder->name, "vp8", 3) == 0) {
|
||||||
vpx_codec_control(&codec, VP8E_SET_SCREEN_CONTENT_MODE, 0);
|
vpx_codec_control(&codec, VP8E_SET_SCREEN_CONTENT_MODE, 0);
|
||||||
|
@ -372,9 +372,7 @@ class DatarateTestVP9Large : public ::libvpx_test::EncoderTest,
|
|||||||
encoder->Control(VP9E_SET_SVC, 1);
|
encoder->Control(VP9E_SET_SVC, 1);
|
||||||
}
|
}
|
||||||
vpx_svc_layer_id_t layer_id;
|
vpx_svc_layer_id_t layer_id;
|
||||||
#if VPX_ENCODER_ABI_VERSION > (4 + VPX_CODEC_ABI_VERSION)
|
|
||||||
layer_id.spatial_layer_id = 0;
|
layer_id.spatial_layer_id = 0;
|
||||||
#endif
|
|
||||||
frame_flags_ = SetFrameFlags(video->frame(), cfg_.ts_number_layers);
|
frame_flags_ = SetFrameFlags(video->frame(), cfg_.ts_number_layers);
|
||||||
layer_id.temporal_layer_id = SetLayerId(video->frame(),
|
layer_id.temporal_layer_id = SetLayerId(video->frame(),
|
||||||
cfg_.ts_number_layers);
|
cfg_.ts_number_layers);
|
||||||
@ -779,9 +777,7 @@ class DatarateOnePassCbrSvc : public ::libvpx_test::EncoderTest,
|
|||||||
svc_params_.scaling_factor_num[1] = 288;
|
svc_params_.scaling_factor_num[1] = 288;
|
||||||
svc_params_.scaling_factor_den[1] = 288;
|
svc_params_.scaling_factor_den[1] = 288;
|
||||||
encoder->Control(VP9E_SET_SVC, 1);
|
encoder->Control(VP9E_SET_SVC, 1);
|
||||||
#if VPX_ENCODER_ABI_VERSION > (4 + VPX_CODEC_ABI_VERSION)
|
|
||||||
encoder->Control(VP9E_SET_SVC_PARAMETERS, &svc_params_);
|
encoder->Control(VP9E_SET_SVC_PARAMETERS, &svc_params_);
|
||||||
#endif
|
|
||||||
encoder->Control(VP8E_SET_CPUUSED, speed_setting_);
|
encoder->Control(VP8E_SET_CPUUSED, speed_setting_);
|
||||||
encoder->Control(VP9E_SET_TILE_COLUMNS, 0);
|
encoder->Control(VP9E_SET_TILE_COLUMNS, 0);
|
||||||
encoder->Control(VP8E_SET_MAX_INTRA_BITRATE_PCT, 300);
|
encoder->Control(VP8E_SET_MAX_INTRA_BITRATE_PCT, 300);
|
||||||
@ -869,7 +865,7 @@ static void assign_layer_bitrates(vpx_codec_enc_cfg_t *const enc_cfg,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#if VPX_ENCODER_ABI_VERSION > (4 + VPX_CODEC_ABI_VERSION)
|
|
||||||
// Check basic rate targeting for 1 pass CBR SVC: 2 spatial layers and
|
// Check basic rate targeting for 1 pass CBR SVC: 2 spatial layers and
|
||||||
// 3 temporal layers.
|
// 3 temporal layers.
|
||||||
TEST_P(DatarateOnePassCbrSvc, OnePassCbrSvc) {
|
TEST_P(DatarateOnePassCbrSvc, OnePassCbrSvc) {
|
||||||
@ -911,7 +907,7 @@ TEST_P(DatarateOnePassCbrSvc, OnePassCbrSvc) {
|
|||||||
<< " The datarate for the file is lower than the target by too much!";
|
<< " The datarate for the file is lower than the target by too much!";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
VP8_INSTANTIATE_TEST_CASE(DatarateTestLarge, ALL_TEST_MODES);
|
VP8_INSTANTIATE_TEST_CASE(DatarateTestLarge, ALL_TEST_MODES);
|
||||||
VP9_INSTANTIATE_TEST_CASE(DatarateTestVP9Large,
|
VP9_INSTANTIATE_TEST_CASE(DatarateTestVP9Large,
|
||||||
::testing::Values(::libvpx_test::kOnePassGood,
|
::testing::Values(::libvpx_test::kOnePassGood,
|
||||||
|
@ -843,7 +843,9 @@ static int choose_partitioning(VP9_COMP *cpi,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (is_key_frame || (low_res &&
|
// TODO(marpan): There is an issue with variance based on 4x4 average in
|
||||||
|
// svc mode, don't allow it for now.
|
||||||
|
if (is_key_frame || (low_res && !cpi->use_svc &&
|
||||||
vt.split[i].split[j].part_variances.none.variance >
|
vt.split[i].split[j].part_variances.none.variance >
|
||||||
(thresholds[1] << 1))) {
|
(thresholds[1] << 1))) {
|
||||||
force_split[split_index] = 0;
|
force_split[split_index] = 0;
|
||||||
|
@ -1103,6 +1103,7 @@ static vpx_codec_err_t encoder_encode(vpx_codec_alg_priv_t *ctx,
|
|||||||
|
|
||||||
cx_data += size;
|
cx_data += size;
|
||||||
cx_data_sz -= size;
|
cx_data_sz -= size;
|
||||||
|
#if VPX_ENCODER_ABI_VERSION > (5 + VPX_CODEC_ABI_VERSION)
|
||||||
#if CONFIG_SPATIAL_SVC
|
#if CONFIG_SPATIAL_SVC
|
||||||
if (cpi->use_svc && !ctx->output_cx_pkt_cb.output_cx_pkt) {
|
if (cpi->use_svc && !ctx->output_cx_pkt_cb.output_cx_pkt) {
|
||||||
vpx_codec_cx_pkt_t pkt_sizes, pkt_psnr;
|
vpx_codec_cx_pkt_t pkt_sizes, pkt_psnr;
|
||||||
@ -1123,6 +1124,7 @@ static vpx_codec_err_t encoder_encode(vpx_codec_alg_priv_t *ctx,
|
|||||||
|
|
||||||
vpx_codec_pkt_list_add(&ctx->pkt_list.head, &pkt_psnr);
|
vpx_codec_pkt_list_add(&ctx->pkt_list.head, &pkt_psnr);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
if (is_one_pass_cbr_svc(cpi) &&
|
if (is_one_pass_cbr_svc(cpi) &&
|
||||||
(cpi->svc.spatial_layer_id == cpi->svc.number_spatial_layers - 1)) {
|
(cpi->svc.spatial_layer_id == cpi->svc.number_spatial_layers - 1)) {
|
||||||
@ -1331,9 +1333,7 @@ static vpx_codec_err_t ctrl_set_svc_layer_id(vpx_codec_alg_priv_t *ctx,
|
|||||||
VP9_COMP *const cpi = (VP9_COMP *)ctx->cpi;
|
VP9_COMP *const cpi = (VP9_COMP *)ctx->cpi;
|
||||||
SVC *const svc = &cpi->svc;
|
SVC *const svc = &cpi->svc;
|
||||||
|
|
||||||
#if VPX_ENCODER_ABI_VERSION > (4 + VPX_CODEC_ABI_VERSION)
|
|
||||||
svc->spatial_layer_id = data->spatial_layer_id;
|
svc->spatial_layer_id = data->spatial_layer_id;
|
||||||
#endif
|
|
||||||
svc->temporal_layer_id = data->temporal_layer_id;
|
svc->temporal_layer_id = data->temporal_layer_id;
|
||||||
// Checks on valid layer_id input.
|
// Checks on valid layer_id input.
|
||||||
if (svc->temporal_layer_id < 0 ||
|
if (svc->temporal_layer_id < 0 ||
|
||||||
@ -1353,9 +1353,7 @@ static vpx_codec_err_t ctrl_get_svc_layer_id(vpx_codec_alg_priv_t *ctx,
|
|||||||
VP9_COMP *const cpi = (VP9_COMP *)ctx->cpi;
|
VP9_COMP *const cpi = (VP9_COMP *)ctx->cpi;
|
||||||
SVC *const svc = &cpi->svc;
|
SVC *const svc = &cpi->svc;
|
||||||
|
|
||||||
#if VPX_ENCODER_ABI_VERSION > (4 + VPX_CODEC_ABI_VERSION)
|
|
||||||
data->spatial_layer_id = svc->spatial_layer_id;
|
data->spatial_layer_id = svc->spatial_layer_id;
|
||||||
#endif
|
|
||||||
data->temporal_layer_id = svc->temporal_layer_id;
|
data->temporal_layer_id = svc->temporal_layer_id;
|
||||||
|
|
||||||
return VPX_CODEC_OK;
|
return VPX_CODEC_OK;
|
||||||
@ -1440,10 +1438,8 @@ static vpx_codec_ctrl_fn_map_t encoder_ctrl_maps[] = {
|
|||||||
{VP9E_SET_AQ_MODE, ctrl_set_aq_mode},
|
{VP9E_SET_AQ_MODE, ctrl_set_aq_mode},
|
||||||
{VP9E_SET_FRAME_PERIODIC_BOOST, ctrl_set_frame_periodic_boost},
|
{VP9E_SET_FRAME_PERIODIC_BOOST, ctrl_set_frame_periodic_boost},
|
||||||
{VP9E_SET_SVC, ctrl_set_svc},
|
{VP9E_SET_SVC, ctrl_set_svc},
|
||||||
#if VPX_ENCODER_ABI_VERSION > (4 + VPX_CODEC_ABI_VERSION)
|
|
||||||
{VP9E_SET_SVC_PARAMETERS, ctrl_set_svc_parameters},
|
{VP9E_SET_SVC_PARAMETERS, ctrl_set_svc_parameters},
|
||||||
{VP9E_REGISTER_CX_CALLBACK, ctrl_register_cx_callback},
|
{VP9E_REGISTER_CX_CALLBACK, ctrl_register_cx_callback},
|
||||||
#endif
|
|
||||||
{VP9E_SET_SVC_LAYER_ID, ctrl_set_svc_layer_id},
|
{VP9E_SET_SVC_LAYER_ID, ctrl_set_svc_layer_id},
|
||||||
{VP9E_SET_TUNE_CONTENT, ctrl_set_tune_content},
|
{VP9E_SET_TUNE_CONTENT, ctrl_set_tune_content},
|
||||||
{VP9E_SET_COLOR_SPACE, ctrl_set_color_space},
|
{VP9E_SET_COLOR_SPACE, ctrl_set_color_space},
|
||||||
@ -1453,9 +1449,7 @@ static vpx_codec_ctrl_fn_map_t encoder_ctrl_maps[] = {
|
|||||||
{VP8E_GET_LAST_QUANTIZER, ctrl_get_quantizer},
|
{VP8E_GET_LAST_QUANTIZER, ctrl_get_quantizer},
|
||||||
{VP8E_GET_LAST_QUANTIZER_64, ctrl_get_quantizer64},
|
{VP8E_GET_LAST_QUANTIZER_64, ctrl_get_quantizer64},
|
||||||
{VP9_GET_REFERENCE, ctrl_get_reference},
|
{VP9_GET_REFERENCE, ctrl_get_reference},
|
||||||
#if VPX_ENCODER_ABI_VERSION > (4 + VPX_CODEC_ABI_VERSION)
|
|
||||||
{VP9E_GET_SVC_LAYER_ID, ctrl_get_svc_layer_id},
|
{VP9E_GET_SVC_LAYER_ID, ctrl_get_svc_layer_id},
|
||||||
#endif
|
|
||||||
{VP9E_GET_ACTIVEMAP, ctrl_get_active_map},
|
{VP9E_GET_ACTIVEMAP, ctrl_get_active_map},
|
||||||
|
|
||||||
{ -1, NULL},
|
{ -1, NULL},
|
||||||
|
@ -529,6 +529,7 @@ vpx_codec_err_t vpx_svc_encode(SvcContext *svc_ctx,
|
|||||||
iter = NULL;
|
iter = NULL;
|
||||||
while ((cx_pkt = vpx_codec_get_cx_data(codec_ctx, &iter))) {
|
while ((cx_pkt = vpx_codec_get_cx_data(codec_ctx, &iter))) {
|
||||||
switch (cx_pkt->kind) {
|
switch (cx_pkt->kind) {
|
||||||
|
#if VPX_ENCODER_ABI_VERSION > (5 + VPX_CODEC_ABI_VERSION)
|
||||||
#if CONFIG_SPATIAL_SVC
|
#if CONFIG_SPATIAL_SVC
|
||||||
case VPX_CODEC_SPATIAL_SVC_LAYER_PSNR: {
|
case VPX_CODEC_SPATIAL_SVC_LAYER_PSNR: {
|
||||||
int i;
|
int i;
|
||||||
@ -566,6 +567,7 @@ vpx_codec_err_t vpx_svc_encode(SvcContext *svc_ctx,
|
|||||||
si->bytes_sum[i] += cx_pkt->data.layer_sizes[i];
|
si->bytes_sum[i] += cx_pkt->data.layer_sizes[i];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
default: {
|
default: {
|
||||||
break;
|
break;
|
||||||
|
21
vpx/vp8cx.h
21
vpx/vp8cx.h
@ -450,7 +450,6 @@ enum vp8e_enc_control_id {
|
|||||||
*/
|
*/
|
||||||
VP9E_SET_SVC,
|
VP9E_SET_SVC,
|
||||||
|
|
||||||
#if VPX_ENCODER_ABI_VERSION > (4 + VPX_CODEC_ABI_VERSION)
|
|
||||||
/*!\brief Codec 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
|
* \note Parameters contain min_q, max_q, scaling factor for each of the
|
||||||
* SVC layers.
|
* SVC layers.
|
||||||
@ -458,7 +457,6 @@ enum vp8e_enc_control_id {
|
|||||||
* Supported in codecs: VP9
|
* Supported in codecs: VP9
|
||||||
*/
|
*/
|
||||||
VP9E_SET_SVC_PARAMETERS,
|
VP9E_SET_SVC_PARAMETERS,
|
||||||
#endif
|
|
||||||
|
|
||||||
/*!\brief Codec 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
|
* \note Valid ranges: 0..#vpx_codec_enc_cfg::ss_number_layers for spatial
|
||||||
@ -478,7 +476,6 @@ enum vp8e_enc_control_id {
|
|||||||
*/
|
*/
|
||||||
VP9E_SET_TUNE_CONTENT,
|
VP9E_SET_TUNE_CONTENT,
|
||||||
|
|
||||||
#if VPX_ENCODER_ABI_VERSION > (4 + VPX_CODEC_ABI_VERSION)
|
|
||||||
/*!\brief Codec 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
|
* \note The layer ID returned is for the data packet from the registered
|
||||||
* callback function.
|
* callback function.
|
||||||
@ -494,7 +491,6 @@ enum vp8e_enc_control_id {
|
|||||||
* Supported in codecs: VP9
|
* Supported in codecs: VP9
|
||||||
*/
|
*/
|
||||||
VP9E_REGISTER_CX_CALLBACK,
|
VP9E_REGISTER_CX_CALLBACK,
|
||||||
#endif
|
|
||||||
|
|
||||||
/*!\brief Codec control function to set color space info.
|
/*!\brief Codec control function to set color space info.
|
||||||
* \note Valid ranges: 0..7, default is "UNKNOWN".
|
* \note Valid ranges: 0..7, default is "UNKNOWN".
|
||||||
@ -641,7 +637,6 @@ typedef enum {
|
|||||||
VP8_TUNE_SSIM
|
VP8_TUNE_SSIM
|
||||||
} vp8e_tuning;
|
} vp8e_tuning;
|
||||||
|
|
||||||
#if VPX_ENCODER_ABI_VERSION > (4 + VPX_CODEC_ABI_VERSION)
|
|
||||||
/*!\brief vp9 svc layer parameters
|
/*!\brief vp9 svc layer parameters
|
||||||
*
|
*
|
||||||
* This defines the spatial and temporal layer id numbers for svc encoding.
|
* This defines the spatial and temporal layer id numbers for svc encoding.
|
||||||
@ -653,18 +648,6 @@ typedef struct vpx_svc_layer_id {
|
|||||||
int spatial_layer_id; /**< Spatial layer id number. */
|
int spatial_layer_id; /**< Spatial layer id number. */
|
||||||
int temporal_layer_id; /**< Temporal layer id number. */
|
int temporal_layer_id; /**< Temporal layer id number. */
|
||||||
} vpx_svc_layer_id_t;
|
} 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
|
/*!\brief VP8 encoder control function parameter type
|
||||||
*
|
*
|
||||||
@ -688,10 +671,8 @@ 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(VP8E_SET_SCALEMODE, vpx_scaling_mode_t *)
|
||||||
|
|
||||||
VPX_CTRL_USE_TYPE(VP9E_SET_SVC, int)
|
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_SET_SVC_PARAMETERS, void *)
|
||||||
VPX_CTRL_USE_TYPE(VP9E_REGISTER_CX_CALLBACK, 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(VP9E_SET_SVC_LAYER_ID, vpx_svc_layer_id_t *)
|
||||||
|
|
||||||
VPX_CTRL_USE_TYPE(VP8E_SET_CPUUSED, int)
|
VPX_CTRL_USE_TYPE(VP8E_SET_CPUUSED, int)
|
||||||
@ -712,9 +693,7 @@ 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, int *)
|
||||||
VPX_CTRL_USE_TYPE(VP8E_GET_LAST_QUANTIZER_64, 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 *)
|
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_INTRA_BITRATE_PCT, unsigned int)
|
||||||
VPX_CTRL_USE_TYPE(VP8E_SET_MAX_INTER_BITRATE_PCT, unsigned int)
|
VPX_CTRL_USE_TYPE(VP8E_SET_MAX_INTER_BITRATE_PCT, unsigned int)
|
||||||
|
@ -62,7 +62,7 @@ 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_ENCODER_ABI_VERSION (4 + VPX_CODEC_ABI_VERSION) /**<\hideinitializer*/
|
#define VPX_ENCODER_ABI_VERSION (5 + VPX_CODEC_ABI_VERSION) /**<\hideinitializer*/
|
||||||
|
|
||||||
|
|
||||||
/*! \brief Encoder capabilities bitfield
|
/*! \brief Encoder capabilities bitfield
|
||||||
@ -166,7 +166,7 @@ extern "C" {
|
|||||||
VPX_CODEC_PSNR_PKT, /**< PSNR statistics for this frame */
|
VPX_CODEC_PSNR_PKT, /**< PSNR statistics for this frame */
|
||||||
// Spatial SVC is still experimental and may be removed before the next ABI
|
// Spatial SVC is still experimental and may be removed before the next ABI
|
||||||
// bump.
|
// 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_SIZES, /**< Sizes for each layer in this frame*/
|
||||||
VPX_CODEC_SPATIAL_SVC_LAYER_PSNR, /**< PSNR for each layer in this frame*/
|
VPX_CODEC_SPATIAL_SVC_LAYER_PSNR, /**< PSNR for each layer in this frame*/
|
||||||
#endif
|
#endif
|
||||||
@ -208,7 +208,7 @@ extern "C" {
|
|||||||
vpx_fixed_buf_t raw; /**< data for arbitrary packets */
|
vpx_fixed_buf_t raw; /**< data for arbitrary packets */
|
||||||
// Spatial SVC is still experimental and may be removed before the next
|
// Spatial SVC is still experimental and may be removed before the next
|
||||||
// ABI bump.
|
// 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];
|
size_t layer_sizes[VPX_SS_MAX_LAYERS];
|
||||||
struct vpx_psnr_pkt layer_psnr[VPX_SS_MAX_LAYERS];
|
struct vpx_psnr_pkt layer_psnr[VPX_SS_MAX_LAYERS];
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user