GPUImage:当处理来自GPUImageVideoCamera的帧完成过滤器时,是否有回调函数

时间:2014-02-24 19:42:03

标签: ios iphone callback camera gpuimage

基本上,我想从iPhone相机中抓取帧,将它们输入到自定义过滤器,并将自定义过滤器的结果输入到我自己的CPU内存中,以便进一步处理。问题是相机每秒向滤镜发送30帧,我如何知道该滤镜何时完成?换句话说,当滤镜完成处理相机中的每一帧时,是否有回调函数?代码如下:

    videoCamera = [[GPUImageVideoCamera alloc] initWithSessionPreset:AVCaptureSessionPreset640x480 cameraPosition:AVCaptureDevicePositionBack];
    videoCamera.outputImageOrientation = UIInterfaceOrientationPortrait;
    MyOwnGPUFilter *mof=[[MyOwnGPUFilter alloc] init];
    [videoCamera addTarget:mof];
    [videoCamera startCameraCapture];

1 个答案:

答案 0 :(得分:1)

对于类似的内容,我建议使用GPUImageRawDataOutput类并设置其newFrameAvailableBlock。如果将GPUImageRawDataOutput作为过滤器的目标,则在过滤器完成处理的瞬间将触发该块。

GPUImageRawDataOutput使您可以直接访问原始颜色数据,并使用最有效的方法将其拉下来。这样可以很容易地将这些颜色字节传递给CPU端处理。