Explicitly retain self in objc blocks to avoid compiler warning.

Implicitly retaining self pointer (assuming this is intended behavior) causes compiler warning `-Wimplicit-retain-self`. We should do it explicitly.

Bug: webrtc:9971
Change-Id: If77a67168d8a65ced78d5119b9a7332391d20bc9
Reviewed-on: https://webrtc-review.googlesource.com/c/109641
Commit-Queue: Jiawei Ou <ouj@fb.com>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25609}
diff --git a/sdk/objc/components/capturer/RTCCameraVideoCapturer.m b/sdk/objc/components/capturer/RTCCameraVideoCapturer.m
index 2909405..db833b3 100644
--- a/sdk/objc/components/capturer/RTCCameraVideoCapturer.m
+++ b/sdk/objc/components/capturer/RTCCameraVideoCapturer.m
@@ -26,18 +26,18 @@
 
 @interface RTCCameraVideoCapturer ()<AVCaptureVideoDataOutputSampleBufferDelegate>
 @property(nonatomic, readonly) dispatch_queue_t frameQueue;
+@property(nonatomic, strong) AVCaptureDevice *currentDevice;
+@property(nonatomic, assign) BOOL hasRetriedOnFatalError;
+@property(nonatomic, assign) BOOL isRunning;
+// Will the session be running once all asynchronous operations have been completed?
+@property(nonatomic, assign) BOOL willBeRunning;
 @end
 
 @implementation RTCCameraVideoCapturer {
   AVCaptureVideoDataOutput *_videoDataOutput;
   AVCaptureSession *_captureSession;
-  AVCaptureDevice *_currentDevice;
   FourCharCode _preferredOutputPixelFormat;
   FourCharCode _outputPixelFormat;
-  BOOL _hasRetriedOnFatalError;
-  BOOL _isRunning;
-  // Will the session be running once all asynchronous operations have been completed?
-  BOOL _willBeRunning;
   RTCVideoRotation _rotation;
 #if TARGET_OS_IPHONE
   UIDeviceOrientation _orientation;
@@ -46,6 +46,10 @@
 
 @synthesize frameQueue = _frameQueue;
 @synthesize captureSession = _captureSession;
+@synthesize currentDevice = _currentDevice;
+@synthesize hasRetriedOnFatalError = _hasRetriedOnFatalError;
+@synthesize isRunning = _isRunning;
+@synthesize willBeRunning = _willBeRunning;
 
 - (instancetype)init {
   return [self initWithDelegate:nil captureSession:[[AVCaptureSession alloc] init]];
@@ -157,25 +161,26 @@
                       [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
 #endif
 
-                      _currentDevice = device;
+                      self.currentDevice = device;
 
                       NSError *error = nil;
-                      if (![_currentDevice lockForConfiguration:&error]) {
-                        RTCLogError(
-                            @"Failed to lock device %@. Error: %@", _currentDevice, error.userInfo);
+                      if (![self.currentDevice lockForConfiguration:&error]) {
+                        RTCLogError(@"Failed to lock device %@. Error: %@",
+                                    self.currentDevice,
+                                    error.userInfo);
                         if (completionHandler) {
                           completionHandler(error);
                         }
-                        _willBeRunning = NO;
+                        self.willBeRunning = NO;
                         return;
                       }
                       [self reconfigureCaptureSessionInput];
                       [self updateOrientation];
                       [self updateDeviceCaptureFormat:format fps:fps];
                       [self updateVideoDataOutputPixelFormat:format];
-                      [_captureSession startRunning];
-                      [_currentDevice unlockForConfiguration];
-                      _isRunning = YES;
+                      [self.captureSession startRunning];
+                      [self.currentDevice unlockForConfiguration];
+                      self.isRunning = YES;
                       if (completionHandler) {
                         completionHandler(nil);
                       }
@@ -188,16 +193,16 @@
       dispatchAsyncOnType:RTCDispatcherTypeCaptureSession
                     block:^{
                       RTCLogInfo("Stop");
-                      _currentDevice = nil;
-                      for (AVCaptureDeviceInput *oldInput in [_captureSession.inputs copy]) {
-                        [_captureSession removeInput:oldInput];
+                      self.currentDevice = nil;
+                      for (AVCaptureDeviceInput *oldInput in [self.captureSession.inputs copy]) {
+                        [self.captureSession removeInput:oldInput];
                       }
-                      [_captureSession stopRunning];
+                      [self.captureSession stopRunning];
 
 #if TARGET_OS_IPHONE
                       [[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications];
 #endif
-                      _isRunning = NO;
+                      self.isRunning = NO;
                       if (completionHandler) {
                         completionHandler();
                       }
@@ -340,7 +345,7 @@
                                block:^{
                                  // If we successfully restarted after an unknown error,
                                  // allow future retries on fatal errors.
-                                 _hasRetriedOnFatalError = NO;
+                                 self.hasRetriedOnFatalError = NO;
                                }];
 }
 
@@ -352,10 +357,10 @@
   [RTCDispatcher
       dispatchAsyncOnType:RTCDispatcherTypeCaptureSession
                     block:^{
-                      if (!_hasRetriedOnFatalError) {
+                      if (!self.hasRetriedOnFatalError) {
                         RTCLogWarning(@"Attempting to recover from fatal capture error.");
                         [self handleNonFatalError];
-                        _hasRetriedOnFatalError = YES;
+                        self.hasRetriedOnFatalError = YES;
                       } else {
                         RTCLogError(@"Previous fatal error recovery failed.");
                       }
@@ -366,8 +371,8 @@
   [RTCDispatcher dispatchAsyncOnType:RTCDispatcherTypeCaptureSession
                                block:^{
                                  RTCLog(@"Restarting capture session after error.");
-                                 if (_isRunning) {
-                                   [_captureSession startRunning];
+                                 if (self.isRunning) {
+                                   [self.captureSession startRunning];
                                  }
                                }];
 }
@@ -379,9 +384,9 @@
 - (void)handleApplicationDidBecomeActive:(NSNotification *)notification {
   [RTCDispatcher dispatchAsyncOnType:RTCDispatcherTypeCaptureSession
                                block:^{
-                                 if (_isRunning && !_captureSession.isRunning) {
+                                 if (self.isRunning && !self.captureSession.isRunning) {
                                    RTCLog(@"Restarting capture session on active.");
-                                   [_captureSession startRunning];
+                                   [self.captureSession startRunning];
                                  }
                                }];
 }
diff --git a/sdk/objc/components/capturer/RTCFileVideoCapturer.m b/sdk/objc/components/capturer/RTCFileVideoCapturer.m
index 00143e9..207a21d 100644
--- a/sdk/objc/components/capturer/RTCFileVideoCapturer.m
+++ b/sdk/objc/components/capturer/RTCFileVideoCapturer.m
@@ -27,15 +27,21 @@
   RTCFileVideoCapturerStatusStopped
 };
 
+@interface RTCFileVideoCapturer ()
+@property(nonatomic, assign) CMTime lastPresentationTime;
+@property(nonatomic, strong) NSURL *fileURL;
+@end
+
 @implementation RTCFileVideoCapturer {
   AVAssetReader *_reader;
   AVAssetReaderTrackOutput *_outTrack;
   RTCFileVideoCapturerStatus _status;
-  CMTime _lastPresentationTime;
   dispatch_queue_t _frameQueue;
-  NSURL *_fileURL;
 }
 
+@synthesize lastPresentationTime = _lastPresentationTime;
+@synthesize fileURL = _fileURL;
+
 - (void)startCapturingFromFileNamed:(NSString *)nameOfFile
                             onError:(RTCFileVideoCapturerErrorBlock)errorBlock {
   if (_status == RTCFileVideoCapturerStatusStarted) {
@@ -62,9 +68,9 @@
       return;
     }
 
-    _lastPresentationTime = CMTimeMake(0, 0);
+    self.lastPresentationTime = CMTimeMake(0, 0);
 
-    _fileURL = [NSURL fileURLWithPath:pathForFile];
+    self.fileURL = [NSURL fileURLWithPath:pathForFile];
     [self setupReaderOnError:errorBlock];
   });
 }
diff --git a/sdk/objc/helpers/RTCCameraPreviewView.m b/sdk/objc/helpers/RTCCameraPreviewView.m
index 2add46c..adc62cc 100644
--- a/sdk/objc/helpers/RTCCameraPreviewView.m
+++ b/sdk/objc/helpers/RTCCameraPreviewView.m
@@ -47,19 +47,22 @@
   if (_captureSession == captureSession) {
     return;
   }
-  [RTCDispatcher dispatchAsyncOnType:RTCDispatcherTypeMain
-                               block:^{
-    _captureSession = captureSession;
-    AVCaptureVideoPreviewLayer *previewLayer = [self previewLayer];
-    [RTCDispatcher dispatchAsyncOnType:RTCDispatcherTypeCaptureSession
-                                 block:^{
-      previewLayer.session = captureSession;
-      [RTCDispatcher dispatchAsyncOnType:RTCDispatcherTypeMain
-                               block:^{
-        [self setCorrectVideoOrientation];
-      }];
-    }];
-  }];
+  [RTCDispatcher
+      dispatchAsyncOnType:RTCDispatcherTypeMain
+                    block:^{
+                      self.captureSession = captureSession;
+                      AVCaptureVideoPreviewLayer *previewLayer = [self previewLayer];
+                      [RTCDispatcher
+                          dispatchAsyncOnType:RTCDispatcherTypeCaptureSession
+                                        block:^{
+                                          previewLayer.session = captureSession;
+                                          [RTCDispatcher
+                                              dispatchAsyncOnType:RTCDispatcherTypeMain
+                                                            block:^{
+                                                              [self setCorrectVideoOrientation];
+                                                            }];
+                                        }];
+                    }];
 }
 
 - (void)layoutSubviews {
diff --git a/sdk/objc/unittests/RTCAudioDeviceModule_xctest.mm b/sdk/objc/unittests/RTCAudioDeviceModule_xctest.mm
index 689de58..55d48c2 100644
--- a/sdk/objc/unittests/RTCAudioDeviceModule_xctest.mm
+++ b/sdk/objc/unittests/RTCAudioDeviceModule_xctest.mm
@@ -128,17 +128,20 @@
 static const NSUInteger kNumIgnoreFirstCallbacks = 50;
 
 @interface RTCAudioDeviceModuleTests : XCTestCase {
-
   rtc::scoped_refptr<webrtc::AudioDeviceModule> audioDeviceModule;
-  webrtc::AudioParameters playoutParameters;
-  webrtc::AudioParameters recordParameters;
   MockAudioTransport mock;
 }
 
+@property(nonatomic, assign) webrtc::AudioParameters playoutParameters;
+@property(nonatomic, assign) webrtc::AudioParameters recordParameters;
+
 @end
 
 @implementation RTCAudioDeviceModuleTests
 
+@synthesize playoutParameters;
+@synthesize recordParameters;
+
 - (void)setUp {
   [super setUp];
   audioDeviceModule = webrtc::CreateAudioDeviceModule();
@@ -254,10 +257,10 @@
                                        int64_t *elapsed_time_ms,
                                        int64_t *ntp_time_ms) {
     nSamplesOut = nSamples;
-    XCTAssertEqual(nSamples, playoutParameters.frames_per_10ms_buffer());
+    XCTAssertEqual(nSamples, self.playoutParameters.frames_per_10ms_buffer());
     XCTAssertEqual(nBytesPerSample, kBytesPerSample);
-    XCTAssertEqual(nChannels, playoutParameters.channels());
-    XCTAssertEqual((int) samplesPerSec, playoutParameters.sample_rate());
+    XCTAssertEqual(nChannels, self.playoutParameters.channels());
+    XCTAssertEqual((int)samplesPerSec, self.playoutParameters.sample_rate());
     XCTAssertNotEqual((void*)NULL, audioSamples);
 
     return 0;
@@ -291,10 +294,10 @@
                                         int64_t *elapsed_time_ms,
                                         int64_t *ntp_time_ms) {
     nSamplesOut = nSamples;
-    XCTAssertEqual(nSamples, playoutParameters.frames_per_10ms_buffer());
+    XCTAssertEqual(nSamples, self.playoutParameters.frames_per_10ms_buffer());
     XCTAssertEqual(nBytesPerSample, kBytesPerSample);
-    XCTAssertEqual(nChannels, playoutParameters.channels());
-    XCTAssertEqual((int) samplesPerSec, playoutParameters.sample_rate());
+    XCTAssertEqual(nChannels, self.playoutParameters.channels());
+    XCTAssertEqual((int)samplesPerSec, self.playoutParameters.sample_rate());
     XCTAssertNotEqual((void*)NULL, audioSamples);
     if (++num_callbacks == kNumCallbacks) {
       [playoutExpectation fulfill];
@@ -330,10 +333,10 @@
                                        int64_t *elapsed_time_ms,
                                        int64_t *ntp_time_ms) {
     nSamplesOut = nSamples;
-    XCTAssertEqual(nSamples, playoutParameters.frames_per_10ms_buffer());
+    XCTAssertEqual(nSamples, self.playoutParameters.frames_per_10ms_buffer());
     XCTAssertEqual(nBytesPerSample, kBytesPerSample);
-    XCTAssertEqual(nChannels, playoutParameters.channels());
-    XCTAssertEqual((int) samplesPerSec, playoutParameters.sample_rate());
+    XCTAssertEqual(nChannels, self.playoutParameters.channels());
+    XCTAssertEqual((int)samplesPerSec, self.playoutParameters.sample_rate());
     XCTAssertNotEqual((void*)NULL, audioSamples);
     if (++num_callbacks == kNumCallbacks) {
       [playoutExpectation fulfill];
@@ -366,10 +369,10 @@
                                        const bool keyPressed,
                                        uint32_t& newMicLevel) {
     XCTAssertNotEqual((void*)NULL, audioSamples);
-    XCTAssertEqual(nSamples, recordParameters.frames_per_10ms_buffer());
+    XCTAssertEqual(nSamples, self.recordParameters.frames_per_10ms_buffer());
     XCTAssertEqual(nBytesPerSample, kBytesPerSample);
-    XCTAssertEqual(nChannels, recordParameters.channels());
-    XCTAssertEqual((int) samplesPerSec, recordParameters.sample_rate());
+    XCTAssertEqual(nChannels, self.recordParameters.channels());
+    XCTAssertEqual((int)samplesPerSec, self.recordParameters.sample_rate());
     XCTAssertEqual(0, clockDrift);
     XCTAssertEqual(0u, currentMicLevel);
     XCTAssertFalse(keyPressed);
@@ -405,10 +408,10 @@
                                        int64_t *elapsed_time_ms,
                                        int64_t *ntp_time_ms) {
     nSamplesOut = nSamples;
-    XCTAssertEqual(nSamples, playoutParameters.frames_per_10ms_buffer());
+    XCTAssertEqual(nSamples, self.playoutParameters.frames_per_10ms_buffer());
     XCTAssertEqual(nBytesPerSample, kBytesPerSample);
-    XCTAssertEqual(nChannels, playoutParameters.channels());
-    XCTAssertEqual((int) samplesPerSec, playoutParameters.sample_rate());
+    XCTAssertEqual(nChannels, self.playoutParameters.channels());
+    XCTAssertEqual((int)samplesPerSec, self.playoutParameters.sample_rate());
     XCTAssertNotEqual((void*)NULL, audioSamples);
     if (callbackCount++ >= kNumCallbacks) {
       [playoutExpectation fulfill];
@@ -428,10 +431,10 @@
                                        const bool keyPressed,
                                        uint32_t& newMicLevel) {
     XCTAssertNotEqual((void*)NULL, audioSamples);
-    XCTAssertEqual(nSamples, recordParameters.frames_per_10ms_buffer());
+    XCTAssertEqual(nSamples, self.recordParameters.frames_per_10ms_buffer());
     XCTAssertEqual(nBytesPerSample, kBytesPerSample);
-    XCTAssertEqual(nChannels, recordParameters.channels());
-    XCTAssertEqual((int) samplesPerSec, recordParameters.sample_rate());
+    XCTAssertEqual(nChannels, self.recordParameters.channels());
+    XCTAssertEqual((int)samplesPerSec, self.recordParameters.sample_rate());
     XCTAssertEqual(0, clockDrift);
     XCTAssertEqual(0u, currentMicLevel);
     XCTAssertFalse(keyPressed);