Bug 1452048 - Read _captureStarted under lock on the camera thread. r?dminor
It is written under lock on the controlling thread (CamerasParent) in
StartCapture/StopCapture.
MozReview-Commit-ID: E7eq1YElhwt
--- a/media/webrtc/trunk/webrtc/modules/video_capture/android/video_capture_android.cc
+++ b/media/webrtc/trunk/webrtc/modules/video_capture/android/video_capture_android.cc
@@ -111,17 +111,20 @@ rtc::scoped_refptr<VideoCaptureModule> V
}
return implementation;
}
int32_t VideoCaptureAndroid::OnIncomingFrame(uint8_t* videoFrame,
size_t videoFrameLength,
int32_t degrees,
int64_t captureTime) {
- if (!_captureStarted)
+ // _captureStarted is written on the controlling thread in
+ // StartCapture/StopCapture. This is the camera thread.
+ // CaptureStarted() will access it under a lock.
+ if (!CaptureStarted())
return 0;
VideoRotation current_rotation =
(degrees <= 45 || degrees > 315) ? kVideoRotation_0 :
(degrees > 45 && degrees <= 135) ? kVideoRotation_90 :
(degrees > 135 && degrees <= 225) ? kVideoRotation_180 :
(degrees > 225 && degrees <= 315) ? kVideoRotation_270 :
kVideoRotation_0; // Impossible.