diff --git a/webrtc/modules/video_coding/codecs/vp9/vp9_impl.cc b/webrtc/modules/video_coding/codecs/vp9/vp9_impl.cc index 47ca8726b0..82afd9e6c0 100644 --- a/webrtc/modules/video_coding/codecs/vp9/vp9_impl.cc +++ b/webrtc/modules/video_coding/codecs/vp9/vp9_impl.cc @@ -83,7 +83,7 @@ VP9EncoderImpl::VP9EncoderImpl() // Use two spatial when screensharing with flexible mode. spatial_layer_(new ScreenshareLayersVP9(2)) { memset(&codec_, 0, sizeof(codec_)); - memset(&svc_internal_.svc_params, 0, sizeof(vpx_svc_extra_cfg_t)); + memset(&svc_params_, 0, sizeof(vpx_svc_extra_cfg_t)); uint32_t seed = rtc::Time32(); srand(seed); } @@ -148,14 +148,14 @@ bool VP9EncoderImpl::SetSvcRates() { float total = 0; for (i = 0; i < num_spatial_layers_; ++i) { - if (svc_internal_.svc_params.scaling_factor_num[i] <= 0 || - svc_internal_.svc_params.scaling_factor_den[i] <= 0) { + if (svc_params_.scaling_factor_num[i] <= 0 || + svc_params_.scaling_factor_den[i] <= 0) { LOG(LS_ERROR) << "Scaling factors not specified!"; return false; } rate_ratio[i] = - static_cast(svc_internal_.svc_params.scaling_factor_num[i]) / - svc_internal_.svc_params.scaling_factor_den[i]; + static_cast(svc_params_.scaling_factor_num[i]) / + svc_params_.scaling_factor_den[i]; total += rate_ratio[i]; } @@ -396,22 +396,22 @@ int VP9EncoderImpl::InitAndSetControlSettings(const VideoCodec* inst) { // Set QP-min/max per spatial and temporal layer. int tot_num_layers = num_spatial_layers_ * num_temporal_layers_; for (int i = 0; i < tot_num_layers; ++i) { - svc_internal_.svc_params.max_quantizers[i] = config_->rc_max_quantizer; - svc_internal_.svc_params.min_quantizers[i] = config_->rc_min_quantizer; + svc_params_.max_quantizers[i] = config_->rc_max_quantizer; + svc_params_.min_quantizers[i] = config_->rc_min_quantizer; } config_->ss_number_layers = num_spatial_layers_; if (ExplicitlyConfiguredSpatialLayers()) { for (int i = 0; i < num_spatial_layers_; ++i) { const auto& layer = codec_.spatialLayers[i]; - svc_internal_.svc_params.scaling_factor_num[i] = layer.scaling_factor_num; - svc_internal_.svc_params.scaling_factor_den[i] = layer.scaling_factor_den; + svc_params_.scaling_factor_num[i] = layer.scaling_factor_num; + svc_params_.scaling_factor_den[i] = layer.scaling_factor_den; } } else { int scaling_factor_num = 256; for (int i = num_spatial_layers_ - 1; i >= 0; --i) { // 1:2 scaling in each dimension. - svc_internal_.svc_params.scaling_factor_num[i] = scaling_factor_num; - svc_internal_.svc_params.scaling_factor_den[i] = 256; + svc_params_.scaling_factor_num[i] = scaling_factor_num; + svc_params_.scaling_factor_den[i] = 256; if (codec_.mode != kScreensharing) scaling_factor_num /= 2; } @@ -435,7 +435,7 @@ int VP9EncoderImpl::InitAndSetControlSettings(const VideoCodec* inst) { (num_temporal_layers_ > 1 || num_spatial_layers_ > 1) ? 1 : 0); if (num_temporal_layers_ > 1 || num_spatial_layers_ > 1) { vpx_codec_control(encoder_, VP9E_SET_SVC_PARAMETERS, - &svc_internal_.svc_params); + &svc_params_); } // Register callback for getting each spatial layer. vpx_codec_priv_output_cx_pkt_cb_pair_t cbp = { @@ -648,11 +648,11 @@ void VP9EncoderImpl::PopulateCodecSpecific(CodecSpecificInfo* codec_specific, vp9_info->spatial_layer_resolution_present = true; for (size_t i = 0; i < vp9_info->num_spatial_layers; ++i) { vp9_info->width[i] = codec_.width * - svc_internal_.svc_params.scaling_factor_num[i] / - svc_internal_.svc_params.scaling_factor_den[i]; + svc_params_.scaling_factor_num[i] / + svc_params_.scaling_factor_den[i]; vp9_info->height[i] = codec_.height * - svc_internal_.svc_params.scaling_factor_num[i] / - svc_internal_.svc_params.scaling_factor_den[i]; + svc_params_.scaling_factor_num[i] / + svc_params_.scaling_factor_den[i]; } if (!vp9_info->flexible_mode) { vp9_info->gof.CopyGofInfoVP9(gof_); diff --git a/webrtc/modules/video_coding/codecs/vp9/vp9_impl.h b/webrtc/modules/video_coding/codecs/vp9/vp9_impl.h index 7078c50a70..d507b355f7 100644 --- a/webrtc/modules/video_coding/codecs/vp9/vp9_impl.h +++ b/webrtc/modules/video_coding/codecs/vp9/vp9_impl.h @@ -18,7 +18,7 @@ #include "webrtc/modules/video_coding/codecs/vp9/include/vp9.h" #include "webrtc/modules/video_coding/codecs/vp9/vp9_frame_buffer_pool.h" -#include "vpx/svc_context.h" +#include "vpx/vp8cx.h" #include "vpx/vpx_decoder.h" #include "vpx/vpx_encoder.h" @@ -113,7 +113,7 @@ class VP9EncoderImpl : public VP9Encoder { vpx_codec_ctx_t* encoder_; vpx_codec_enc_cfg_t* config_; vpx_image_t* raw_; - SvcInternal_t svc_internal_; + vpx_svc_extra_cfg_t svc_params_; const VideoFrame* input_image_; GofInfoVP9 gof_; // Contains each frame's temporal information for // non-flexible mode.