Index: media/cast/sender/vp8_encoder.cc |
diff --git a/media/cast/sender/vp8_encoder.cc b/media/cast/sender/vp8_encoder.cc |
index a34768fa8530736340c0bd1988a869d99a14ed67..8513b5e3ba48c555a3b9b4e07ee8d2a83c93b72c 100644 |
--- a/media/cast/sender/vp8_encoder.cc |
+++ b/media/cast/sender/vp8_encoder.cc |
@@ -63,24 +63,26 @@ bool HasSufficientFeedback( |
} // namespace |
-Vp8Encoder::Vp8Encoder(const VideoSenderConfig& video_config) |
+Vp8Encoder::Vp8Encoder(const FrameSenderConfig& video_config) |
: cast_config_(video_config), |
target_deadline_utilization_( |
- video_config.number_of_encode_threads > 2 |
+ video_config.codec_specific_params.number_of_encode_threads > 2 |
? kHiTargetDeadlineUtilization |
- : (video_config.number_of_encode_threads > 1 |
+ : (video_config.codec_specific_params.number_of_encode_threads > 1 |
? kMidTargetDeadlineUtilization |
: kLoTargetDeadlineUtilization)), |
key_frame_requested_(true), |
- bitrate_kbit_(cast_config_.start_bitrate / 1000), |
+ bitrate_kbit_(cast_config_.codec_specific_params.start_bitrate / 1000), |
next_frame_id_(FrameId::first()), |
has_seen_zero_length_encoded_frame_(false), |
encoding_speed_acc_( |
base::TimeDelta::FromMicroseconds(kEncodingSpeedAccHalfLife)), |
encoding_speed_(kHighestEncodingSpeed) { |
config_.g_timebase.den = 0; // Not initialized. |
- DCHECK_LE(cast_config_.min_qp, cast_config_.max_cpu_saver_qp); |
- DCHECK_LE(cast_config_.max_cpu_saver_qp, cast_config_.max_qp); |
+ DCHECK_LE(cast_config_.codec_specific_params.min_qp, |
+ cast_config_.codec_specific_params.max_cpu_saver_qp); |
+ DCHECK_LE(cast_config_.codec_specific_params.max_cpu_saver_qp, |
+ cast_config_.codec_specific_params.max_qp); |
thread_checker_.DetachFromThread(); |
} |
@@ -110,7 +112,7 @@ void Vp8Encoder::ConfigureForNewFrameSize(const gfx::Size& frame_size) { |
<< frame_size.ToString(); |
config_.g_w = frame_size.width(); |
config_.g_h = frame_size.height(); |
- config_.rc_min_quantizer = cast_config_.min_qp; |
+ config_.rc_min_quantizer = cast_config_.codec_specific_params.min_qp; |
if (vpx_codec_enc_config_set(&encoder_, &config_) == VPX_CODEC_OK) |
return; |
DVLOG(1) << "libvpx rejected the attempt to use a smaller frame size in " |
@@ -130,7 +132,8 @@ void Vp8Encoder::ConfigureForNewFrameSize(const gfx::Size& frame_size) { |
CHECK_EQ(vpx_codec_enc_config_default(vpx_codec_vp8_cx(), &config_, 0), |
VPX_CODEC_OK); |
- config_.g_threads = cast_config_.number_of_encode_threads; |
+ config_.g_threads = |
+ cast_config_.codec_specific_params.number_of_encode_threads; |
config_.g_w = frame_size.width(); |
config_.g_h = frame_size.height(); |
// Set the timebase to match that of base::TimeDelta. |
@@ -147,8 +150,8 @@ void Vp8Encoder::ConfigureForNewFrameSize(const gfx::Size& frame_size) { |
config_.rc_resize_allowed = 0; // TODO(miu): Why not? Investigate this. |
config_.rc_end_usage = VPX_CBR; |
config_.rc_target_bitrate = bitrate_kbit_; |
- config_.rc_min_quantizer = cast_config_.min_qp; |
- config_.rc_max_quantizer = cast_config_.max_qp; |
+ config_.rc_min_quantizer = cast_config_.codec_specific_params.min_qp; |
+ config_.rc_max_quantizer = cast_config_.codec_specific_params.max_qp; |
// TODO(miu): Revisit these now that the encoder is being successfully |
// micro-managed. |
config_.rc_undershoot_pct = 100; |
@@ -351,7 +354,7 @@ void Vp8Encoder::Encode(const scoped_refptr<media::VideoFrame>& video_frame, |
double actual_encoding_speed = |
encoding_speed_ + |
kEquivalentEncodingSpeedStepPerQpStep * |
- std::max(0, quantizer - cast_config_.min_qp); |
+ std::max(0, quantizer - cast_config_.codec_specific_params.min_qp); |
double adjusted_encoding_speed = actual_encoding_speed * |
encoded_frame->deadline_utilization / |
target_deadline_utilization_; |
@@ -370,12 +373,13 @@ void Vp8Encoder::Encode(const scoped_refptr<media::VideoFrame>& video_frame, |
next_encoding_speed = kHighestEncodingSpeed; |
next_min_qp = |
static_cast<int>(remainder / kEquivalentEncodingSpeedStepPerQpStep + |
- cast_config_.min_qp + 0.5); |
- next_min_qp = std::min(next_min_qp, cast_config_.max_cpu_saver_qp); |
+ cast_config_.codec_specific_params.min_qp + 0.5); |
+ next_min_qp = std::min( |
+ next_min_qp, cast_config_.codec_specific_params.max_cpu_saver_qp); |
} else { |
next_encoding_speed = |
std::max<double>(kLowestEncodingSpeed, next_encoding_speed) + 0.5; |
- next_min_qp = cast_config_.min_qp; |
+ next_min_qp = cast_config_.codec_specific_params.min_qp; |
} |
if (encoding_speed_ != static_cast<int>(next_encoding_speed)) { |
encoding_speed_ = static_cast<int>(next_encoding_speed); |