From 676ba3cd125acb239f89c358bebc6a83e57db55b Mon Sep 17 00:00:00 2001 From: Highnoon Date: Thu, 7 Dec 2017 15:13:19 +0900 Subject: [PATCH] GPUImageMovie endprocessing crash issue. AVPlayerItemVideoOutput property inside GPUImageMovie sets videoProcessingQueue as a delegate, so when GPUImageMovie is deallocating, AVPlayerItemVideoOutput won't release then the crash occurs. To fix it, AVPlayerItemVideoOutput needs to be released when the process ends. Hence the following codes are provided at the end of endProcessing method. --- framework/Source/GPUImageMovie.m | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/framework/Source/GPUImageMovie.m b/framework/Source/GPUImageMovie.m index 4da050f41..d506f2caf 100755 --- a/framework/Source/GPUImageMovie.m +++ b/framework/Source/GPUImageMovie.m @@ -812,6 +812,12 @@ - (void)endProcessing; [self.delegate didCompletePlayingMovie]; } self.delegate = nil; + + runSynchronouslyOnVideoProcessingQueue(^{ + [playerItemOutput setDelegate: nil queue: nil]; + [_playerItem removeOutput: playerItemOutput]; + playerItemOutput = nil; + }); } - (void)cancelProcessing