Index: webrtc/sdk/objc/Framework/Classes/Metal/RTCMTLNV12Renderer.mm |
diff --git a/webrtc/sdk/objc/Framework/Classes/Metal/RTCMTLNV12Renderer.mm b/webrtc/sdk/objc/Framework/Classes/Metal/RTCMTLNV12Renderer.mm |
index 13bd3fb322ce938db8cef32f87627d85c6b0805d..45e5905ec808718a7c9248edbdc438788dd4b637 100644 |
--- a/webrtc/sdk/objc/Framework/Classes/Metal/RTCMTLNV12Renderer.mm |
+++ b/webrtc/sdk/objc/Framework/Classes/Metal/RTCMTLNV12Renderer.mm |
@@ -239,10 +239,10 @@ static const NSInteger kMaxInflightBuffers = 1; |
dispatch_semaphore_signal(block_semaphore); |
}]; |
- MTLRenderPassDescriptor *_renderPassDescriptor = _view.currentRenderPassDescriptor; |
- if (_renderPassDescriptor) { // Valid drawable. |
+ MTLRenderPassDescriptor *renderPassDescriptor = _view.currentRenderPassDescriptor; |
+ if (renderPassDescriptor) { // Valid drawable. |
id<MTLRenderCommandEncoder> renderEncoder = |
- [commandBuffer renderCommandEncoderWithDescriptor:_renderPassDescriptor]; |
+ [commandBuffer renderCommandEncoderWithDescriptor:renderPassDescriptor]; |
renderEncoder.label = renderEncoderLabel; |
// Set context state. |
@@ -269,13 +269,13 @@ static const NSInteger kMaxInflightBuffers = 1; |
#pragma mark - RTCMTLRenderer |
- (void)drawFrame:(RTCVideoFrame *)frame { |
- [self setupTexturesForFrame:frame]; |
@autoreleasepool { |
- [self render]; |
+ if ([self setupTexturesForFrame:frame]) |
+ [self render]; |
} |
} |
-- (void)setupTexturesForFrame:(nonnull RTCVideoFrame *)frame { |
+- (BOOL)setupTexturesForFrame:(nonnull RTCVideoFrame *)frame { |
CVPixelBufferRef pixelBuffer = frame.nativeHandle; |
id<MTLTexture> lumaTexture = nil; |
@@ -313,7 +313,9 @@ static const NSInteger kMaxInflightBuffers = 1; |
_yTexture = lumaTexture; |
_CrCbTexture = chromaTexture; |
_offset = offsetForRotation((webrtc::VideoRotation)frame.rotation); |
+ return YES; |
} |
+ return NO; |
} |
@end |