diff --git a/webrtc/examples/objc/AppRTCMobile/mac/APPRTCViewController.m b/webrtc/examples/objc/AppRTCMobile/mac/APPRTCViewController.m index c23e0d59cd..d8ee1413f3 100644 --- a/webrtc/examples/objc/AppRTCMobile/mac/APPRTCViewController.m +++ b/webrtc/examples/objc/AppRTCMobile/mac/APPRTCViewController.m @@ -221,10 +221,12 @@ static NSUInteger const kBottomViewHeight = 200; // If not we're providing sensible default. #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wpartial-availability" - if ([RTCMTLNSVideoView class]) { + if ([RTCMTLNSVideoView class] && [RTCMTLNSVideoView isMetalAvailable]) { _remoteVideoView = [[RTCMTLNSVideoView alloc] initWithFrame:NSZeroRect]; _localVideoView = [[RTCMTLNSVideoView alloc] initWithFrame:NSZeroRect]; - } else { + } +#pragma clang diagnostic pop + if (_remoteVideoView == nil) { NSOpenGLPixelFormatAttribute attributes[] = { NSOpenGLPFADoubleBuffer, NSOpenGLPFADepthSize, 24, @@ -245,7 +247,6 @@ static NSUInteger const kBottomViewHeight = 200; local.delegate = self; _localVideoView = local; } -#pragma clang diagnostic pop [_remoteVideoView setTranslatesAutoresizingMaskIntoConstraints:NO]; [self addSubview:_remoteVideoView]; diff --git a/webrtc/sdk/objc/Framework/Classes/Metal/RTCMTLNSVideoView.m b/webrtc/sdk/objc/Framework/Classes/Metal/RTCMTLNSVideoView.m index dd41393267..ff23bc6e6e 100644 --- a/webrtc/sdk/objc/Framework/Classes/Metal/RTCMTLNSVideoView.m +++ b/webrtc/sdk/objc/Framework/Classes/Metal/RTCMTLNSVideoView.m @@ -50,7 +50,7 @@ #pragma mark - Private + (BOOL)isMetalAvailable { - return YES; + return [MTLCopyAllDevices() count] > 0; } - (void)configure { diff --git a/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCMTLNSVideoView.h b/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCMTLNSVideoView.h index d9f4164a8b..4990e2529e 100644 --- a/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCMTLNSVideoView.h +++ b/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCMTLNSVideoView.h @@ -13,5 +13,5 @@ NS_AVAILABLE_MAC(10.11) @interface RTCMTLNSVideoView : NSView - ++ (BOOL)isMetalAvailable; @end