Index: webrtc/examples/objc/AppRTCMobile/mac/APPRTCViewController.m |
diff --git a/webrtc/examples/objc/AppRTCMobile/mac/APPRTCViewController.m b/webrtc/examples/objc/AppRTCMobile/mac/APPRTCViewController.m |
index bcf26b258e745076693a60778653b98b5cc83dbf..fea16d20aa47cd8e617cb7ca0b594e1ae1be39af 100644 |
--- a/webrtc/examples/objc/AppRTCMobile/mac/APPRTCViewController.m |
+++ b/webrtc/examples/objc/AppRTCMobile/mac/APPRTCViewController.m |
@@ -12,6 +12,7 @@ |
#import <AVFoundation/AVFoundation.h> |
+#import "WebRTC/RTCMTLNSVideoView.h" |
#import "WebRTC/RTCNSGLVideoView.h" |
#import "WebRTC/RTCVideoTrack.h" |
@@ -34,8 +35,8 @@ static NSUInteger const kBottomViewHeight = 200; |
@interface APPRTCMainView : NSView |
@property(nonatomic, weak) id<APPRTCMainViewDelegate> delegate; |
-@property(nonatomic, readonly) RTCNSGLVideoView* localVideoView; |
-@property(nonatomic, readonly) RTCNSGLVideoView* remoteVideoView; |
+@property(nonatomic, readonly) NSView<RTCVideoRenderer>* localVideoView; |
+@property(nonatomic, readonly) NSView<RTCVideoRenderer>* remoteVideoView; |
- (void)displayLogMessage:(NSString*)message; |
@@ -168,10 +169,10 @@ static NSUInteger const kBottomViewHeight = 200; |
roomString = [NSUUID UUID].UUIDString; |
roomString = [roomString stringByReplacingOccurrencesOfString:@"-" withString:@""]; |
} |
- |
[self.delegate appRTCMainView:self |
didEnterRoomId:roomString |
loopback:_loopbackButton.intValue]; |
+ [self setNeedsUpdateConstraints:YES]; |
} |
#pragma mark - RTCNSGLVideoViewDelegate |
@@ -213,25 +214,41 @@ static NSUInteger const kBottomViewHeight = 200; |
[_scrollView setDocumentView:_logView]; |
[self addSubview:_scrollView]; |
- NSOpenGLPixelFormatAttribute attributes[] = { |
- NSOpenGLPFADoubleBuffer, |
- NSOpenGLPFADepthSize, 24, |
- NSOpenGLPFAOpenGLProfile, |
- NSOpenGLProfileVersion3_2Core, |
- 0 |
- }; |
- NSOpenGLPixelFormat* pixelFormat = |
- [[NSOpenGLPixelFormat alloc] initWithAttributes:attributes]; |
- _remoteVideoView = [[RTCNSGLVideoView alloc] initWithFrame:NSZeroRect |
- pixelFormat:pixelFormat]; |
+ |
+// NOTE (daniela): Ignoring Clang diagonstic here. |
+// We're performing run time check to make sure class is available on runtime. |
+// If not we're providing sensible default. |
+#pragma clang diagnostic push |
+#pragma clang diagnostic ignored "-Wpartial-availability" |
+ if ([RTCMTLNSVideoView class]) { |
+ _remoteVideoView = [[RTCMTLNSVideoView alloc] initWithFrame:NSZeroRect]; |
+ _localVideoView = [[RTCMTLNSVideoView alloc] initWithFrame:NSZeroRect]; |
+ } else { |
+ NSOpenGLPixelFormatAttribute attributes[] = { |
+ NSOpenGLPFADoubleBuffer, |
+ NSOpenGLPFADepthSize, 24, |
+ NSOpenGLPFAOpenGLProfile, |
+ NSOpenGLProfileVersion3_2Core, |
+ 0 |
+ }; |
+ NSOpenGLPixelFormat* pixelFormat = |
+ [[NSOpenGLPixelFormat alloc] initWithAttributes:attributes]; |
+ |
+ RTCNSGLVideoView* remote = |
+ [[RTCNSGLVideoView alloc] initWithFrame:NSZeroRect pixelFormat:pixelFormat]; |
+ remote.delegate = self; |
+ _remoteVideoView = remote; |
+ |
+ RTCNSGLVideoView* local = |
+ [[RTCNSGLVideoView alloc] initWithFrame:NSZeroRect pixelFormat:pixelFormat]; |
+ local.delegate = self; |
+ _localVideoView = local; |
+ } |
+#pragma clang diagnostic pop |
+ |
[_remoteVideoView setTranslatesAutoresizingMaskIntoConstraints:NO]; |
- _remoteVideoView.delegate = self; |
[self addSubview:_remoteVideoView]; |
- |
- _localVideoView = [[RTCNSGLVideoView alloc] initWithFrame:NSZeroRect |
- pixelFormat:pixelFormat]; |
[_localVideoView setTranslatesAutoresizingMaskIntoConstraints:NO]; |
- _localVideoView.delegate = self; |
[self addSubview:_localVideoView]; |
} |