From 678c8054d7075877f649181b9feb38edd2ad4fa7 Mon Sep 17 00:00:00 2001 From: Acaki Date: Thu, 21 Aug 2025 00:07:40 +0800 Subject: [PATCH] Revert "fix: frozen image when switching from metal to AVSB" This reverts commit 2b052fef1ed3ca236f7d30c9cdd5f82fb92e4e89. --- VoidLink/Stream/VideoDecoderRenderer.m | 35 ++++---------------------- 1 file changed, 5 insertions(+), 30 deletions(-) diff --git a/VoidLink/Stream/VideoDecoderRenderer.m b/VoidLink/Stream/VideoDecoderRenderer.m index 7364c25d..1df2dfdb 100644 --- a/VoidLink/Stream/VideoDecoderRenderer.m +++ b/VoidLink/Stream/VideoDecoderRenderer.m @@ -59,18 +59,12 @@ extern int ff_isom_write_av1c(AVIOContext *pb, const uint8_t *buf, int size, - (void)reinitializeDisplayLayer { - // Clean up existing display layer if it exists - if (_displayLayer != nil) { - [_displayLayer flushAndRemoveImage]; - [_displayLayer removeFromSuperlayer]; - _displayLayer = nil; + if (_displayLayer == nil) { + _displayLayer = [[AVSampleBufferDisplayLayer alloc] init]; + _displayLayer.backgroundColor = [UIColor blackColor].CGColor; + _displayLayer.videoGravity = AVLayerVideoGravityResize; + [_view.layer addSublayer:_displayLayer]; } - - // Create a new display layer - _displayLayer = [[AVSampleBufferDisplayLayer alloc] init]; - _displayLayer.backgroundColor = [UIColor blackColor].CGColor; - _displayLayer.videoGravity = AVLayerVideoGravityResize; - [_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 @@ -369,14 +363,6 @@ int DrSubmitDecodeUnit(PDECODE_UNIT decodeUnit); if (_renderingBackend == RENDER_AVSB) { [_displayLink invalidate]; - _displayLink = nil; - - // Properly clean up the display layer - if (_displayLayer != nil) { - [_displayLayer flushAndRemoveImage]; - [_displayLayer removeFromSuperlayer]; - _displayLayer = nil; - } } if (_decompressionSession != NULL) { @@ -384,17 +370,6 @@ int DrSubmitDecodeUnit(PDECODE_UNIT decodeUnit); CFRelease(_decompressionSession); _decompressionSession = nil; } - - // Clean up format descriptors - if (_formatDesc != nil) { - CFRelease(_formatDesc); - _formatDesc = nil; - } - - if (_formatDescImageBuffer != nil) { - CFRelease(_formatDescImageBuffer); - _formatDescImageBuffer = nil; - } } #define NALU_START_PREFIX_SIZE 3