整合Brad Larson的GPUImage时崩溃

时间:2012-06-19 13:43:32

标签: ios opengl-es objective-c-blocks

我正在尝试将Brad Larson's GPUImage framework集成到我的项目中。示例代码工作正常。在我整合之后,它构建得很好,但我在运行时遇到了崩溃。它在AVCaptureVideoDataOutputSampleBufferDelegate方法崩溃,

- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection;

特别是  runOnMainQueueWithoutDeadlocking阻止。我试图找出崩溃区域但是在看到崩溃日志几个小时之后也找不到它。我对崩溃没有任何了解。下面是我的崩溃日志。有人可以指出我的问题吗?我还怀疑,我可以使用名称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

1 个答案:

答案 0 :(得分:0)

最后,我找到了解决方案。我刚刚在目标的编译源中替换了AppDelegate的编译器标志,这是为了ARC的目的而设置的。 即我删除了-fno-objc-arc标志,并将其替换为导致崩溃的AppDelegate类的-fobjc-arc标志。