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

Unified Diff: webrtc/media/engine/videoencodersoftwarefallbackwrapper.cc

Issue 3000693003: Move kMinPixelsPerFrame constant in VideoStreamEncoder to VideoEncoder::ScalingSettings. (Closed)
Patch Set: Created 3 years, 4 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/media/engine/videoencodersoftwarefallbackwrapper.cc
diff --git a/webrtc/media/engine/videoencodersoftwarefallbackwrapper.cc b/webrtc/media/engine/videoencodersoftwarefallbackwrapper.cc
index 9f5dedabc0451820b3990362720c508c2d6ecf3a..2bc74a7e724578392b6bf4f544bdc2c1c76da0dd 100644
--- a/webrtc/media/engine/videoencodersoftwarefallbackwrapper.cc
+++ b/webrtc/media/engine/videoencodersoftwarefallbackwrapper.cc
@@ -50,12 +50,14 @@ void GetForcedFallbackParamsFromFieldTrialGroup(uint32_t* param_low_kbps,
int low_kbps;
int high_kbps;
int min_low_ms;
- if (sscanf(group.c_str(), "Enabled-%d,%d,%d", &low_kbps, &high_kbps,
- &min_low_ms) != 3) {
+ int min_pixels;
+ if (sscanf(group.c_str(), "Enabled-%d,%d,%d,%d", &low_kbps, &high_kbps,
+ &min_low_ms, &min_pixels) != 4) {
LOG(LS_WARNING) << "Invalid number of forced fallback parameters provided.";
return;
}
- if (min_low_ms <= 0 || low_kbps <= 0 || high_kbps <= low_kbps) {
+ if (min_low_ms <= 0 || min_pixels <= 0 || low_kbps <= 0 ||
+ high_kbps <= low_kbps) {
LOG(LS_WARNING) << "Invalid forced fallback parameter value provided.";
return;
}
@@ -245,6 +247,8 @@ bool VideoEncoderSoftwareFallbackWrapper::SupportsNativeHandle() const {
VideoEncoder::ScalingSettings
VideoEncoderSoftwareFallbackWrapper::GetScalingSettings() const {
+ if (forced_fallback_possible_ && fallback_encoder_)
brandtr 2017/08/17 12:06:24 Unrelated to the forcing of the fallback, should w
åsapersson 2017/08/17 13:22:36 Since not related to this CL, perhaps make this ch
+ return fallback_encoder_->GetScalingSettings();
return encoder_->GetScalingSettings();
}
@@ -272,8 +276,10 @@ bool VideoEncoderSoftwareFallbackWrapper::TryReleaseForcedFallbackEncoder() {
if (!IsForcedFallbackActive())
return false;
- if (!forced_fallback_.ShouldStop(bitrate_allocation_.get_sum_kbps()))
+ if (!forced_fallback_.ShouldStop(bitrate_allocation_.get_sum_kbps(),
+ codec_settings_)) {
return false;
+ }
// Release the forced fallback encoder.
if (encoder_->InitEncode(&codec_settings_, number_of_cores_,
@@ -343,8 +349,10 @@ bool VideoEncoderSoftwareFallbackWrapper::ForcedFallbackParams::ShouldStart(
}
bool VideoEncoderSoftwareFallbackWrapper::ForcedFallbackParams::ShouldStop(
- uint32_t bitrate_kbps) const {
- return bitrate_kbps >= high_kbps;
+ uint32_t bitrate_kbps,
+ const VideoCodec& codec) const {
+ return bitrate_kbps >= high_kbps &&
+ (codec.width * codec.height >= kMinPixelsStop);
}
} // namespace webrtc

Powered by Google App Engine
This is Rietveld 408576698