Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(218)

Unified Diff: webrtc/sdk/objc/Framework/Classes/Metal/RTCMTLNV12Renderer.mm

Issue 2742603003: Reland of Add Metal video view in AppRTCMobile and metal availability macro. (Closed)
Patch Set: Don't render without a texture Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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
« no previous file with comments | « webrtc/examples/objc/AppRTCMobile/ios/ARDVideoCallView.m ('k') | webrtc/sdk/objc/Framework/Classes/Metal/RTCMTLVideoView.m » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698