Im trying to integrate Brad Larson’s GPUImage framework to my project. The sample code works fine. After I’ve intergrated, it builds fine but Im facing crash while running it. It crashes at AVCaptureVideoDataOutputSampleBufferDelegate method,
- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection;
Particularly at
runOnMainQueueWithoutDeadlocking block. I tried to find out the crash area but couldn’t find it even after some few hours of time on seeing the crash log too. I didnt get any idea about the crash. Below is the crash log of Im getting on it. Can some one point me out the issue in it? I also have a doubt that, can I use to continue the queue in name com.sunsetlakesoftware.GPUImage.processingQueue?
Date/Time: 2012-06-19 17:46:28.449 +0530
OS Version: iPhone OS 5.1.1 (9B206)
Report Version: 104
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0xb00566c0
Crashed Thread: 0
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libobjc.A.dylib 0x344faf78 objc_msgSend + 16
1 GPUTest 0x0017d16a __74-[GPUImageVideoCamera captureOutput:didOutputSampleBuffer:fromConnection:]_block_invoke_0118 (GPUImageVideoCamera.m:415)
2 libdispatch.dylib 0x35b03b24 _dispatch_barrier_sync_f_slow_invoke + 72
3 libdispatch.dylib 0x35b02e8a _dispatch_main_queue_callback_4CF$VARIANT$up + 190
4 CoreFoundation 0x3247d2a6 __CFRunLoopRun + 1262
5 CoreFoundation 0x3240049e CFRunLoopRunSpecific + 294
6 CoreFoundation 0x32400366 CFRunLoopRunInMode + 98
7 GraphicsServices 0x31557432 GSEventRunModal + 130
8 UIKit 0x31effcce UIApplicationMain + 1074
9 GPUTest 0x000b0714 main (main.m:10)
10 GPUTest 0x000b06cc start + 32
Thread 1 name: Dispatch queue: com.sunsetlakesoftware.GPUImage.processingQueue
Thread 1:
0 libsystem_kernel.dylib 0x35b4b054 semaphore_wait_trap + 8
1 libdispatch.dylib 0x35b0447e _dispatch_thread_semaphore_wait$VARIANT$up + 6
2 libdispatch.dylib 0x35b0265e _dispatch_barrier_sync_f_slow + 82
3 libdispatch.dylib 0x35b025dc dispatch_barrier_sync_f$VARIANT$up + 16
4 libdispatch.dylib 0x35b02238 dispatch_sync_f$VARIANT$up + 12
5 libdispatch.dylib 0x35b028ee _dispatch_sync_slow + 46
6 libdispatch.dylib 0x35b028ae dispatch_sync$VARIANT$up + 18
7 GPUTest 0x00172796 runOnMainQueueWithoutDeadlocking (GPUImageOutput.m:13)
8 GPUTest 0x0017d0a6 -[GPUImageVideoCamera captureOutput:didOutputSampleBuffer:fromConnection:] (GPUImageVideoCamera.m:414)
9 AVFoundation 0x32dd0244 __74-[AVCaptureVideoDataOutput _AVCaptureVideoDataOutput_VideoDataBecameReady]_block_invoke_0 + 220
10 libdispatch.dylib 0x35af7c52 _dispatch_call_block_and_release + 6
11 libdispatch.dylib 0x35b02ca4 _dispatch_queue_drain + 268
12 libdispatch.dylib 0x35b02b12 _dispatch_queue_invoke$VARIANT$up + 30
13 libdispatch.dylib 0x35b03784 _dispatch_worker_thread2 + 208
14 libsystem_c.dylib 0x30d40df4 _pthread_wqthread + 288
15 libsystem_c.dylib 0x30d40cc8 start_wqthread + 0
Thread 2:
0 libsystem_kernel.dylib 0x35b5bcd4 __workq_kernreturn + 8
1 libsystem_c.dylib 0x30d40f36 _pthread_wqthread + 610
2 libsystem_c.dylib 0x30d40cc8 start_wqthread + 0
Thread 3 name: Dispatch queue: com.apple.libdispatch-manager
Thread 3:
0 libsystem_kernel.dylib 0x35b4b3a8 kevent + 24
1 libdispatch.dylib 0x35b03ea4 _dispatch_mgr_invoke + 708
2 libdispatch.dylib 0x35b03bc2 _dispatch_mgr_thread + 30
Thread 4:
0 libsystem_kernel.dylib 0x35b5bcd4 __workq_kernreturn + 8
1 libsystem_c.dylib 0x30d40f36 _pthread_wqthread + 610
2 libsystem_c.dylib 0x30d40cc8 start_wqthread + 0
Thread 5:
0 libsystem_kernel.dylib 0x35b5bcd4 __workq_kernreturn + 8
1 libsystem_c.dylib 0x30d40f36 _pthread_wqthread + 610
2 libsystem_c.dylib 0x30d40cc8 start_wqthread + 0
Thread 6 name: WebThread
Thread 6:
0 libsystem_kernel.dylib 0x35b4b004 mach_msg_trap + 20
1 libsystem_kernel.dylib 0x35b4b1fa mach_msg + 50
2 CoreFoundation 0x3247e3ec __CFRunLoopServiceMachPort + 120
3 CoreFoundation 0x3247d124 __CFRunLoopRun + 876
4 CoreFoundation 0x3240049e CFRunLoopRunSpecific + 294
5 CoreFoundation 0x32400366 CFRunLoopRunInMode + 98
6 WebCore 0x35c1dc9c _ZL12RunWebThreadPv + 396
7 libsystem_c.dylib 0x30d4672e _pthread_start + 314
8 libsystem_c.dylib 0x30d465e8 thread_start + 0
Thread 7 name: com.apple.coremedia.player.async
Thread 7:
0 libsystem_kernel.dylib 0x35b5b068 __psynch_cvwait + 24
1 libsystem_c.dylib 0x30d46a46 _pthread_cond_wait + 634
2 libsystem_c.dylib 0x30d467c2 pthread_cond_wait + 34
3 CoreMedia 0x32ec3868 FigSemaphoreWaitRelative + 268
4 MediaToolbox 0x309fb3e6 fpa_AsyncMovieControlThread + 22
5 CoreMedia 0x32ee28b4 figThreadMain + 168
6 libsystem_c.dylib 0x30d4672e _pthread_start + 314
7 libsystem_c.dylib 0x30d465e8 thread_start + 0
Thread 0 crashed with ARM Thread State:
r0: 0x00541c20 r1: 0x00190b4f r2: 0x0056f240 r3: 0x00190b4f
r4: 0xb00566b8 r5: 0x00000000 r6: 0x00000000 r7: 0x2feace34
r8: 0x2feace4c r9: 0x000642d3 r10: 0x2feace4c r11: 0x3e47dde0
ip: 0x3f3c22c8 sp: 0x2feace24 lr: 0x0017d171 pc: 0x344faf78
cpsr: 0x20000030
Finally, I found the solution. I just replaced the compiler flag of the AppDelegate in target’s compile sources which is set for the purpose of ARC.
i.e. I removed the
-fno-objc-arcflag and replaced it by-fobjc-arcflag for the AppDelegate class which caused the crash.