After initializing your GPUImage:
GPUImagePicture *sourcePicture1 = [[GPUImagePicture alloc]initWithImage:[UIImage imageNamed:@"FilterBG"]];
you should call:
[sourcePicture1 processImage]
to efficiently load an image and make it available to the GPUImage pipeline.
And do the same for sourcePicture2 and sourcePicture3 .
Update:
What I needed to do several years ago when I used it with films and photos was to add a notification when the film was downloaded and ready to play (in the GPUImageMovie.m method, processAsset , before self.decodeIsAllowed = YES; Only when the movie was ready did I set its GPUImage pipeline target.
Nicolas buquet
source share