2014-09-06 2 views
1

iOS 카메라 앱을 개발할 때 GPUImage 라이브러리를 사용하고 있습니다.[GPUImageContext presentBufferForDisplay]가있는 iOS 앱 크래시

가끔 GPUImageContext를 사용하여 앱이 다운되는 경우가있었습니다. Crashlytics 크래시 보고서 ( )와 GPUImageContext.m 줄 196의 응용 프로그램 충돌을 통해 알게되었습니다.

- (void)presentBufferForDisplay; 
{ 
    [self.context presentRenderbuffer:GL_RENDERBUFFER]; 
} 

나는 아래의 질문을 확인했지만, 아래의 경우를 지원합니다.
Mysterious app crash with OpenGL

누구나이 충돌의 원인을 제안합니까? 충돌 보고서가 표시되며 대부분의 충돌 (90 %)은 iPod에서 발생합니다.

+0

이 문제가 해결 되었습니까? 나는 같은 문제가있다. –

+0

이 문제는 해결할 수 없으므로 AVFoundation API를 사용하여 충돌을 피합니다. –

+1

응용 프로그램이 백그라운드에서 실행될 때 동영상 처리를 중단해야하는 대답을 얻었습니다. –

답변

3

응용 프로그램이 백그라운드에서 실행 중일 때 OpenGL ES에 액세스 할 수 없습니다 (일시 중단). GPUImage는 모든 일에 OpenGL ES를 사용합니다. 응용 프로그램이 GPUImage (비디오 필터링, 이미지 처리)로 수행하는 모든 작업이 응용 프로그램이 백그라운드로 전환되기 전에 완료되었는지 확인해야합니다.

배경으로의 전환을 위해 UIApplicationWillResignActiveNotification을 수신하거나 관련 위임 콜백을 작성하고 카메라 입력에서 -pauseCameraCapture 메서드를 통해 카메라 캡처를 일시 중지하거나 처리가 완료 될 때까지 기다려야합니다 GPIXmage 직렬 디스패치 큐에 대한 동기 디스패치가이 문제를 해결할 것이라고 믿습니다.

관련 문제는 GitHub 문제 페이지 (https://github.com/BradLarson/GPUImage/issues/197) 및 여러 관련 문제에서 확인할 수 있습니다.