You cannot access OpenGL ES at all when your application is running in the background (paused). GPUImage uses OpenGL ES for everything it does. You must make sure that all the actions performed by your application using GPUImage (video filtering, image processing) are performed before your application completes the transition to the background.
You need to listen to UIApplicationWillResignActiveNotification or fill out the appropriate delegate callbacks to go to the background and pause camera capture (using the -pauseCameraCapture method at the input of your camera) or wait for any processing to complete (I believe that synchronous sending to the sequential send queue of GPUImage will take care of this )
A related discussion for this can be found on the GitHub problems page here: https://github.com/BradLarson/GPUImage/issues/197 and in several related issues.
source share