Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

libvpx crashes on iOS #184

Closed
stefanalund opened this issue Feb 19, 2015 · 10 comments
Closed

libvpx crashes on iOS #184

stefanalund opened this issue Feb 19, 2015 · 10 comments

Comments

@stefanalund
Copy link
Contributor

Running OWR -> Anything only yields black video frames when using Cerbero on iOS 32-bit.

@sdroege
Copy link
Contributor

sdroege commented Feb 19, 2015

Related: #185

@stefanalund
Copy link
Contributor Author

After using sdroege@30e5f54 I get one correct video frame through before owr crashes with the following error:

(lldb) bt all
  thread #1: tid = 0x72b99, 0x346ce4f0 libsystem_kernel.dylib`mach_msg_trap + 20, queue = 'com.apple.main-thread'
    frame #0: 0x346ce4f0 libsystem_kernel.dylib`mach_msg_trap + 20
    frame #1: 0x346ce2e8 libsystem_kernel.dylib`mach_msg + 40
    frame #2: 0x2684231a CoreFoundation`__CFRunLoopServiceMachPort + 146
    frame #3: 0x268408c0 CoreFoundation`__CFRunLoopRun + 1016
    frame #4: 0x2678e3c0 CoreFoundation`CFRunLoopRunSpecific + 476
    frame #5: 0x2678e1d2 CoreFoundation`CFRunLoopRunInMode + 106
    frame #6: 0x2db460a8 GraphicsServices`GSEventRunModal + 136
    frame #7: 0x29d9c7b0 UIKit`UIApplicationMain + 1440
    frame #8: 0x000988dc SimpleDemo`main(argc=1, argv=0x01414ab4) + 116 at main.m:14
    frame #9: 0x3461baae libdyld.dylib`start + 2

  thread #4: tid = 0x72bf9, 0x346e29cc libsystem_kernel.dylib`__workq_kernreturn + 8
    frame #0: 0x346e29cc libsystem_kernel.dylib`__workq_kernreturn + 8
    frame #1: 0x3475ceac libsystem_pthread.dylib`_pthread_wqthread + 792
    frame #2: 0x3475cb84 libsystem_pthread.dylib`start_wqthread + 8

  thread #5: tid = 0x72c02, 0x346ce2a0 libsystem_kernel.dylib`kevent64 + 24, queue = 'com.apple.libdispatch-manager'
    frame #0: 0x346ce2a0 libsystem_kernel.dylib`kevent64 + 24
    frame #1: 0x0167e678 libdispatch.dylib`_dispatch_mgr_invoke + 280
    frame #2: 0x0167349a libdispatch.dylib`_dispatch_mgr_thread + 38

  thread #6: tid = 0x72c05, 0x346e219c libsystem_kernel.dylib`__semwait_signal + 24, name = 'gputools.smt_poll.0x16e4d0e0'
    frame #0: 0x346e219c libsystem_kernel.dylib`__semwait_signal + 24
    frame #1: 0x34641a70 libsystem_c.dylib`nanosleep + 172
    frame #2: 0x346419c0 libsystem_c.dylib`usleep + 52
    frame #3: 0x016bbff8 GPUToolsCore`smt_poll_thread_entry(void*) + 124
    frame #4: 0x3475ee92 libsystem_pthread.dylib`_pthread_body + 138
    frame #5: 0x3475ee06 libsystem_pthread.dylib`_pthread_start + 118

  thread #8: tid = 0x72c1b, 0x27c71122 JavaScriptCore`JSC::JSLock::unlock(long) + 46, name = 'owr-bridge-thread'
    frame #0: 0x27c71122 JavaScriptCore`JSC::JSLock::unlock(long) + 46
    frame #1: 0x27a435f4 JavaScriptCore`JSC::JSLockHolder::~JSLockHolder() + 92
    frame #2: 0x27c977e6 JavaScriptCore`JSValueIsNumber + 86
    frame #3: 0x005318de SimpleDemo`seed_value_to_uchar(ctx=<unavailable>, val=<unavailable>, exception=0x03ec56ec) + 14 at seed-types.c:1929
    frame #4: 0x00531466 SimpleDemo`seed_value_to_gi_argument [inlined] seed_gi_make_array(ctx=<unavailable>, array=<unavailable>, length=<unavailable>, param_type=<unavailable>, exception=<unavailable>) + 66 at seed-types.c:447
    frame #5: 0x00531424 SimpleDemo`seed_value_to_gi_argument(ctx=0x03ec57e8, value=0x050ae440, type_info=<unavailable>, transfer=<unavailable>, arg=<unavailable>, exception=0x03ec56ec) + 1140 at seed-types.c:828
    frame #6: 0x0052ba60 SimpleDemo`seed_gobject_method_invoked(ctx=0x03ec57e8, function=<unavailable>, this_object=<unavailable>, argumentCount=5, arguments=<unavailable>, exception=<unavailable>) + 824 at seed-engine.c:649
    frame #7: 0x27c5aac8 JavaScriptCore`JSC::JSCallbackObject<JSC::JSDestructibleObject>::call(JSC::ExecState*) + 420
    frame #8: 0x27a88532 JavaScriptCore`JSC::LLInt::setUpCall(JSC::ExecState*, JSC::Instruction*, JSC::CodeSpecializationKind, JSC::JSValue, JSC::LLIntCallLinkInfo*) + 458
    frame #9: 0x27a85a9e JavaScriptCore`llint_slow_path_call + 122
    frame #10: 0x27cb436c JavaScriptCore`llint_entry + 20268
    frame #11: 0x27cb4328 JavaScriptCore`llint_entry + 20200

  thread #9: tid = 0x72c1c, 0x346e1b38 libsystem_kernel.dylib`__psynch_cvwait + 24, name = 'JavaScriptCore::BlockFree'
    frame #0: 0x346e1b38 libsystem_kernel.dylib`__psynch_cvwait + 24
    frame #1: 0x3475e3f8 libsystem_pthread.dylib`_pthread_cond_wait + 520
    frame #2: 0x3475f31c libsystem_pthread.dylib`pthread_cond_timedwait + 44
    frame #3: 0x33966f5e libc++.1.dylib`std::__1::condition_variable::__do_timed_wait(std::__1::unique_lock<std::__1::mutex>&, std::__1::chrono::time_point<std::__1::chrono::system_clock, std::__1::chrono::duration<long long, std::__1::ratio<1ll, 1000000000ll> > >) + 182
    frame #4: 0x27b73514 JavaScriptCore`std::__1::cv_status std::__1::condition_variable::wait_for<long long, std::__1::ratio<1ll, 1000ll> >(std::__1::unique_lock<std::__1::mutex>&, std::__1::chrono::duration<long long, std::__1::ratio<1ll, 1000ll> > const&) + 196
    frame #5: 0x27a4d07e JavaScriptCore`JSC::BlockAllocator::blockFreeingThreadMain() + 86
    frame #6: 0x27a49596 JavaScriptCore`WTF::wtfThreadEntryPoint(void*) + 14
    frame #7: 0x3475ee92 libsystem_pthread.dylib`_pthread_body + 138
    frame #8: 0x3475ee06 libsystem_pthread.dylib`_pthread_start + 118

  thread #10: tid = 0x72c1d, 0x346e1b38 libsystem_kernel.dylib`__psynch_cvwait + 24, name = 'JavaScriptCore::Marking'
    frame #0: 0x346e1b38 libsystem_kernel.dylib`__psynch_cvwait + 24
    frame #1: 0x3475e3f8 libsystem_pthread.dylib`_pthread_cond_wait + 520
    frame #2: 0x3475f2dc libsystem_pthread.dylib`pthread_cond_wait + 40
    frame #3: 0x33966e90 libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 36
    frame #4: 0x27c14cb4 JavaScriptCore`JSC::GCThread::waitForNextPhase() + 104
    frame #5: 0x27c14d18 JavaScriptCore`JSC::GCThread::gcThreadMain() + 52
    frame #6: 0x27a49596 JavaScriptCore`WTF::wtfThreadEntryPoint(void*) + 14
    frame #7: 0x3475ee92 libsystem_pthread.dylib`_pthread_body + 138
    frame #8: 0x3475ee06 libsystem_pthread.dylib`_pthread_start + 118

  thread #11: tid = 0x72c1e, 0x346ce4f0 libsystem_kernel.dylib`mach_msg_trap + 20, name = 'AVAudioSession Notify Thread'
    frame #0: 0x346ce4f0 libsystem_kernel.dylib`mach_msg_trap + 20
    frame #1: 0x346ce2e8 libsystem_kernel.dylib`mach_msg + 40
    frame #2: 0x2684231a CoreFoundation`__CFRunLoopServiceMachPort + 146
    frame #3: 0x268408c0 CoreFoundation`__CFRunLoopRun + 1016
    frame #4: 0x2678e3c0 CoreFoundation`CFRunLoopRunSpecific + 476
    frame #5: 0x2678e1d2 CoreFoundation`CFRunLoopRunInMode + 106
    frame #6: 0x254983ee libAVFAudio.dylib`GenericRunLoopThread::Entry(void*) + 134
    frame #7: 0x2548a90a libAVFAudio.dylib`CAPThread::Entry(CAPThread*) + 194
    frame #8: 0x3475ee92 libsystem_pthread.dylib`_pthread_body + 138
    frame #9: 0x3475ee06 libsystem_pthread.dylib`_pthread_start + 118

  thread #12: tid = 0x72c34, 0x346e29cc libsystem_kernel.dylib`__workq_kernreturn + 8
    frame #0: 0x346e29cc libsystem_kernel.dylib`__workq_kernreturn + 8
    frame #1: 0x3475ceac libsystem_pthread.dylib`_pthread_wqthread + 792

  thread #14: tid = 0x72c9f, 0x346e1b38 libsystem_kernel.dylib`__psynch_cvwait + 24, name = 'source-tee-fakesink-queue:src'
    frame #0: 0x346e1b38 libsystem_kernel.dylib`__psynch_cvwait + 24
    frame #1: 0x3475e3f8 libsystem_pthread.dylib`_pthread_cond_wait + 520
    frame #2: 0x3475f2dc libsystem_pthread.dylib`pthread_cond_wait + 40
    frame #3: 0x002e6292 SimpleDemo`g_cond_wait(cond=<unavailable>, mutex=<unavailable>) + 34 at gthread-posix.c:767
    frame #4: 0x000cd084 SimpleDemo`gst_queue_loop(pad=<unavailable>) + 484 at gstqueue.c:1299
    frame #5: 0x003cb120 SimpleDemo`gst_task_func(task=0x17215058) + 276 at gsttask.c:331
    frame #6: 0x00295a40 SimpleDemo`g_thread_pool_thread_proxy(data=<unavailable>) + 120 at gthreadpool.c:307
    frame #7: 0x00298bf6 SimpleDemo`g_thread_proxy(data=0x171fcac8) + 78 at gthread.c:764
    frame #8: 0x3475ee92 libsystem_pthread.dylib`_pthread_body + 138
    frame #9: 0x3475ee06 libsystem_pthread.dylib`_pthread_start + 118

  thread #15: tid = 0x72ca0, 0x346e1b38 libsystem_kernel.dylib`__psynch_cvwait + 24, name = 'video-source:src'
    frame #0: 0x346e1b38 libsystem_kernel.dylib`__psynch_cvwait + 24
    frame #1: 0x3475e432 libsystem_pthread.dylib`_pthread_cond_wait + 578
    frame #2: 0x3475e1ec libsystem_pthread.dylib`pthread_cond_timedwait_relative_np + 16
    frame #3: 0x274d164e Foundation`-[NSCondition waitUntilDate:] + 286
    frame #4: 0x274ceb70 Foundation`-[NSConditionLock lockWhenCondition:beforeDate:] + 208
    frame #5: 0x000a19fa SimpleDemo`-[GstAVFVideoSrcImpl create:](self=0x16f6ed00, _cmd=<unavailable>, buf=0x05c62e88) + 54 at avfvideosrc.m:839
    frame #6: 0x000a2634 SimpleDemo`gst_avf_video_src_create(pushsrc=<unavailable>, buf=<unavailable>) + 76 at avfvideosrc.m:1284
    frame #7: 0x00366532 SimpleDemo`gst_base_src_get_range(src=0x17210098, offset=<unavailable>, length=4096, buf=0x05c62ef4) + 318 at gstbasesrc.c:2455
    frame #8: 0x00365d62 SimpleDemo`gst_base_src_loop(pad=<unavailable>) + 1498 at gstbasesrc.c:2731
    frame #9: 0x003cb120 SimpleDemo`gst_task_func(task=0x172150f8) + 276 at gsttask.c:331
    frame #10: 0x00295a40 SimpleDemo`g_thread_pool_thread_proxy(data=<unavailable>) + 120 at gthreadpool.c:307
    frame #11: 0x00298bf6 SimpleDemo`g_thread_proxy(data=0x171fc3d8) + 78 at gthread.c:764
    frame #12: 0x3475ee92 libsystem_pthread.dylib`_pthread_body + 138
    frame #13: 0x3475ee06 libsystem_pthread.dylib`_pthread_start + 118

  thread #16: tid = 0x72ca2, 0x346e208c libsystem_kernel.dylib`__select + 20, name = 'sink-queue-0:src'
    frame #0: 0x346e208c libsystem_kernel.dylib`__select + 20
    frame #1: 0x3469067e libsystem_c.dylib`pselect + 126
    frame #2: 0x003e5132 SimpleDemo`gst_poll_wait(set=0x17165dc8, timeout=0) + 1454 at gstpoll.c:1323
    frame #3: 0x003de960 SimpleDemo`gst_system_clock_id_wait_jitter_unlocked(clock=<unavailable>, entry=0x1720bb50, jitter=<unavailable>, restart=1) + 276 at gstsystemclock.c:684
    frame #4: 0x003ad522 SimpleDemo`gst_clock_id_wait(id=0x1720bb50, jitter=0x05ce4bb0) + 86 at gstclock.c:538
    frame #5: 0x0035a090 SimpleDemo`gst_base_sink_wait_clock(sink=0x171f3bd8, time=<unavailable>, jitter=<unavailable>) + 204 at gstbasesink.c:2103
    frame #6: 0x0035f1dc SimpleDemo`gst_base_sink_do_sync(basesink=0x171f3bd8, obj=0x179bff30, late=0x05ce4d1c, step_end=0x05ce4d18) + 1196 at gstbasesink.c:2490
    frame #7: 0x0035c20e SimpleDemo`gst_base_sink_chain_unlocked(basesink=<unavailable>, pad=<unavailable>, obj=<unavailable>, is_list=<unavailable>) + 2118 at gstbasesink.c:3398
    frame #8: 0x0035b8f6 SimpleDemo`gst_base_sink_chain_main(basesink=0x171f3bd8, pad=<unavailable>, obj=0x179bff30, is_list=0) + 46 at gstbasesink.c:3546
    frame #9: 0x003b90c4 SimpleDemo`gst_pad_chain_data_unchecked(pad=0x17219500, type=<unavailable>, data=<unavailable>) + 156 at gstpad.c:3965
    frame #10: 0x003b9856 SimpleDemo`gst_pad_push_data(pad=0x17219290, type=4112, data=<unavailable>) + 162 at gstpad.c:4198
    frame #11: 0x000cd2d0 SimpleDemo`gst_queue_loop [inlined] gst_queue_push_one + 138 at gstqueue.c:1182
    frame #12: 0x000cd246 SimpleDemo`gst_queue_loop(pad=<unavailable>) + 934 at gstqueue.c:1311
    frame #13: 0x003cb120 SimpleDemo`gst_task_func(task=0x17215198) + 276 at gsttask.c:331
    frame #14: 0x00295a40 SimpleDemo`g_thread_pool_thread_proxy(data=<unavailable>) + 120 at gthreadpool.c:307
    frame #15: 0x00298bf6 SimpleDemo`g_thread_proxy(data=0x171fc978) + 78 at gthread.c:764
    frame #16: 0x3475ee92 libsystem_pthread.dylib`_pthread_body + 138
    frame #17: 0x3475ee06 libsystem_pthread.dylib`_pthread_start + 118

  thread #17: tid = 0x72ca8, 0x346e1b38 libsystem_kernel.dylib`__psynch_cvwait + 24, name = 'source-output-queue-0:src'
    frame #0: 0x346e1b38 libsystem_kernel.dylib`__psynch_cvwait + 24
    frame #1: 0x3475e3f8 libsystem_pthread.dylib`_pthread_cond_wait + 520
    frame #2: 0x3475f2dc libsystem_pthread.dylib`pthread_cond_wait + 40
    frame #3: 0x002e6292 SimpleDemo`g_cond_wait(cond=<unavailable>, mutex=<unavailable>) + 34 at gthread-posix.c:767
    frame #4: 0x000cd084 SimpleDemo`gst_queue_loop(pad=<unavailable>) + 484 at gstqueue.c:1299
    frame #5: 0x003cb120 SimpleDemo`gst_task_func(task=0x17215238) + 276 at gsttask.c:331
    frame #6: 0x00295a40 SimpleDemo`g_thread_pool_thread_proxy(data=<unavailable>) + 120 at gthreadpool.c:307
    frame #7: 0x00298bf6 SimpleDemo`g_thread_proxy(data=0x171fc9d8) + 78 at gthread.c:764
    frame #8: 0x3475ee92 libsystem_pthread.dylib`_pthread_body + 138
    frame #9: 0x3475ee06 libsystem_pthread.dylib`_pthread_start + 118

  thread #18: tid = 0x72ca9, 0x346e1b38 libsystem_kernel.dylib`__psynch_cvwait + 24, name = 'source-queue-0:src'
    frame #0: 0x346e1b38 libsystem_kernel.dylib`__psynch_cvwait + 24
    frame #1: 0x3475e3f8 libsystem_pthread.dylib`_pthread_cond_wait + 520
    frame #2: 0x3475f2dc libsystem_pthread.dylib`pthread_cond_wait + 40
    frame #3: 0x002e6292 SimpleDemo`g_cond_wait(cond=<unavailable>, mutex=<unavailable>) + 34 at gthread-posix.c:767
    frame #4: 0x000cd084 SimpleDemo`gst_queue_loop(pad=<unavailable>) + 484 at gstqueue.c:1299
    frame #5: 0x003cb120 SimpleDemo`gst_task_func(task=0x172152d8) + 276 at gsttask.c:331
    frame #6: 0x00295a40 SimpleDemo`g_thread_pool_thread_proxy(data=<unavailable>) + 120 at gthreadpool.c:307
    frame #7: 0x00298bf6 SimpleDemo`g_thread_proxy(data=0x171fc8b8) + 78 at gthread.c:764
    frame #8: 0x3475ee92 libsystem_pthread.dylib`_pthread_body + 138
    frame #9: 0x3475ee06 libsystem_pthread.dylib`_pthread_start + 118

  thread #19: tid = 0x72caa, 0x346e208c libsystem_kernel.dylib`__select + 20, name = 'source-0:src'
    frame #0: 0x346e208c libsystem_kernel.dylib`__select + 20
    frame #1: 0x3469067e libsystem_c.dylib`pselect + 126
    frame #2: 0x003e5132 SimpleDemo`gst_poll_wait(set=0x17165dc8, timeout=0) + 1454 at gstpoll.c:1323
    frame #3: 0x003de960 SimpleDemo`gst_system_clock_id_wait_jitter_unlocked(clock=<unavailable>, entry=0x1720b448, jitter=<unavailable>, restart=1) + 276 at gstsystemclock.c:684
    frame #4: 0x003ad522 SimpleDemo`gst_clock_id_wait(id=0x1720b448, jitter=0x00000000) + 86 at gstclock.c:538
    frame #5: 0x00367152 SimpleDemo`gst_base_src_get_range [inlined] gst_base_src_wait(basesrc=<unavailable>, clock=<unavailable>) + 28 at gstbasesrc.c:2126
    frame #6: 0x00367136 SimpleDemo`gst_base_src_get_range [inlined] gst_base_src_do_sync(basesrc=0x171f3698, buffer=<unavailable>) + 188 at gstbasesrc.c:2294
    frame #7: 0x0036707a SimpleDemo`gst_base_src_get_range(src=0x171f3698, offset=18446744073709551615, length=4096, buf=<unavailable>) + 3206 at gstbasesrc.c:2502
    frame #8: 0x00365d62 SimpleDemo`gst_base_src_loop(pad=<unavailable>) + 1498 at gstbasesrc.c:2731
    frame #9: 0x003cb120 SimpleDemo`gst_task_func(task=0x17215378) + 276 at gsttask.c:331
    frame #10: 0x00295a40 SimpleDemo`g_thread_pool_thread_proxy(data=<unavailable>) + 120 at gthreadpool.c:307
    frame #11: 0x00298bf6 SimpleDemo`g_thread_proxy(data=0x171fc8e8) + 78 at gthread.c:764
    frame #12: 0x3475ee92 libsystem_pthread.dylib`_pthread_body + 138
    frame #13: 0x3475ee06 libsystem_pthread.dylib`_pthread_start + 118

  thread #20: tid = 0x72cb2, 0x34758b7a libsystem_platform.dylib`_platform_memmove + 186, name = 'pool'
    frame #0: 0x34758b7a libsystem_platform.dylib`_platform_memmove + 186
    frame #1: 0x004c4338 SimpleDemo`_owr_image_renderer_pull_bmp_image(image_renderer=<unavailable>) + 496 at owr_image_renderer.c:393
    frame #2: 0x004c3a6c SimpleDemo`on_incoming_connection(service=<unavailable>, connection=<unavailable>, source_object=<unavailable>, image_server=<unavailable>) + 356 at owr_image_server.c:325
    frame #3: 0x001e4590 SimpleDemo`ffi_call_SYSV + 48
    frame #4: 0x001e64c2 SimpleDemo`ffi_call(cif=0x05562d9c, fn=<unavailable>, rvalue=0x05562d3c, avalue=<unavailable>) + 122 at ffi.c:339
    frame #5: 0x00303a3e SimpleDemo`g_cclosure_marshal_generic_va(closure=0x18081d90, return_value=0x05562e9c, instance=0x17165c30, args_list=0x05562f58, marshal_data=<unavailable>, n_params=2, param_types=0x18081d20) + 1074 at gclosure.c:1541
    frame #6: 0x00302af8 SimpleDemo`_g_closure_invoke_va(closure=0x18081d90, return_value=0x05562e9c, instance=0x17165c30, args=0x05562f58, n_params=<unavailable>, param_types=<unavailable>) + 244 at gclosure.c:831
    frame #7: 0x00316912 SimpleDemo`g_signal_emit_valist(instance=0x17165c30, signal_id=<unavailable>, detail=<unavailable>, var_args=0x05562f58) + 1622 at gsignal.c:3218
    frame #8: 0x00316c70 SimpleDemo`g_signal_emit(instance=<unavailable>, signal_id=<unavailable>, detail=<unavailable>) + 20 at gsignal.c:3365
    frame #9: 0x00264cfa SimpleDemo`g_threaded_socket_service_func(_data=0x179a7e30, user_data=0x17165c30) + 42 at gthreadedsocketservice.c:88
    frame #10: 0x00295a40 SimpleDemo`g_thread_pool_thread_proxy(data=<unavailable>) + 120 at gthreadpool.c:307
    frame #11: 0x00298bf6 SimpleDemo`g_thread_proxy(data=0x179b5400) + 78 at gthread.c:764
    frame #12: 0x3475ee92 libsystem_pthread.dylib`_pthread_body + 138
    frame #13: 0x3475ee06 libsystem_pthread.dylib`_pthread_start + 118

  thread #21: tid = 0x72d4f, 0x346e29cc libsystem_kernel.dylib`__workq_kernreturn + 8
    frame #0: 0x346e29cc libsystem_kernel.dylib`__workq_kernreturn + 8
    frame #1: 0x3475ceac libsystem_pthread.dylib`_pthread_wqthread + 792

  thread #22: tid = 0x72d5e, 0x346e208c libsystem_kernel.dylib`__select + 20, name = 'sink-queue-1:src'
    frame #0: 0x346e208c libsystem_kernel.dylib`__select + 20
    frame #1: 0x3469067e libsystem_c.dylib`pselect + 126
    frame #2: 0x003e5132 SimpleDemo`gst_poll_wait(set=0x17165dc8, timeout=0) + 1454 at gstpoll.c:1323
    frame #3: 0x003de960 SimpleDemo`gst_system_clock_id_wait_jitter_unlocked(clock=<unavailable>, entry=0x179c1b10, jitter=<unavailable>, restart=1) + 276 at gstsystemclock.c:684
    frame #4: 0x003ad522 SimpleDemo`gst_clock_id_wait(id=0x179c1b10, jitter=0x04eddbb0) + 86 at gstclock.c:538
    frame #5: 0x0035a090 SimpleDemo`gst_base_sink_wait_clock(sink=0x179de7d8, time=<unavailable>, jitter=<unavailable>) + 204 at gstbasesink.c:2103
    frame #6: 0x0035f1dc SimpleDemo`gst_base_sink_do_sync(basesink=0x179de7d8, obj=0x179bff30, late=0x04eddd1c, step_end=0x04eddd18) + 1196 at gstbasesink.c:2490
    frame #7: 0x0035c20e SimpleDemo`gst_base_sink_chain_unlocked(basesink=<unavailable>, pad=<unavailable>, obj=<unavailable>, is_list=<unavailable>) + 2118 at gstbasesink.c:3398
    frame #8: 0x0035b8f6 SimpleDemo`gst_base_sink_chain_main(basesink=0x179de7d8, pad=<unavailable>, obj=0x179bff30, is_list=0) + 46 at gstbasesink.c:3546
    frame #9: 0x003b90c4 SimpleDemo`gst_pad_chain_data_unchecked(pad=0x17237768, type=<unavailable>, data=<unavailable>) + 156 at gstpad.c:3965
    frame #10: 0x003b9856 SimpleDemo`gst_pad_push_data(pad=0x172374f8, type=4112, data=<unavailable>) + 162 at gstpad.c:4198
    frame #11: 0x000cd2d0 SimpleDemo`gst_queue_loop [inlined] gst_queue_push_one + 138 at gstqueue.c:1182
    frame #12: 0x000cd246 SimpleDemo`gst_queue_loop(pad=<unavailable>) + 934 at gstqueue.c:1311
    frame #13: 0x003cb120 SimpleDemo`gst_task_func(task=0x172155f8) + 276 at gsttask.c:331
    frame #14: 0x00295a40 SimpleDemo`g_thread_pool_thread_proxy(data=<unavailable>) + 120 at gthreadpool.c:307
    frame #15: 0x00298bf6 SimpleDemo`g_thread_proxy(data=0x179b52e0) + 78 at gthread.c:764
    frame #16: 0x3475ee92 libsystem_pthread.dylib`_pthread_body + 138
    frame #17: 0x3475ee06 libsystem_pthread.dylib`_pthread_start + 118

  thread #25: tid = 0x72dbd, 0x346e1b38 libsystem_kernel.dylib`__psynch_cvwait + 24, name = 'rtpjitterbuffer0:src'
    frame #0: 0x346e1b38 libsystem_kernel.dylib`__psynch_cvwait + 24
    frame #1: 0x3475e3f8 libsystem_pthread.dylib`_pthread_cond_wait + 520
    frame #2: 0x3475f2dc libsystem_pthread.dylib`pthread_cond_wait + 40
    frame #3: 0x002e6292 SimpleDemo`g_cond_wait(cond=<unavailable>, mutex=<unavailable>) + 34 at gthread-posix.c:767
    frame #4: 0x001516b4 SimpleDemo`gst_rtp_jitter_buffer_loop(jitterbuffer=0x1725be08) + 336 at gstrtpjitterbuffer.c:3117
    frame #5: 0x003cb120 SimpleDemo`gst_task_func(task=0x17a05060) + 276 at gsttask.c:331
    frame #6: 0x00295a40 SimpleDemo`g_thread_pool_thread_proxy(data=<unavailable>) + 120 at gthreadpool.c:307
    frame #7: 0x00298bf6 SimpleDemo`g_thread_proxy(data=0x1718fac8) + 78 at gthread.c:764
    frame #8: 0x3475ee92 libsystem_pthread.dylib`_pthread_body + 138
    frame #9: 0x3475ee06 libsystem_pthread.dylib`_pthread_start + 118

  thread #26: tid = 0x72dbe, 0x346e1b38 libsystem_kernel.dylib`__psynch_cvwait + 24, name = 'dtls-encoder:src'
    frame #0: 0x346e1b38 libsystem_kernel.dylib`__psynch_cvwait + 24
    frame #1: 0x3475e3f8 libsystem_pthread.dylib`_pthread_cond_wait + 520
    frame #2: 0x3475f2dc libsystem_pthread.dylib`pthread_cond_wait + 40
    frame #3: 0x002e6292 SimpleDemo`g_cond_wait(cond=<unavailable>, mutex=<unavailable>) + 34 at gthread-posix.c:767
    frame #4: 0x000eb81c SimpleDemo`src_task_loop(pad=0x179cf018) + 136 at gsterdtlsenc.c:396
    frame #5: 0x003cb120 SimpleDemo`gst_task_func(task=0x17215418) + 276 at gsttask.c:331
    frame #6: 0x00295a40 SimpleDemo`g_thread_pool_thread_proxy(data=<unavailable>) + 120 at gthreadpool.c:307
    frame #7: 0x00298bf6 SimpleDemo`g_thread_proxy(data=0x179b53a0) + 78 at gthread.c:764
    frame #8: 0x3475ee92 libsystem_pthread.dylib`_pthread_body + 138
    frame #9: 0x3475ee06 libsystem_pthread.dylib`_pthread_start + 118

  thread #27: tid = 0x72dbf, 0x346e1b38 libsystem_kernel.dylib`__psynch_cvwait + 24, name = 'rtprtxsend0:src'
    frame #0: 0x346e1b38 libsystem_kernel.dylib`__psynch_cvwait + 24
    frame #1: 0x3475e3f8 libsystem_pthread.dylib`_pthread_cond_wait + 520
    frame #2: 0x3475f2dc libsystem_pthread.dylib`pthread_cond_wait + 40
    frame #3: 0x002e6292 SimpleDemo`g_cond_wait(cond=<unavailable>, mutex=<unavailable>) + 34 at gthread-posix.c:767
    frame #4: 0x003583c4 SimpleDemo`_gst_data_queue_wait_non_empty(queue=0x17167140) + 56 at gstdataqueue.c:553
    frame #5: 0x00357fb0 SimpleDemo`gst_data_queue_pop(queue=0x17167140, item=0x058c0f2c) + 184 at gstdataqueue.c:595
    frame #6: 0x00156d2e SimpleDemo`gst_rtp_rtx_send_src_loop(rtx=0x1722f0e0) + 18 at gstrtprtxsend.c:703
    frame #7: 0x003cb120 SimpleDemo`gst_task_func(task=0x17215cd8) + 276 at gsttask.c:331
    frame #8: 0x00295a40 SimpleDemo`g_thread_pool_thread_proxy(data=<unavailable>) + 120 at gthreadpool.c:307
    frame #9: 0x00298bf6 SimpleDemo`g_thread_proxy(data=0x1718f858) + 78 at gthread.c:764
    frame #10: 0x3475ee92 libsystem_pthread.dylib`_pthread_body + 138
    frame #11: 0x3475ee06 libsystem_pthread.dylib`_pthread_start + 118

  thread #28: tid = 0x72dc0, 0x346d1acc libsystem_kernel.dylib`poll + 8, name = 'nice-rtp-src-1:src'
    frame #0: 0x346d1acc libsystem_kernel.dylib`poll + 8
    frame #1: 0x002a9c8e SimpleDemo`g_main_context_iterate [inlined] g_main_context_poll(priority=<unavailable>) + 30 at gmain.c:4213
    frame #2: 0x002a9c70 SimpleDemo`g_main_context_iterate(context=<unavailable>, block=<unavailable>, dispatch=<unavailable>, self=<unavailable>) + 208 at gmain.c:3913
    frame #3: 0x002a9f0c SimpleDemo`g_main_loop_run(loop=0x180838a0) + 180 at gmain.c:4112
    frame #4: 0x000f49be SimpleDemo`gst_nice_src_create(basesrc=<unavailable>, buffer=0x0622de88) + 86 at gstnicesrc.c:291
    frame #5: 0x00366532 SimpleDemo`gst_base_src_get_range(src=0x17915898, offset=<unavailable>, length=4096, buf=0x0622def4) + 318 at gstbasesrc.c:2455
    frame #6: 0x00365d62 SimpleDemo`gst_base_src_loop(pad=<unavailable>) + 1498 at gstbasesrc.c:2731
    frame #7: 0x003cb120 SimpleDemo`gst_task_func(task=0x179bf738) + 276 at gsttask.c:331
    frame #8: 0x00295a40 SimpleDemo`g_thread_pool_thread_proxy(data=<unavailable>) + 120 at gthreadpool.c:307
    frame #9: 0x00298bf6 SimpleDemo`g_thread_proxy(data=0x1718f9d8) + 78 at gthread.c:764
    frame #10: 0x3475ee92 libsystem_pthread.dylib`_pthread_body + 138
    frame #11: 0x3475ee06 libsystem_pthread.dylib`_pthread_start + 118

* thread #24: tid = 0x72dc1, 0x005cd468 SimpleDemo`vp8_sad16x16_neon + 4 at sad16_neon.asm.s:38, name = 'send-input-video-queue-1:src', stop reason = EXC_BAD_ACCESS (code=1, address=0x5d6dd20)
  * frame #0: 0x005cd468 SimpleDemo`vp8_sad16x16_neon + 4 at sad16_neon.asm.s:38
    frame #1: 0x00572ee6 SimpleDemo`vp8_diamond_search_sad_c(x=0x0682f020, b=<unavailable>, d=<unavailable>, ref_mv=0x065324f4, best_mv=<unavailable>, search_param=<unavailable>, sad_per_bit=<unavailable>, num00=0x0000007f, fn_ptr=<unavailable>, mvcost=0x0682f020, center_mv=<unavailable>) + 206 at mcomp.c:1099
    frame #2: 0x00562d14 SimpleDemo`vp8_pick_inter_mode(cpi=0x0681d020, x=<unavailable>, recon_yoffset=32, recon_uvoffset=16, returnrate=<unavailable>, returndistortion=<unavailable>, returnintra=<unavailable>, mb_row=0, mb_col=2) + 1272 at pickinter.c:983
    frame #3: 0x0055bbaa SimpleDemo`vp8cx_encode_inter_macroblock(cpi=0x0681d020, x=0x0682f020, t=0x065327a0, recon_yoffset=32, recon_uvoffset=16, mb_row=<unavailable>, mb_col=<unavailable>) + 326 at encodeframe.c:1264
    frame #4: 0x0055b594 SimpleDemo`encode_mb_row(cpi=0x0681d020, cm=0x06836ce0, mb_row=0, x=0x0682f020, xd=0x0682fc70, tp=0x065327a0, segment_counts=<unavailable>, totalrate=0x065326ac) + 784 at encodeframe.c:509
    frame #5: 0x0055ac8c SimpleDemo`vp8_encode_frame(cpi=0x0681d020) + 1720 at encodeframe.c:922
    frame #6: 0x005b3db2 SimpleDemo`encode_frame_to_data_rate(cpi=0x0681d020, size=0x065329ec, dest=0x0673c000, dest_end=0x0681d000, frame_flags=<unavailable>) + 3442 at onyx_if.c:4018
    frame #7: 0x005b2936 SimpleDemo`vp8_get_compressed_data(cpi=0x0681d020, frame_flags=<unavailable>, size=0x065329ec, dest=<unavailable>, dest_end=<unavailable>, time_stamp=<unavailable>, time_end=<unavailable>, flush=<unavailable>) + 1630 at onyx_if.c:5177
    frame #8: 0x0056423e SimpleDemo`vp8e_encode(ctx=0x1724b000, img=<unavailable>, pts=<unavailable>, duration=<unavailable>, flags=<unavailable>, deadline=<unavailable>) + 698 at vp8_cx_iface.c:872
    frame #9: 0x005c2092 SimpleDemo`vpx_codec_encode(ctx=0x179de254, img=<unavailable>, pts=<unavailable>, duration=1, flags=<unavailable>, deadline=1) + 90 at vpx_encoder.c:226
    frame #10: 0x0019179e SimpleDemo`gst_vp8_enc_handle_frame(video_encoder=<unavailable>, frame=0x17a05b78) + 250 at gstvp8enc.c:1982
    frame #11: 0x00408346 SimpleDemo`gst_video_encoder_chain(pad=<unavailable>, parent=<unavailable>, buf=<unavailable>) + 538 at gstvideoencoder.c:1380
    frame #12: 0x003b90c4 SimpleDemo`gst_pad_chain_data_unchecked(pad=0x179e14f8, type=<unavailable>, data=<unavailable>) + 156 at gstpad.c:3965
    frame #13: 0x003b9856 SimpleDemo`gst_pad_push_data(pad=0x179e13c0, type=4112, data=<unavailable>) + 162 at gstpad.c:4198
    frame #14: 0x000cd2d0 SimpleDemo`gst_queue_loop [inlined] gst_queue_push_one + 138 at gstqueue.c:1182
    frame #15: 0x000cd246 SimpleDemo`gst_queue_loop(pad=<unavailable>) + 934 at gstqueue.c:1311
    frame #16: 0x003cb120 SimpleDemo`gst_task_func(task=0x179bfb98) + 276 at gsttask.c:331
    frame #17: 0x00295a40 SimpleDemo`g_thread_pool_thread_proxy(data=<unavailable>) + 120 at gthreadpool.c:307
    frame #18: 0x00298bf6 SimpleDemo`g_thread_proxy(data=0x179b5d90) + 78 at gthread.c:764
    frame #19: 0x3475ee92 libsystem_pthread.dylib`_pthread_body + 138
    frame #20: 0x3475ee06 libsystem_pthread.dylib`_pthread_start + 118

  thread #29: tid = 0x72dc2, 0x346e1b38 libsystem_kernel.dylib`__psynch_cvwait + 24, name = 'source-output-queue-1:src'
    frame #0: 0x346e1b38 libsystem_kernel.dylib`__psynch_cvwait + 24
    frame #1: 0x3475e3f8 libsystem_pthread.dylib`_pthread_cond_wait + 520
    frame #2: 0x3475f2dc libsystem_pthread.dylib`pthread_cond_wait + 40
    frame #3: 0x002e6292 SimpleDemo`g_cond_wait(cond=<unavailable>, mutex=<unavailable>) + 34 at gthread-posix.c:767
    frame #4: 0x000cd084 SimpleDemo`gst_queue_loop(pad=<unavailable>) + 484 at gstqueue.c:1299
    frame #5: 0x003cb120 SimpleDemo`gst_task_func(task=0x179bfeb8) + 276 at gsttask.c:331
    frame #6: 0x00295a40 SimpleDemo`g_thread_pool_thread_proxy(data=<unavailable>) + 120 at gthreadpool.c:307
    frame #7: 0x00298bf6 SimpleDemo`g_thread_proxy(data=0x1718f9a8) + 78 at gthread.c:764
    frame #8: 0x3475ee92 libsystem_pthread.dylib`_pthread_body + 138
    frame #9: 0x3475ee06 libsystem_pthread.dylib`_pthread_start + 118

  thread #23: tid = 0x72dc3, 0x34708d9e libsystem_malloc.dylib`malloc_zone_malloc + 78, name = 'source-queue-1:src'
    frame #0: 0x34708d9e libsystem_malloc.dylib`malloc_zone_malloc + 78
    frame #1: 0x3470c482 libsystem_malloc.dylib`malloc + 46
    frame #2: 0x004ee830 SimpleDemo`orc_executor_emulate(ex=<unavailable>) + 168 at orcexecutor.c:268
    frame #3: 0x004278d6 SimpleDemo`video_orc_matrix8(d1=0x047a7000, s1=0x047a7000, p1=0, p2=-26177490653216768, p3=-5066068542816256, p4=36029346775826432, n=<unavailable>) + 218 at tmp-orc.c:18846
    frame #4: 0x0041c188 SimpleDemo`video_converter_matrix8(data=<unavailable>, pixels=<unavailable>) + 44 at video-converter.c:916
    frame #5: 0x0041ec64 SimpleDemo`do_convert_lines(cache=<unavailable>, out_line=<unavailable>, in_line=0, user_data=<unavailable>) + 124 at video-converter.c:2338
    frame #6: 0x0041e260 SimpleDemo`gst_line_cache_get_lines(cache=0x179e90d8, out_line=<unavailable>, in_line=0, n_lines=<unavailable>) + 128 at video-converter.c:377
    frame #7: 0x0041e6b0 SimpleDemo`do_downsample_lines(cache=0x179e9118, out_line=<unavailable>, in_line=0, user_data=0x1723c400) + 48 at video-converter.c:2386
    frame #8: 0x0041e260 SimpleDemo`gst_line_cache_get_lines(cache=0x179e9118, out_line=<unavailable>, in_line=0, n_lines=<unavailable>) + 128 at video-converter.c:377
    frame #9: 0x0041ae4c SimpleDemo`video_converter_generic(convert=0x1723c400, src=<unavailable>, dest=0x066368a0) + 428 at video-converter.c:2481
    frame #10: 0x00165712 SimpleDemo`gst_video_convert_transform_frame(filter=0x179c2090, in_frame=0x06636a10, out_frame=0x066368a0) + 42 at gstvideoconvert.c:576
    frame #11: 0x004066c0 SimpleDemo`gst_video_filter_transform(trans=0x179c2090, inbuf=<unavailable>, outbuf=<unavailable>) + 92 at gstvideofilter.c:271
    frame #12: 0x00352016 SimpleDemo`gst_base_transform_handle_buffer(trans=0x179c2090, inbuf=<unavailable>, outbuf=0x06636c3c) + 1970 at gstbasetransform.c:2138
    frame #13: 0x00351220 SimpleDemo`gst_base_transform_chain(pad=<unavailable>, parent=<unavailable>, buffer=0x179f7e60) + 108 at gstbasetransform.c:2245
    frame #14: 0x003b90c4 SimpleDemo`gst_pad_chain_data_unchecked(pad=0x172378a0, type=<unavailable>, data=<unavailable>) + 156 at gstpad.c:3965
    frame #15: 0x003b9856 SimpleDemo`gst_pad_push_data(pad=0x17237c48, type=4112, data=<unavailable>) + 162 at gstpad.c:4198
    frame #16: 0x00351314 SimpleDemo`gst_base_transform_chain(pad=<unavailable>, parent=<unavailable>, buffer=<unavailable>) + 352 at gstbasetransform.c:2281
    frame #17: 0x003b90c4 SimpleDemo`gst_pad_chain_data_unchecked(pad=0x17237b10, type=<unavailable>, data=<unavailable>) + 156 at gstpad.c:3965
    frame #18: 0x003b9856 SimpleDemo`gst_pad_push_data(pad=0x179e1d80, type=4112, data=<unavailable>) + 162 at gstpad.c:4198
    frame #19: 0x000cd2d0 SimpleDemo`gst_queue_loop [inlined] gst_queue_push_one + 138 at gstqueue.c:1182
    frame #20: 0x000cd246 SimpleDemo`gst_queue_loop(pad=<unavailable>) + 934 at gstqueue.c:1311
    frame #21: 0x003cb120 SimpleDemo`gst_task_func(task=0x179bf058) + 276 at gsttask.c:331
    frame #22: 0x00295a40 SimpleDemo`g_thread_pool_thread_proxy(data=<unavailable>) + 120 at gthreadpool.c:307
    frame #23: 0x00298bf6 SimpleDemo`g_thread_proxy(data=0x179e3780) + 78 at gthread.c:764
    frame #24: 0x3475ee92 libsystem_pthread.dylib`_pthread_body + 138
    frame #25: 0x3475ee06 libsystem_pthread.dylib`_pthread_start + 118

  thread #30: tid = 0x72dc4, 0x346e1b38 libsystem_kernel.dylib`__psynch_cvwait + 24, name = 'source-1:src'
    frame #0: 0x346e1b38 libsystem_kernel.dylib`__psynch_cvwait + 24
    frame #1: 0x3475e3f8 libsystem_pthread.dylib`_pthread_cond_wait + 520
    frame #2: 0x3475f2dc libsystem_pthread.dylib`pthread_cond_wait + 40
    frame #3: 0x002e6292 SimpleDemo`g_cond_wait(cond=<unavailable>, mutex=<unavailable>) + 34 at gthread-posix.c:767
    frame #4: 0x000cb740 SimpleDemo`gst_queue_chain(pad=<unavailable>, parent=0x17236000, buffer=0x179f7c80) + 1224 at gstqueue.c:1078
    frame #5: 0x003b90c4 SimpleDemo`gst_pad_chain_data_unchecked(pad=0x179e1c48, type=<unavailable>, data=<unavailable>) + 156 at gstpad.c:3965
    frame #6: 0x003b9856 SimpleDemo`gst_pad_push_data(pad=0x17237630, type=4112, data=<unavailable>) + 162 at gstpad.c:4198
    frame #7: 0x00366164 SimpleDemo`gst_base_src_loop(pad=0x17237630) + 2524 at gstbasesrc.c:2845
    frame #8: 0x003cb120 SimpleDemo`gst_task_func(task=0x17247050) + 276 at gsttask.c:331
    frame #9: 0x00295a40 SimpleDemo`g_thread_pool_thread_proxy(data=<unavailable>) + 120 at gthreadpool.c:307
    frame #10: 0x00298bf6 SimpleDemo`g_thread_proxy(data=0x179e37b0) + 78 at gthread.c:764
    frame #11: 0x3475ee92 libsystem_pthread.dylib`_pthread_body + 138
    frame #12: 0x3475ee06 libsystem_pthread.dylib`_pthread_start + 118

  thread #31: tid = 0x72dc5, 0x346e1b38 libsystem_kernel.dylib`__psynch_cvwait + 24, name = 'connection_thread_0x179a95d0'
    frame #0: 0x346e1b38 libsystem_kernel.dylib`__psynch_cvwait + 24
    frame #1: 0x3475e3f8 libsystem_pthread.dylib`_pthread_cond_wait + 520
    frame #2: 0x3475f2dc libsystem_pthread.dylib`pthread_cond_wait + 40
    frame #3: 0x002e6292 SimpleDemo`g_cond_wait(cond=<unavailable>, mutex=<unavailable>) + 34 at gthread-posix.c:767
    frame #4: 0x000eda6e SimpleDemo`connection_timeout_thread_func(self=<unavailable>) + 934 at erdtlsconnection.c:516
    frame #5: 0x00298bf6 SimpleDemo`g_thread_proxy(data=0x179e31b0) + 78 at gthread.c:764
    frame #6: 0x3475ee92 libsystem_pthread.dylib`_pthread_body + 138
    frame #7: 0x3475ee06 libsystem_pthread.dylib`_pthread_start + 118

  thread #32: tid = 0x72dc6, 0x346e208c libsystem_kernel.dylib`__select + 20, name = 'rtpsession-rtcp-thread'
    frame #0: 0x346e208c libsystem_kernel.dylib`__select + 20
    frame #1: 0x3469067e libsystem_c.dylib`pselect + 126
    frame #2: 0x003e5132 SimpleDemo`gst_poll_wait(set=0x17165dc8, timeout=0) + 1454 at gstpoll.c:1323
    frame #3: 0x003de960 SimpleDemo`gst_system_clock_id_wait_jitter_unlocked(clock=<unavailable>, entry=0x172544c8, jitter=<unavailable>, restart=1) + 276 at gstsystemclock.c:684
    frame #4: 0x003ad522 SimpleDemo`gst_clock_id_wait(id=0x172544c8, jitter=0x00000000) + 86 at gstclock.c:538
    frame #5: 0x001435fc SimpleDemo`rtcp_thread(rtpsession=0x179c9138) + 356 at gstrtpsession.c:945
    frame #6: 0x00298bf6 SimpleDemo`g_thread_proxy(data=0x179e3810) + 78 at gthread.c:764
    frame #7: 0x3475ee92 libsystem_pthread.dylib`_pthread_body + 138
    frame #8: 0x3475ee06 libsystem_pthread.dylib`_pthread_start + 118

  thread #33: tid = 0x72dc7, 0x346e1b38 libsystem_kernel.dylib`__psynch_cvwait + 24, name = 'pool'
    frame #0: 0x346e1b38 libsystem_kernel.dylib`__psynch_cvwait + 24
    frame #1: 0x3475e432 libsystem_pthread.dylib`_pthread_cond_wait + 578
    frame #2: 0x3475e1ec libsystem_pthread.dylib`pthread_cond_timedwait_relative_np + 16
    frame #3: 0x002e644a SimpleDemo`g_cond_wait_until(cond=<unavailable>, mutex=<unavailable>, end_time=<unavailable>) + 134 at gthread-posix.c:891
    frame #4: 0x002e6d4c SimpleDemo`g_async_queue_pop_intern_unlocked(queue=0x16d1df50, wait=1, end_time=0) + 76 at gasyncqueue.c:422
    frame #5: 0x00295a22 SimpleDemo`g_thread_pool_thread_proxy [inlined] g_thread_pool_wait_for_new_task + 56 at gthreadpool.c:262
    frame #6: 0x002959ea SimpleDemo`g_thread_pool_thread_proxy(data=<unavailable>) + 34 at gthreadpool.c:296
    frame #7: 0x00298bf6 SimpleDemo`g_thread_proxy(data=0x179e3960) + 78 at gthread.c:764
    frame #8: 0x3475ee92 libsystem_pthread.dylib`_pthread_body + 138
    frame #9: 0x3475ee06 libsystem_pthread.dylib`_pthread_start + 118

  thread #34: tid = 0x72de8, 0x346e208c libsystem_kernel.dylib`__select + 20, name = 'timer'
    frame #0: 0x346e208c libsystem_kernel.dylib`__select + 20
    frame #1: 0x3469067e libsystem_c.dylib`pselect + 126
    frame #2: 0x003e5132 SimpleDemo`gst_poll_wait(set=0x17165dc8, timeout=0) + 1454 at gstpoll.c:1323
    frame #3: 0x003de960 SimpleDemo`gst_system_clock_id_wait_jitter_unlocked(clock=<unavailable>, entry=0x17254cf0, jitter=<unavailable>, restart=1) + 276 at gstsystemclock.c:684
    frame #4: 0x003ad522 SimpleDemo`gst_clock_id_wait(id=0x17254cf0, jitter=0x051f0f60) + 86 at gstclock.c:538
    frame #5: 0x00154982 SimpleDemo`wait_next_timeout(jitterbuffer=0x1725be08) + 4806 at gstrtpjitterbuffer.c:3068
    frame #6: 0x00298bf6 SimpleDemo`g_thread_proxy(data=0x179e34e0) + 78 at gthread.c:764
    frame #7: 0x3475ee92 libsystem_pthread.dylib`_pthread_body + 138
    frame #8: 0x3475ee06 libsystem_pthread.dylib`_pthread_start + 118

  thread #35: tid = 0x72de9, 0x346e1b38 libsystem_kernel.dylib`__psynch_cvwait + 24, name = 'queue:src'
    frame #0: 0x346e1b38 libsystem_kernel.dylib`__psynch_cvwait + 24
    frame #1: 0x3475e3f8 libsystem_pthread.dylib`_pthread_cond_wait + 520
    frame #2: 0x3475f2dc libsystem_pthread.dylib`pthread_cond_wait + 40
    frame #3: 0x002e6292 SimpleDemo`g_cond_wait(cond=<unavailable>, mutex=<unavailable>) + 34 at gthread-posix.c:767
    frame #4: 0x000cd084 SimpleDemo`gst_queue_loop(pad=<unavailable>) + 484 at gstqueue.c:1299
    frame #5: 0x003cb120 SimpleDemo`gst_task_func(task=0x179bf198) + 276 at gsttask.c:331
    frame #6: 0x00295a40 SimpleDemo`g_thread_pool_thread_proxy(data=<unavailable>) + 120 at gthreadpool.c:307
    frame #7: 0x00298bf6 SimpleDemo`g_thread_proxy(data=0x1718ff48) + 78 at gthread.c:764
    frame #8: 0x3475ee92 libsystem_pthread.dylib`_pthread_body + 138
    frame #9: 0x3475ee06 libsystem_pthread.dylib`_pthread_start + 118

  thread #36: tid = 0x72dea, 0x346e208c libsystem_kernel.dylib`__select + 20, name = 'sink-queue-2:src'
    frame #0: 0x346e208c libsystem_kernel.dylib`__select + 20
    frame #1: 0x3469067e libsystem_c.dylib`pselect + 126
    frame #2: 0x003e5132 SimpleDemo`gst_poll_wait(set=0x17165dc8, timeout=0) + 1454 at gstpoll.c:1323
    frame #3: 0x003de960 SimpleDemo`gst_system_clock_id_wait_jitter_unlocked(clock=<unavailable>, entry=0x17276448, jitter=<unavailable>, restart=1) + 276 at gstsystemclock.c:684
    frame #4: 0x003ad522 SimpleDemo`gst_clock_id_wait(id=0x17276448, jitter=0x07700bb0) + 86 at gstclock.c:538
    frame #5: 0x0035a090 SimpleDemo`gst_base_sink_wait_clock(sink=0x179e25d8, time=<unavailable>, jitter=<unavailable>) + 204 at gstbasesink.c:2103
    frame #6: 0x0035f1dc SimpleDemo`gst_base_sink_do_sync(basesink=0x179e25d8, obj=0x179fb010, late=0x07700d1c, step_end=0x07700d18) + 1196 at gstbasesink.c:2490
    frame #7: 0x0035c20e SimpleDemo`gst_base_sink_chain_unlocked(basesink=<unavailable>, pad=<unavailable>, obj=<unavailable>, is_list=<unavailable>) + 2118 at gstbasesink.c:3398
    frame #8: 0x0035b8f6 SimpleDemo`gst_base_sink_chain_main(basesink=0x179e25d8, pad=<unavailable>, obj=0x179fb010, is_list=0) + 46 at gstbasesink.c:3546
    frame #9: 0x003b90c4 SimpleDemo`gst_pad_chain_data_unchecked(pad=0x17a11768, type=<unavailable>, data=<unavailable>) + 156 at gstpad.c:3965
    frame #10: 0x003b9856 SimpleDemo`gst_pad_push_data(pad=0x17a114f8, type=4112, data=<unavailable>) + 162 at gstpad.c:4198
    frame #11: 0x000cd2d0 SimpleDemo`gst_queue_loop [inlined] gst_queue_push_one + 138 at gstqueue.c:1182
    frame #12: 0x000cd246 SimpleDemo`gst_queue_loop(pad=<unavailable>) + 934 at gstqueue.c:1311
    frame #13: 0x003cb120 SimpleDemo`gst_task_func(task=0x172470f0) + 276 at gsttask.c:331
    frame #14: 0x00295a40 SimpleDemo`g_thread_pool_thread_proxy(data=<unavailable>) + 120 at gthreadpool.c:307
    frame #15: 0x00298bf6 SimpleDemo`g_thread_proxy(data=0x17a0d9d0) + 78 at gthread.c:764
    frame #16: 0x3475ee92 libsystem_pthread.dylib`_pthread_body + 138
    frame #17: 0x3475ee06 libsystem_pthread.dylib`_pthread_start + 118

  thread #37: tid = 0x72deb, 0x346e1b38 libsystem_kernel.dylib`__psynch_cvwait + 24, name = 'source-output-queue-2:src'
    frame #0: 0x346e1b38 libsystem_kernel.dylib`__psynch_cvwait + 24
    frame #1: 0x3475e3f8 libsystem_pthread.dylib`_pthread_cond_wait + 520
    frame #2: 0x3475f2dc libsystem_pthread.dylib`pthread_cond_wait + 40
    frame #3: 0x002e6292 SimpleDemo`g_cond_wait(cond=<unavailable>, mutex=<unavailable>) + 34 at gthread-posix.c:767
    frame #4: 0x000cd084 SimpleDemo`gst_queue_loop(pad=<unavailable>) + 484 at gstqueue.c:1299
    frame #5: 0x003cb120 SimpleDemo`gst_task_func(task=0x17247190) + 276 at gsttask.c:331
    frame #6: 0x00295a40 SimpleDemo`g_thread_pool_thread_proxy(data=<unavailable>) + 120 at gthreadpool.c:307
    frame #7: 0x00298bf6 SimpleDemo`g_thread_proxy(data=0x17a0d820) + 78 at gthread.c:764
    frame #8: 0x3475ee92 libsystem_pthread.dylib`_pthread_body + 138
    frame #9: 0x3475ee06 libsystem_pthread.dylib`_pthread_start + 118

  thread #38: tid = 0x72dec, 0x346e1b38 libsystem_kernel.dylib`__psynch_cvwait + 24, name = 'source-queue-2:src'
    frame #0: 0x346e1b38 libsystem_kernel.dylib`__psynch_cvwait + 24
    frame #1: 0x3475e3f8 libsystem_pthread.dylib`_pthread_cond_wait + 520
    frame #2: 0x3475f2dc libsystem_pthread.dylib`pthread_cond_wait + 40
    frame #3: 0x002e6292 SimpleDemo`g_cond_wait(cond=<unavailable>, mutex=<unavailable>) + 34 at gthread-posix.c:767
    frame #4: 0x000cd084 SimpleDemo`gst_queue_loop(pad=<unavailable>) + 484 at gstqueue.c:1299
    frame #5: 0x003cb120 SimpleDemo`gst_task_func(task=0x17247230) + 276 at gsttask.c:331
    frame #6: 0x00295a40 SimpleDemo`g_thread_pool_thread_proxy(data=<unavailable>) + 120 at gthreadpool.c:307
    frame #7: 0x00298bf6 SimpleDemo`g_thread_proxy(data=0x1724aaf0) + 78 at gthread.c:764
    frame #8: 0x3475ee92 libsystem_pthread.dylib`_pthread_body + 138
    frame #9: 0x3475ee06 libsystem_pthread.dylib`_pthread_start + 118

  thread #39: tid = 0x72ded, 0x346e208c libsystem_kernel.dylib`__select + 20, name = 'source-2:src'
    frame #0: 0x346e208c libsystem_kernel.dylib`__select + 20
    frame #1: 0x3469067e libsystem_c.dylib`pselect + 126
    frame #2: 0x003e5132 SimpleDemo`gst_poll_wait(set=0x17165dc8, timeout=0) + 1454 at gstpoll.c:1323
    frame #3: 0x003de960 SimpleDemo`gst_system_clock_id_wait_jitter_unlocked(clock=<unavailable>, entry=0x17254e10, jitter=<unavailable>, restart=1) + 276 at gstsystemclock.c:684
    frame #4: 0x003ad522 SimpleDemo`gst_clock_id_wait(id=0x17254e10, jitter=0x00000000) + 86 at gstclock.c:538
    frame #5: 0x00367152 SimpleDemo`gst_base_src_get_range [inlined] gst_base_src_wait(basesrc=<unavailable>, clock=<unavailable>) + 28 at gstbasesrc.c:2126
    frame #6: 0x00367136 SimpleDemo`gst_base_src_get_range [inlined] gst_base_src_do_sync(basesrc=0x179e2098, buffer=<unavailable>) + 188 at gstbasesrc.c:2294
    frame #7: 0x0036707a SimpleDemo`gst_base_src_get_range(src=0x179e2098, offset=18446744073709551615, length=4096, buf=<unavailable>) + 3206 at gstbasesrc.c:2502
    frame #8: 0x00365d62 SimpleDemo`gst_base_src_loop(pad=<unavailable>) + 1498 at gstbasesrc.c:2731
    frame #9: 0x003cb120 SimpleDemo`gst_task_func(task=0x172472d0) + 276 at gsttask.c:331
    frame #10: 0x00295a40 SimpleDemo`g_thread_pool_thread_proxy(data=<unavailable>) + 120 at gthreadpool.c:307
    frame #11: 0x00298bf6 SimpleDemo`g_thread_proxy(data=0x1724ac10) + 78 at gthread.c:764
    frame #12: 0x3475ee92 libsystem_pthread.dylib`_pthread_body + 138
    frame #13: 0x3475ee06 libsystem_pthread.dylib`_pthread_start + 118

  thread #40: tid = 0x72dee, 0x346e1b38 libsystem_kernel.dylib`__psynch_cvwait + 24, name = 'pool'
    frame #0: 0x346e1b38 libsystem_kernel.dylib`__psynch_cvwait + 24
    frame #1: 0x3475e432 libsystem_pthread.dylib`_pthread_cond_wait + 578
    frame #2: 0x3475e1ec libsystem_pthread.dylib`pthread_cond_timedwait_relative_np + 16
    frame #3: 0x002e644a SimpleDemo`g_cond_wait_until(cond=<unavailable>, mutex=<unavailable>, end_time=<unavailable>) + 134 at gthread-posix.c:891
    frame #4: 0x002e6d4c SimpleDemo`g_async_queue_pop_intern_unlocked(queue=0x16df6a20, wait=1, end_time=0) + 76 at gasyncqueue.c:422
    frame #5: 0x00295a22 SimpleDemo`g_thread_pool_thread_proxy [inlined] g_thread_pool_wait_for_new_task + 56 at gthreadpool.c:262
    frame #6: 0x002959ea SimpleDemo`g_thread_pool_thread_proxy(data=<unavailable>) + 34 at gthreadpool.c:296
    frame #7: 0x00298bf6 SimpleDemo`g_thread_proxy(data=0x179e36f0) + 78 at gthread.c:764
    frame #8: 0x3475ee92 libsystem_pthread.dylib`_pthread_body + 138
    frame #9: 0x3475ee06 libsystem_pthread.dylib`_pthread_start + 118
(lldb) 

@stefanalund
Copy link
Contributor Author

screen shot 2015-02-19 at 10 09 11

@stefanalund
Copy link
Contributor Author

And H.264 works even though the performance seems to have taken a hit. Getting video in both directions, owr -> FF.

@sdroege sdroege changed the title [Cerbero] Only black frames on iOS 32-bit libvpx crashes on iOS Feb 19, 2015
@sdroege
Copy link
Contributor

sdroege commented Feb 19, 2015

Let's repurpose this ticket then for the libvpx crash, also relevant part from IRC log:

<slomo> yeah, videoconvert is going to be slow because we don't have orc working properly on ios
<slomo> https://github.com/EricssonResearch/openwebrtc-gst-plugins/issues/26
<slomo> i think we should look into upgrading libvpx to something newer before further investigating that crash. our version and the latest upstream version are ancient
<slomo> nirbheek: did you file a bug against libvpx to ask for a new release?
<slomo> the code where it crashes is now in a completely different file
<M-stalund> perhaps we could use videoconvert for Cerbero temporarily?
<slomo> you will probably need it also when using newer gstreamer git snapshots with the build scripts
<slomo> let's check with superdump later what he thinks should be the way forward here. i would move to videoconvert and then "just" make it work fast on ios (oh, orc also does not have arm64 support yet... but that also shouldn't be too difficult)
<slomo> superdump, nirbheek: https://github.com/webmproject/libvpx/commit/33df6d1fc1d268b4901b74b4141f83594266f041 this might be the real fix for the -O1 workaround btw
<slomo> and https://github.com/webmproject/libvpx/commit/feaf766bd04fc2d0a75d322f41785a1ecf076b30 will make it even work fast on arm64 afaiu, and probably solves other problems on the way

@sdroege
Copy link
Contributor

sdroege commented Feb 20, 2015

New version of libvpx can be tested from here: https://github.com/ford-prefect/cerbero/commits/openwebrtc

@ford-prefect
Copy link
Contributor

I've updated the libvpx work there, and tested a FF (Mac OS) -> Bowser call
with this. The video turns up without artifacts on both sides. There are
other issues that we need to investigate, primarily related to the
framerate and latency, but the libvpx issue should be fixed once we merge
my patches.

On 20 February 2015 at 14:53, Sebastian Dröge [email protected]
wrote:

New version of libvpx can be tested from here:
https://github.com/ford-prefect/cerbero/commits/openwebrtc


Reply to this email directly or view it on GitHub
#184 (comment)
.

@stefanalund
Copy link
Contributor Author

For some reason I could not build and was therefore not able to verify. But if @ford-prefect says it's working then I'm ok with merging this.

@superdump
Copy link
Contributor

👍

@sdroege
Copy link
Contributor

sdroege commented Feb 22, 2015

Merged into cerbero master, now the owr branch just has to be rebased.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants