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

Unified Diff: webrtc/video/vie_encoder.cc

Issue 1751363003: Move all calls after SetEncoder into SetEncoder. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 4 years, 10 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
« no previous file with comments | « webrtc/video/vie_encoder.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/video/vie_encoder.cc
diff --git a/webrtc/video/vie_encoder.cc b/webrtc/video/vie_encoder.cc
index 1433879f2d623a3086009308bf9ddf9dd6f551d9..7a453efc10e85508d75eebbe6775b00f031b0974 100644
--- a/webrtc/video/vie_encoder.cc
+++ b/webrtc/video/vie_encoder.cc
@@ -120,7 +120,7 @@ ViEEncoder::ViEEncoder(uint32_t number_of_cores,
bitrate_allocator_(bitrate_allocator),
time_of_last_frame_activity_ms_(0),
encoder_config_(),
- min_transmit_bitrate_kbps_(0),
+ min_transmit_bitrate_bps_(0),
last_observed_bitrate_bps_(0),
network_is_transmitting_(true),
encoder_paused_(false),
@@ -194,7 +194,8 @@ int32_t ViEEncoder::DeRegisterExternalEncoder(uint8_t pl_type) {
}
return 0;
}
-void ViEEncoder::SetEncoder(const webrtc::VideoCodec& video_codec) {
+void ViEEncoder::SetEncoder(const webrtc::VideoCodec& video_codec,
+ int min_transmit_bitrate_bps) {
RTC_DCHECK(send_payload_router_ != NULL);
// Setting target width and height for VPM.
RTC_CHECK_EQ(VPM_OK,
@@ -207,6 +208,7 @@ void ViEEncoder::SetEncoder(const webrtc::VideoCodec& video_codec) {
rtc::CritScope lock(&data_cs_);
encoder_config_ = video_codec;
encoder_paused_ = true;
+ min_transmit_bitrate_bps_ = min_transmit_bitrate_bps;
}
// Add a bitrate observer to the allocator and update the start, max and
@@ -232,6 +234,26 @@ void ViEEncoder::SetEncoder(const webrtc::VideoCodec& video_codec) {
// Restart the media flow
Restart();
+ if (stats_proxy_) {
+ // Clear stats for disabled layers.
+ for (size_t i = video_codec.numberOfSimulcastStreams; i < ssrcs_.size();
+ ++i) {
+ stats_proxy_->OnInactiveSsrc(ssrcs_[i]);
+ }
+ VideoEncoderConfig::ContentType content_type;
+ switch (video_codec.mode) {
+ case kRealtimeVideo:
+ content_type = VideoEncoderConfig::ContentType::kRealtimeVideo;
+ break;
+ case kScreensharing:
+ content_type = VideoEncoderConfig::ContentType::kScreen;
+ break;
+ default:
+ RTC_NOTREACHED();
+ break;
+ }
+ stats_proxy_->SetContentType(content_type);
+ }
}
int ViEEncoder::GetPaddingNeededBps() const {
@@ -242,11 +264,11 @@ int ViEEncoder::GetPaddingNeededBps() const {
{
rtc::CritScope lock(&data_cs_);
bool send_padding = encoder_config_.numberOfSimulcastStreams > 1 ||
- video_suspended_ || min_transmit_bitrate_kbps_ > 0;
+ video_suspended_ || min_transmit_bitrate_bps_ > 0;
if (!send_padding)
return 0;
time_of_last_frame_activity_ms = time_of_last_frame_activity_ms_;
- min_transmit_bitrate_bps = 1000 * min_transmit_bitrate_kbps_;
+ min_transmit_bitrate_bps = min_transmit_bitrate_bps_;
bitrate_bps = last_observed_bitrate_bps_;
send_codec = encoder_config_;
}
@@ -488,12 +510,6 @@ void ViEEncoder::OnReceivedIntraFrameRequest(uint32_t ssrc) {
RTC_NOTREACHED() << "Should not receive keyframe requests on unknown SSRCs.";
}
-void ViEEncoder::SetMinTransmitBitrate(int min_transmit_bitrate_kbps) {
- assert(min_transmit_bitrate_kbps >= 0);
- rtc::CritScope lock(&data_cs_);
- min_transmit_bitrate_kbps_ = min_transmit_bitrate_kbps;
-}
-
// Called from ViEBitrateObserver.
void ViEEncoder::OnNetworkChanged(uint32_t bitrate_bps,
uint8_t fraction_lost,
« no previous file with comments | « webrtc/video/vie_encoder.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698