Bug 1452048 - Read _captureStarted under lock on the camera thread. r?dminor draft
authorAndreas Pehrson <pehrsons@mozilla.com>
Fri, 06 Apr 2018 15:50:31 +0200
changeset 779268 408bc11ed0481138416d45143ac1af67f58b7e31
parent 779267 d1f09e0adfc2fb8c0ff795d473712c5b93ff7b73
push id105725
push userbmo:apehrson@mozilla.com
push dateMon, 09 Apr 2018 15:22:26 +0000
reviewersdminor
bugs1452048
milestone61.0a1
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
media/webrtc/trunk/webrtc/modules/video_capture/android/video_capture_android.cc
--- 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.