I am trying to apply GPUImageGaussianBlurFilter to live camera feed masking with a PNG image. Also i need to mention that PNG image is not a square or circle but a closed Bezier Path.
Here is my code :
GPUImageVideoCamera *videoCamera;
GPUImageView *view1;
videoCamera = [[GPUImageVideoCamera alloc] initWithSessionPreset:AVCaptureSessionPreset640x480 cameraPosition:AVCaptureDevicePositionBack];
videoCamera.outputImageOrientation = UIInterfaceOrientationLandscapeRight;
CGRect movieFrame = CGRectMake(0.0, 0.0, 640.0, 480.0);
view1 = [[GPUImageView alloc] initWithFrame:movieFrame];
[self.view addSubview:view1];
GPUImageMaskFilter * maskFilter = [[GPUImageMaskFilter alloc] init];
[videoCamera addTarget:maskFilter];
GPUImageGaussianBlurFilter * gaussianBlurFilter = [[GPUImageGaussianBlurFilter alloc] init];
[gaussianBlurFilter setBlurRadiusInPixels:3.0];
[gaussianBlurFilter addTarget:maskFilter];
GPUImagePicture * maskGPUImage = [[GPUImagePicture alloc] initWithImage:[UIImage imageNamed:@"mask2"] smoothlyScaleOutput:YES];
[maskGPUImage addTarget:maskFilter];
[maskGPUImage processImage];
[maskFilter addTarget:view1];
[videoCamera startCameraCapture];
But Xcode 6.0.1 breaks execution after compile in "GPUImageFramebuffer.m" on line :
NSAssert(framebufferReferenceCount > 0, @"Tried to overrelease a framebuffer, did you forget to call -useNextFrameForImageCapture before using -imageFromCurrentFramebuffer?");
Using OSX Mavericks 10.9.5, iPad Air for testing
Regards
I found the solution; the references should be strong. Weak references are released early