Bug 1452048 - Read _captureStarted under lock on the camera thread. r=dminor a=jcristau
authorAndreas Pehrson <pehrsons@mozilla.com>
Fri, 06 Apr 2018 15:50:31 +0200
changeset 460730 7617bd6c7f2c215fcdd344af2cad8b0a6b1537b6
parent 460729 5032bbe4c92fb0cb307b8c11c824993ce0d51e69
child 460731 36b90debcd465bc6c7af1c3b01ba73aef7647611
push id9030
push userarchaeopteryx@coole-files.de
push dateThu, 12 Apr 2018 15:46:07 +0000
treeherdermozilla-beta@84d5902b3a02 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersdminor, jcristau
bugs1452048
milestone60.0
Bug 1452048 - Read _captureStarted under lock on the camera thread. r=dminor a=jcristau 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.