diff --git a/VoidLink/Stream/VideoDecoderRenderer.m b/VoidLink/Stream/VideoDecoderRenderer.m index 246194ef..b1b9238d 100644 --- a/VoidLink/Stream/VideoDecoderRenderer.m +++ b/VoidLink/Stream/VideoDecoderRenderer.m @@ -39,10 +39,11 @@ extern int ff_isom_write_av1c(AVIOContext *pb, const uint8_t *buf, int size, - (void)reinitializeDisplayLayer { - CALayer *oldLayer = _displayLayer; - - _displayLayer = [[AVSampleBufferDisplayLayer alloc] init]; - _displayLayer.backgroundColor = [UIColor blackColor].CGColor; + if (_displayLayer == nil) { + _displayLayer = [[AVSampleBufferDisplayLayer alloc] init]; + _displayLayer.backgroundColor = [UIColor blackColor].CGColor; + [_view.layer addSublayer:_displayLayer]; + } // Ensure the AVSampleBufferDisplayLayer is sized to preserve the aspect ratio // of the video stream. We used to use AVLayerVideoGravityResizeAspect, but that @@ -63,14 +64,6 @@ extern int ff_isom_write_av1c(AVIOContext *pb, const uint8_t *buf, int size, // can see the loading progress label as the stream is starting. _displayLayer.hidden = YES; - if (oldLayer != nil) { - // Switch out the old display layer with the new one - [_view.layer replaceSublayer:oldLayer with:_displayLayer]; - } - else { - [_view.layer addSublayer:_displayLayer]; - } - if (formatDesc != nil) { CFRelease(formatDesc); formatDesc = nil;