Index: webrtc/media/webrtc/webrtcvideocapturer.cc |
diff --git a/webrtc/media/webrtc/webrtcvideocapturer.cc b/webrtc/media/webrtc/webrtcvideocapturer.cc |
index c5eb1adadc6af0925989da019c9252112316fdb5..2a6147c87d80c646d9bd84ce3f73e41d0fc15267 100644 |
--- a/webrtc/media/webrtc/webrtcvideocapturer.cc |
+++ b/webrtc/media/webrtc/webrtcvideocapturer.cc |
@@ -203,9 +203,6 @@ bool WebRtcVideoCapturer::Init(const Device& device) { |
SetId(device.id); |
SetSupportedFormats(supported); |
- // Ensure these 2 have the same value. |
- SetApplyRotation(module_->GetApplyRotation()); |
- |
return true; |
} |
@@ -243,7 +240,8 @@ bool WebRtcVideoCapturer::GetBestCaptureFormat(const VideoFormat& desired, |
} |
return true; |
} |
-bool WebRtcVideoCapturer::SetApplyRotation(bool enable) { |
+void WebRtcVideoCapturer::OnSourceChangeRequested( |
+ const rtc::VideoSinkHints& hints) { |
// Can't take lock here as this will cause deadlock with |
// OnIncomingCapturedFrame. In fact, the whole method, including methods it |
// calls, can't take lock. |
@@ -253,13 +251,14 @@ bool WebRtcVideoCapturer::SetApplyRotation(bool enable) { |
webrtc::field_trial::FindFullName("WebRTC-CVO"); |
if (group_name == "Disabled") { |
- return true; |
+ return; |
} |
- if (!VideoCapturer::SetApplyRotation(enable)) { |
- return false; |
- } |
- return module_->SetApplyRotation(enable); |
+ VideoCapturer::OnSourceChangeRequested(hints); |
+ bool result = module_->SetApplyRotation(!hints.can_apply_rotation); |
+ RTC_CHECK(result); |
+ |
+ return; |
} |
CaptureState WebRtcVideoCapturer::Start(const VideoFormat& capture_format) { |