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

Unified Diff: webrtc/video/vie_encoder.cc

Issue 2770233003: Implemented the GetSources() in native code. (Closed)
Patch Set: Add a direct dependency to the webrtc/voice_engine/BUILD.gn Created 3 years, 8 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/video/vie_encoder.cc
diff --git a/webrtc/video/vie_encoder.cc b/webrtc/video/vie_encoder.cc
index aa5e593ed853ee47d05e712469f41691582a9742..1b81a37dd55e3c6b99c403a48abdd06b60875b39 100644
--- a/webrtc/video/vie_encoder.cc
+++ b/webrtc/video/vie_encoder.cc
@@ -33,7 +33,6 @@
namespace webrtc {
namespace {
-using DegradationPreference = VideoSendStream::DegradationPreference;
// Time interval for logging frame counts.
const int64_t kFrameLogIntervalMs = 60000;
@@ -152,11 +151,13 @@ class ViEEncoder::VideoSourceProxy {
public:
explicit VideoSourceProxy(ViEEncoder* vie_encoder)
: vie_encoder_(vie_encoder),
- degradation_preference_(DegradationPreference::kDegradationDisabled),
+ degradation_preference_(
+ VideoSendStream::DegradationPreference::kDegradationDisabled),
source_(nullptr) {}
- void SetSource(rtc::VideoSourceInterface<VideoFrame>* source,
- const DegradationPreference& degradation_preference) {
+ void SetSource(
+ rtc::VideoSourceInterface<VideoFrame>* source,
+ const VideoSendStream::DegradationPreference& degradation_preference) {
// Called on libjingle's worker thread.
RTC_DCHECK_CALLED_SEQUENTIALLY(&main_checker_);
rtc::VideoSourceInterface<VideoFrame>* old_source = nullptr;
@@ -192,16 +193,16 @@ class ViEEncoder::VideoSourceProxy {
// Clear any constraints from the current sink wants that don't apply to
// the used degradation_preference.
switch (degradation_preference_) {
- case DegradationPreference::kBalanced:
+ case VideoSendStream::DegradationPreference::kBalanced:
FALLTHROUGH();
- case DegradationPreference::kMaintainFramerate:
+ case VideoSendStream::DegradationPreference::kMaintainFramerate:
wants.max_framerate_fps = std::numeric_limits<int>::max();
break;
- case DegradationPreference::kMaintainResolution:
+ case VideoSendStream::DegradationPreference::kMaintainResolution:
wants.max_pixel_count = std::numeric_limits<int>::max();
wants.target_pixel_count.reset();
break;
- case DegradationPreference::kDegradationDisabled:
+ case VideoSendStream::DegradationPreference::kDegradationDisabled:
wants.max_pixel_count = std::numeric_limits<int>::max();
wants.target_pixel_count.reset();
wants.max_framerate_fps = std::numeric_limits<int>::max();
@@ -302,22 +303,24 @@ class ViEEncoder::VideoSourceProxy {
bool IsResolutionScalingEnabledLocked() const
EXCLUSIVE_LOCKS_REQUIRED(&crit_) {
return degradation_preference_ ==
- DegradationPreference::kMaintainFramerate ||
- degradation_preference_ == DegradationPreference::kBalanced;
+ VideoSendStream::DegradationPreference::kMaintainFramerate ||
+ degradation_preference_ ==
+ VideoSendStream::DegradationPreference::kBalanced;
}
bool IsFramerateScalingEnabledLocked() const
EXCLUSIVE_LOCKS_REQUIRED(&crit_) {
// TODO(sprang): Also accept kBalanced here?
return degradation_preference_ ==
- DegradationPreference::kMaintainResolution;
+ VideoSendStream::DegradationPreference::kMaintainResolution;
}
rtc::CriticalSection crit_;
rtc::SequencedTaskChecker main_checker_;
ViEEncoder* const vie_encoder_;
rtc::VideoSinkWants sink_wants_ GUARDED_BY(&crit_);
- DegradationPreference degradation_preference_ GUARDED_BY(&crit_);
+ VideoSendStream::DegradationPreference degradation_preference_
+ GUARDED_BY(&crit_);
rtc::VideoSourceInterface<VideoFrame>* source_ GUARDED_BY(&crit_);
RTC_DISALLOW_COPY_AND_ASSIGN(VideoSourceProxy);
@@ -351,7 +354,8 @@ ViEEncoder::ViEEncoder(uint32_t number_of_cores,
last_observed_bitrate_bps_(0),
encoder_paused_and_dropped_frame_(false),
clock_(Clock::GetRealTimeClock()),
- degradation_preference_(DegradationPreference::kDegradationDisabled),
+ degradation_preference_(
+ VideoSendStream::DegradationPreference::kDegradationDisabled),
last_captured_timestamp_(0),
delta_ntp_internal_ms_(clock_->CurrentNtpInMilliseconds() -
clock_->TimeInMilliseconds()),
@@ -377,7 +381,7 @@ ViEEncoder::~ViEEncoder() {
void ViEEncoder::Stop() {
RTC_DCHECK_RUN_ON(&thread_checker_);
- source_proxy_->SetSource(nullptr, DegradationPreference());
+ source_proxy_->SetSource(nullptr, VideoSendStream::DegradationPreference());
encoder_queue_.PostTask([this] {
RTC_DCHECK_RUN_ON(&encoder_queue_);
overuse_detector_.StopCheckForOveruse();
@@ -417,7 +421,8 @@ void ViEEncoder::SetBitrateObserver(
void ViEEncoder::SetSource(
rtc::VideoSourceInterface<VideoFrame>* source,
- const VideoSendStream::DegradationPreference& degradation_preference) {
+ const VideoSendStream::VideoSendStream::DegradationPreference&
+ degradation_preference) {
RTC_DCHECK_RUN_ON(&thread_checker_);
source_proxy_->SetSource(source, degradation_preference);
encoder_queue_.PostTask([this, degradation_preference] {
@@ -429,8 +434,10 @@ void ViEEncoder::SetSource(
}
degradation_preference_ = degradation_preference;
bool allow_scaling =
- degradation_preference_ == DegradationPreference::kMaintainFramerate ||
- degradation_preference_ == DegradationPreference::kBalanced;
+ degradation_preference_ ==
+ VideoSendStream::DegradationPreference::kMaintainFramerate ||
+ degradation_preference_ ==
+ VideoSendStream::DegradationPreference::kBalanced;
initial_rampup_ = allow_scaling ? 0 : kMaxInitialFramedrop;
ConfigureQualityScaler();
});
@@ -534,8 +541,10 @@ void ViEEncoder::ConfigureQualityScaler() {
RTC_DCHECK_RUN_ON(&encoder_queue_);
const auto scaling_settings = settings_.encoder->GetScalingSettings();
const bool degradation_preference_allows_scaling =
- degradation_preference_ == DegradationPreference::kMaintainFramerate ||
- degradation_preference_ == DegradationPreference::kBalanced;
+ degradation_preference_ ==
+ VideoSendStream::DegradationPreference::kMaintainFramerate ||
+ degradation_preference_ ==
+ VideoSendStream::DegradationPreference::kBalanced;
const bool quality_scaling_allowed =
degradation_preference_allows_scaling && scaling_settings.enabled;
@@ -798,9 +807,9 @@ void ViEEncoder::AdaptDown(AdaptReason reason) {
int max_downgrades = 0;
switch (degradation_preference_) {
- case DegradationPreference::kBalanced:
+ case VideoSendStream::DegradationPreference::kBalanced:
FALLTHROUGH();
- case DegradationPreference::kMaintainFramerate:
+ case VideoSendStream::DegradationPreference::kMaintainFramerate:
max_downgrades = kMaxCpuResolutionDowngrades;
if (downgrade_requested &&
adaptation_request.input_pixel_count_ >=
@@ -810,7 +819,7 @@ void ViEEncoder::AdaptDown(AdaptReason reason) {
return;
}
break;
- case DegradationPreference::kMaintainResolution:
+ case VideoSendStream::DegradationPreference::kMaintainResolution:
max_downgrades = kMaxCpuFramerateDowngrades;
if (adaptation_request.framerate_fps_ <= 0 ||
(downgrade_requested &&
@@ -824,7 +833,7 @@ void ViEEncoder::AdaptDown(AdaptReason reason) {
return;
}
break;
- case DegradationPreference::kDegradationDisabled:
+ case VideoSendStream::DegradationPreference::kDegradationDisabled:
return;
}
@@ -847,19 +856,19 @@ void ViEEncoder::AdaptDown(AdaptReason reason) {
IncrementScaleCounter(reason, 1);
switch (degradation_preference_) {
- case DegradationPreference::kBalanced:
+ case VideoSendStream::DegradationPreference::kBalanced:
FALLTHROUGH();
- case DegradationPreference::kMaintainFramerate:
+ case VideoSendStream::DegradationPreference::kMaintainFramerate:
source_proxy_->RequestResolutionLowerThan(
adaptation_request.input_pixel_count_);
LOG(LS_INFO) << "Scaling down resolution.";
break;
- case DegradationPreference::kMaintainResolution:
+ case VideoSendStream::DegradationPreference::kMaintainResolution:
source_proxy_->RequestFramerateLowerThan(
adaptation_request.framerate_fps_);
LOG(LS_INFO) << "Scaling down framerate.";
break;
- case DegradationPreference::kDegradationDisabled:
+ case VideoSendStream::DegradationPreference::kDegradationDisabled:
RTC_NOTREACHED();
}
@@ -884,9 +893,9 @@ void ViEEncoder::AdaptUp(AdaptReason reason) {
last_adaptation_request_ &&
last_adaptation_request_->mode_ == AdaptationRequest::Mode::kAdaptUp;
switch (degradation_preference_) {
- case DegradationPreference::kBalanced:
+ case VideoSendStream::DegradationPreference::kBalanced:
FALLTHROUGH();
- case DegradationPreference::kMaintainFramerate:
+ case VideoSendStream::DegradationPreference::kMaintainFramerate:
if (adapt_up_requested &&
adaptation_request.input_pixel_count_ <=
last_adaptation_request_->input_pixel_count_) {
@@ -895,11 +904,11 @@ void ViEEncoder::AdaptUp(AdaptReason reason) {
return;
}
break;
- case DegradationPreference::kMaintainResolution:
+ case VideoSendStream::DegradationPreference::kMaintainResolution:
// TODO(sprang): Don't request higher framerate if we are already at
// max requested fps?
break;
- case DegradationPreference::kDegradationDisabled:
+ case VideoSendStream::DegradationPreference::kDegradationDisabled:
return;
}
@@ -925,9 +934,9 @@ void ViEEncoder::AdaptUp(AdaptReason reason) {
const int scale_sum = std::accumulate(current_scale_counters.begin(),
current_scale_counters.end(), 0);
switch (degradation_preference_) {
- case DegradationPreference::kBalanced:
+ case VideoSendStream::DegradationPreference::kBalanced:
FALLTHROUGH();
- case DegradationPreference::kMaintainFramerate:
+ case VideoSendStream::DegradationPreference::kMaintainFramerate:
if (scale_sum == 0) {
LOG(LS_INFO) << "Removing resolution down-scaling setting.";
source_proxy_->RequestHigherResolutionThan(
@@ -938,7 +947,7 @@ void ViEEncoder::AdaptUp(AdaptReason reason) {
LOG(LS_INFO) << "Scaling up resolution.";
}
break;
- case DegradationPreference::kMaintainResolution:
+ case VideoSendStream::DegradationPreference::kMaintainResolution:
if (scale_sum == 0) {
LOG(LS_INFO) << "Removing framerate down-scaling setting.";
source_proxy_->RequestHigherFramerateThan(
@@ -949,7 +958,7 @@ void ViEEncoder::AdaptUp(AdaptReason reason) {
LOG(LS_INFO) << "Scaling up framerate.";
}
break;
- case DegradationPreference::kDegradationDisabled:
+ case VideoSendStream::DegradationPreference::kDegradationDisabled:
RTC_NOTREACHED();
}

Powered by Google App Engine
This is Rietveld 408576698