1

我正在研究 GPUImage 框架,使用 GPUImageVideoCamera 录制视频。

它曾经有时工作得非常完美,但有时我从我的相机屏幕来回走动,它确实有时会崩溃。我不知道发生了什么。我正在使用 ARC 和 IOS 6。

我正在添加我的错误图像,请看一下。

这是第一个

在此处输入图像描述

在释放 frameRenderingSemaphore 时,在 GpuImageVideoCamera 的 dealloc 方法中发生崩溃:

// ARC forbids explicit message send of 'release'; since iOS 6 even for dispatch_release() calls: stripping it out in that case is required.
#if ( (__IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_6_0) || (!defined(__IPHONE_6_0)) )    
    if (frameRenderingSemaphore != NULL)
    {
        dispatch_release(frameRenderingSemaphore);
    }
#endif
4

2 回答 2

3

看来这不是 ARC/not ARC 的问题(我尝试过启用和不启用 ARC 的 GPUImage 构建)。

相反,我发现在释放 GPUImageVideoCamera 之前,您需要阻止它捕获任何帧。然后安排对 的调用[camera release]GPUImageContext.contextQueue这将确保在处理完所有帧后调用释放。

很抱歉没有发布更多示例代码,现在使用 Xamarin/C# 中的 GPUImage,因此翻译有点麻烦。

于 2014-04-03T16:02:35.143 回答
0

尝试删除项目中的所有断点,然后执行 product --> clean

于 2013-09-16T13:30:52.240 回答