在EDK Marmalade中使用GPUImage

时间:2013-07-12 05:35:17

标签: ios crash gpuimage marmalade marmalade-edk

我正在尝试为marmalade Framework编写GPUImage的扩展名。为此,我使用了官方文档和扩展开发工具包(EDK)Marmalade。我写了一些示例代码,编译:

mkb s3egpuimage_iphone.mkb --arm --release --compiler clang

编译正常,我得到库和标题,并与部署工具marlmalade和链接完成正常链接。但我把ipa写入iPod touch并运行此代码,我得到或freez应用程序或崩溃应用程序。我打电话的崩溃或freez开始:

[videoCamera startCameraCapture]

当然我用

初始化了videoCamera
[[GPUImageVideoCamera alloc] initWithSessionPreset:AVCaptureSessionPreset640x480 cameraPosition:AVCaptureDevicePositionBack];

轻松实现目标:

textureOutput = [[GPUImageTextureOutput alloc] init];
...
[videoCamera addTarget:textureOutput]; 
[videoCamera startCameraCapture];

NSString *pathToMovie = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/Movie.m4v"];
unlink([pathToMovie UTF8String]);
NSURL *movieURL = [NSURL fileURLWithPath:pathToMovie];

movieWriter = [[GPUImageMovieWriter alloc] initWithMovieURL:movieURL size:CGSizeMake(480.0, 640.0)];

movieWriter.shouldPassthroughAudio = YES;
videoCamera.audioEncodingTarget = movieWriter;

[movieWriter startRecording];
我想到了这一点,但我不明白。 请帮忙吗?

1 个答案:

答案 0 :(得分:0)

我再次评论是否可以......但所以这是一个部分答案。

值得查看日志,看看是否有任何消息出现,你没想到。但是,您没有显示s4e文件,只需要考虑一些事项:

1)在较低级别,您是在OS线程上运行(通过在s4e文件中说明它还是自己滚动)?找出它应该被访问的内容,并保持一致 - 不要混合搭配。

2)如果您在os线程中,请注意任何异常。 [通过os线程调用的橘子酱代码不喜欢未处理的异常。]

3)跨线程调用的API使用varargs(...)。这看起来很强大,但是varargs存在已知问题,我们现在建议反对 - 问题与64位和类似的对齐问题有关。建议为每个函数创建一个参数块,然后传递它。

如果您发现任何更多信息,请随时发布。