Reland "Improve thread-safety of MTL Renderer."
This is a reland of a8f13ccad400eb8ff84a379042c0595951ca9658 Original change's description: > Improve thread-safety of MTL Renderer. > > Bug: b/77579859 > Change-Id: I427d0f41593155dc5cbf98a09d7ec826497b803c > Reviewed-on: https://webrtc-review.googlesource.com/67040 > Commit-Queue: Kári Helgason <kthelgason@webrtc.org> > Reviewed-by: Anders Carlsson <andersc@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#22795} Bug: b/77579859 Change-Id: I9582cffaae5e241fdb4e41a2a5892738b7246e39 Reviewed-on: https://webrtc-review.googlesource.com/68960 Reviewed-by: Anders Carlsson <andersc@webrtc.org> Commit-Queue: Kári Helgason <kthelgason@webrtc.org> Cr-Commit-Position: refs/heads/master@{#22806}
This commit is contained in:
committed by
Commit Bot
parent
07f80cc393
commit
e49452de1f
@ -105,12 +105,12 @@
|
||||
|
||||
- (void)drawInMTKView:(nonnull MTKView *)view {
|
||||
NSAssert(view == self.metalView, @"Receiving draw callbacks from foreign instance.");
|
||||
if (!self.videoFrame) {
|
||||
RTCVideoFrame *videoFrame = self.videoFrame;
|
||||
if (!videoFrame) {
|
||||
return;
|
||||
}
|
||||
|
||||
id<RTCMTLRenderer> renderer = nil;
|
||||
if ([self.videoFrame.buffer isKindOfClass:[RTCCVPixelBuffer class]]) {
|
||||
if ([videoFrame.buffer isKindOfClass:[RTCCVPixelBuffer class]]) {
|
||||
if (!self.rendererNV12) {
|
||||
self.rendererNV12 = [RTCMTLVideoView createNV12Renderer];
|
||||
if (![self.rendererNV12 addRenderingDestination:self.metalView]) {
|
||||
@ -118,7 +118,7 @@
|
||||
RTCLogError(@"Failed to create NV12 renderer");
|
||||
}
|
||||
}
|
||||
renderer = self.rendererNV12;
|
||||
[self.rendererNV12 drawFrame:videoFrame];
|
||||
} else {
|
||||
if (!self.rendererI420) {
|
||||
self.rendererI420 = [RTCMTLVideoView createI420Renderer];
|
||||
@ -127,10 +127,8 @@
|
||||
RTCLogError(@"Failed to create I420 renderer");
|
||||
}
|
||||
}
|
||||
renderer = self.rendererI420;
|
||||
[self.rendererI420 drawFrame:videoFrame];
|
||||
}
|
||||
|
||||
[renderer drawFrame:self.videoFrame];
|
||||
}
|
||||
|
||||
- (void)mtkView:(MTKView *)view drawableSizeWillChange:(CGSize)size {
|
||||
|
||||
Reference in New Issue
Block a user