Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(338)

Unified Diff: webrtc/modules/video_coding/main/source/video_sender.cc

Issue 1426953003: Remove redudant encoder rate calls. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: remove redundant function Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webrtc/modules/video_coding/main/source/video_sender.cc
diff --git a/webrtc/modules/video_coding/main/source/video_sender.cc b/webrtc/modules/video_coding/main/source/video_sender.cc
index cdbaffd75fe3c5764e2469c446636d92e65eb5e6..38089f71132f221a07ca7ca664899e68e7e4bc40 100644
--- a/webrtc/modules/video_coding/main/source/video_sender.cc
+++ b/webrtc/modules/video_coding/main/source/video_sender.cc
@@ -40,8 +40,8 @@ VideoSender::VideoSender(Clock* clock,
_sendStatsTimer(1000, clock_),
current_codec_(),
qm_settings_callback_(qm_settings_callback),
- protection_callback_(nullptr) {
- encoder_params_ = {0, 0, 0, 0, false};
+ protection_callback_(nullptr),
+ encoder_params_({0, 0, 0, 0}) {
// Allow VideoSender to be created on one thread but used on another, post
// construction. This is currently how this class is being used by at least
// one external project (diffractor).
@@ -70,7 +70,6 @@ int32_t VideoSender::Process() {
// Force an encoder parameters update, so that incoming frame rate is
// updated even if bandwidth hasn't changed.
encoder_params_.input_frame_rate = _mediaOpt.InputFrameRate();
- encoder_params_.updated = true;
}
return returnValue;
@@ -180,27 +179,15 @@ int32_t VideoSender::RegisterExternalEncoder(VideoEncoder* externalEncoder,
return 0;
}
-// Get codec config parameters
-int32_t VideoSender::CodecConfigParameters(uint8_t* buffer,
- int32_t size) const {
- rtc::CritScope lock(&send_crit_);
- if (_encoder != nullptr) {
- return _encoder->CodecConfigParameters(buffer, size);
- }
- return VCM_UNINITIALIZED;
-}
-
// Get encode bitrate
int VideoSender::Bitrate(unsigned int* bitrate) const {
RTC_DCHECK(main_thread_.CalledOnValidThread());
// Since we're running on the thread that's the only thread known to modify
// the value of _encoder, we don't need to grab the lock here.
- // return the bit rate which the encoder is set to
- if (!_encoder) {
+ if (!_encoder)
return VCM_UNINITIALIZED;
- }
- *bitrate = _encoder->BitRate();
+ *bitrate = _encoder->GetEncoderParameters().target_bitrate;
return 0;
}
@@ -210,11 +197,10 @@ int VideoSender::FrameRate(unsigned int* framerate) const {
// Since we're running on the thread that's the only thread known to modify
// the value of _encoder, we don't need to grab the lock here.
- // input frame rate, not compensated
- if (!_encoder) {
+ if (!_encoder)
return VCM_UNINITIALIZED;
- }
- *framerate = _encoder->FrameRate();
+
+ *framerate = _encoder->GetEncoderParameters().input_frame_rate;
return 0;
}
@@ -228,25 +214,21 @@ int32_t VideoSender::SetChannelParameters(uint32_t target_bitrate,
uint32_t input_frame_rate = _mediaOpt.InputFrameRate();
rtc::CritScope cs(&params_lock_);
- encoder_params_ =
- EncoderParameters{target_rate, lossRate, rtt, input_frame_rate, true};
+ encoder_params_ = {target_rate, lossRate, rtt, input_frame_rate};
return VCM_OK;
}
void VideoSender::SetEncoderParameters(EncoderParameters params) {
- if (!params.updated || params.target_bitrate == 0)
+ if (params.target_bitrate == 0)
return;
if (params.input_frame_rate == 0) {
// No frame rate estimate available, use default.
params.input_frame_rate = current_codec_.maxFramerate;
}
- if (_encoder != nullptr) {
- _encoder->SetChannelParameters(params.loss_rate, params.rtt);
- _encoder->SetRates(params.target_bitrate, params.input_frame_rate);
- }
- return;
+ if (_encoder != nullptr)
+ _encoder->SetEncoderParameters(params);
}
int32_t VideoSender::RegisterTransportCallback(
@@ -304,13 +286,11 @@ int32_t VideoSender::AddVideoFrame(const VideoFrame& videoFrame,
{
rtc::CritScope lock(&params_lock_);
encoder_params = encoder_params_;
- encoder_params_.updated = false;
}
rtc::CritScope lock(&send_crit_);
- SetEncoderParameters(encoder_params);
- if (_encoder == nullptr) {
+ if (_encoder == nullptr)
return VCM_UNINITIALIZED;
- }
+ SetEncoderParameters(encoder_params);
// TODO(holmer): Add support for dropping frames per stream. Currently we
// only have one frame dropper for all streams.
if (_nextFrameTypes[0] == kEmptyFrame) {

Powered by Google App Engine
This is Rietveld 408576698