From bfaf9d1678281b071194c3261109605dea368f2d Mon Sep 17 00:00:00 2001 From: leminlimez <59540996+leminlimez@users.noreply.github.com> Date: Sat, 21 Jun 2025 14:15:00 -0400 Subject: [PATCH] release pooled memory while extracting frames --- Pocket Poster/Controllers/VideoHandler.swift | 24 +++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/Pocket Poster/Controllers/VideoHandler.swift b/Pocket Poster/Controllers/VideoHandler.swift index c911b19..1484f76 100644 --- a/Pocket Poster/Controllers/VideoHandler.swift +++ b/Pocket Poster/Controllers/VideoHandler.swift @@ -140,17 +140,19 @@ class VideoHandler { while let sampleBuffer = readerOutput.copyNextSampleBuffer(), let imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer) { - let name = "\(frameCount).jpg" - let filePathName = "assets/\(name)" - UIApplication.shared.change(title: NSLocalizedString("Generating Video...", comment: ""), body: String(format: NSLocalizedString("Creating %@...", comment: "the message for the current image that is being generated"), filePathName)) - - let ciImage = CIImage(cvPixelBuffer: imageBuffer) - let context = CIContext() - if let cgImage = context.createCGImage(ciImage, from: ciImage.extent) { - if let img = cgImage.jpg { - try img.write(to: assetsFolder.appendingPathComponent(name)) - camlData += "\t\t\t\n" - frameCount += 1 + try? autoreleasepool { + let name = "\(frameCount).jpg" + let filePathName = "assets/\(name)" + UIApplication.shared.change(title: NSLocalizedString("Generating Video...", comment: ""), body: String(format: NSLocalizedString("Creating %@...", comment: "the message for the current image that is being generated"), filePathName)) + + let ciImage = CIImage(cvPixelBuffer: imageBuffer) + let context = CIContext() + if let cgImage = context.createCGImage(ciImage, from: ciImage.extent) { + if let img = cgImage.jpg { + try img.write(to: assetsFolder.appendingPathComponent(name)) + camlData += "\t\t\t\n" + frameCount += 1 + } } } }