wang-bin / fvp

Flutter video player plugin for all desktop+mobile platforms. download prebuilt examples from github actions. https://pub.dev/packages/fvp
BSD 3-Clause "New" or "Revised" License
197 stars 31 forks source link

Crash on MacOS only in release mode #143

Closed JulienDev closed 1 month ago

JulienDev commented 2 months ago

Describe the bug MacOS app is crashing when launched in release mode and video source is changed. The same app on iOS is not crashing

Expected behavior No crash should happen

Log

Logs are too long for Github: https://pastebin.com/kKzmw2Yk

and

(lldb) bt all
  thread #1, queue = 'com.apple.main-thread'
    frame #0: 0x00000001954261f4 libsystem_kernel.dylib`mach_msg2_trap + 8
    frame #1: 0x0000000195438b24 libsystem_kernel.dylib`mach_msg2_internal + 80
    frame #2: 0x000000019542ee34 libsystem_kernel.dylib`mach_msg_overwrite + 476
    frame #3: 0x0000000195426578 libsystem_kernel.dylib`mach_msg + 24
    frame #4: 0x0000000195546058 CoreFoundation`__CFRunLoopServiceMachPort + 160
    frame #5: 0x000000019554491c CoreFoundation`__CFRunLoopRun + 1208
    frame #6: 0x0000000195543e0c CoreFoundation`CFRunLoopRunSpecific + 608
    frame #7: 0x000000019fcdf000 HIToolbox`RunCurrentEventLoopInMode + 292
    frame #8: 0x000000019fcdee3c HIToolbox`ReceiveNextEventCommon + 648
    frame #9: 0x000000019fcdeb94 HIToolbox`_BlockUntilNextEventMatchingListInModeWithFilter + 76
    frame #10: 0x0000000198d9c970 AppKit`_DPSNextEvent + 660
    frame #11: 0x000000019958edec AppKit`-[NSApplication(NSEventRouting) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 700
    frame #12: 0x0000000198d8fcb8 AppKit`-[NSApplication run] + 476
    frame #13: 0x0000000198d66f54 AppKit`NSApplicationMain + 880
    frame #14: 0x0000000102f11bf0 fvp_example`main [inlined] generic specialization <fvp_example.AppDelegate> of static __C.NSApplicationDelegate.main() -> () at AppDelegate.swift:0 [opt]
    frame #15: 0x0000000102f11bd8 fvp_example`main [inlined] static fvp_example.AppDelegate.$main() -> () at <compiler-generated>:4:1 [opt]
    frame #16: 0x0000000102f11bd8 fvp_example`main at AppDelegate.swift:0 [opt]
    frame #17: 0x00000001950de0e0 dyld`start + 2360
  thread #2
    frame #0: 0x0000000103c53a8c libsystem_pthread.dylib`start_wqthread
* thread #6, name = 'io.flutter.ui'
  * frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x0000000103c4dc00 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x000000019538cb14 libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 28
    frame #3: 0x00000001953904a4 libc++.1.dylib`std::__1::__assoc_sub_state::__sub_wait(std::__1::unique_lock<std::__1::mutex>&) + 56
    frame #4: 0x0000000195390548 libc++.1.dylib`std::__1::__assoc_sub_state::wait() + 56
    frame #5: 0x0000000103f19408 mdk`mdk::abi::FrameReaderImpl::load(this=0x000000012d344dc0) at FrameReader.cpp:1710:20 [opt]
    frame #6: 0x0000000103f2c8bc mdk`mdk::abi::FrameReader::start(this=0x000000012d344dc0, ms=<unavailable>, cb=<unavailable>, flag=<unavailable>) at FrameReader.cpp:708:9 [opt]
    frame #7: 0x0000000103f32780 mdk`mdk::abi::MediaControlPush::prepare(this=0x000000012e828200, startPosition=0, cb=0x000000016d3b1308, flags=Default) at MediaControl.cpp:999:13 [opt]
    frame #8: 0x0000000103f44db4 mdk`mdk::abi::Player::prepare(this=0x000000012d344650, startPosition=0, cb=0x000000016d3b1308, flags=Default) at Player.cpp:222:16 [opt]
    frame #9: 0x0000000103f100c4 mdk`MDK_Player_prepare(p=<unavailable>, startPosition=<unavailable>, cb=<unavailable>, flag=<unavailable>) at Player.cpp:0 [opt]
    frame #10: 0x000000010344d954 fvp`MdkPrepare(handle=5053367312, pos=0, seekFlags=1282, post_c_object=<unavailable>, send_port=943151933042907) at callbacks.cpp:338:9 [opt]
    frame #11: 0x000000010b0078a0 App`___lldb_unnamed_symbol43 + 88
    frame #12: 0x000000010b0c53ac App`___lldb_unnamed_symbol3735 + 156
    frame #13: 0x000000010b0c4ba8 App`___lldb_unnamed_symbol3714 + 480
    frame #14: 0x000000010b0c4110 App`___lldb_unnamed_symbol3702 + 120
    frame #15: 0x000000010b0c407c App`___lldb_unnamed_symbol3701 + 140
    frame #16: 0x000000010b090b84 App`___lldb_unnamed_symbol2507 + 288
    frame #17: 0x000000010b0923a0 App`___lldb_unnamed_symbol2527 + 32
    frame #18: 0x000000010b155c24 App`___lldb_unnamed_symbol6234 + 48
    frame #19: 0x000000010b1a33fc App`___lldb_unnamed_symbol7678 + 348
    frame #20: 0x000000010b190974 App`___lldb_unnamed_symbol7358 + 156
    frame #21: 0x000000010b1a15c8 App`___lldb_unnamed_symbol7660 + 148
    frame #22: 0x000000010b19e6c0 App`___lldb_unnamed_symbol7636 + 584
    frame #23: 0x000000010b19e464 App`___lldb_unnamed_symbol7635 + 36
    frame #24: 0x000000010b09cf84 App`___lldb_unnamed_symbol2799 + 84
    frame #25: 0x000000010b09cf18 App`___lldb_unnamed_symbol2798 + 92
    frame #26: 0x000000010b1bc968 App`___lldb_unnamed_symbol8121 + 216
    frame #27: 0x000000010b09cea4 App`___lldb_unnamed_symbol2797 + 108
    frame #28: 0x000000010b09ce0c App`___lldb_unnamed_symbol2796 + 212
    frame #29: 0x000000010b1014a0 App`___lldb_unnamed_symbol4672 + 52
    frame #30: 0x000000010b09cce8 App`___lldb_unnamed_symbol2794 + 756
    frame #31: 0x000000010b09c9d8 App`___lldb_unnamed_symbol2793 + 168
    frame #32: 0x000000010b09c8e0 App`___lldb_unnamed_symbol2791 + 1280
    frame #33: 0x000000010b09c3b4 App`___lldb_unnamed_symbol2790 + 128
    frame #34: 0x000000010b0d4dc4 App`___lldb_unnamed_symbol4028 + 104
    frame #35: 0x000000010b0d4d48 App`___lldb_unnamed_symbol4027 + 36
    frame #36: 0x000000010b0116e4 App`___lldb_unnamed_symbol319 + 160
    frame #37: 0x000000010b014b48 App`___lldb_unnamed_symbol397 + 88
    frame #38: 0x000000010b014ad8 App`___lldb_unnamed_symbol396 + 60
    frame #39: 0x000000010b0157e8 App`___lldb_unnamed_symbol408 + 36
    frame #40: 0x000000010b009eec App`___lldb_unnamed_symbol114 + 216
    frame #41: 0x0000000105eafc54 FlutterMacOS`___lldb_unnamed_symbol32002 + 284
    frame #42: 0x0000000105eb032c FlutterMacOS`___lldb_unnamed_symbol32007 + 328
    frame #43: 0x00000001060261c4 FlutterMacOS`___lldb_unnamed_symbol37172 + 992
    frame #44: 0x0000000105d9a4d8 FlutterMacOS`___lldb_unnamed_symbol27144 + 48
    frame #45: 0x0000000105ddf630 FlutterMacOS`___lldb_unnamed_symbol28462 + 196
    frame #46: 0x0000000105e34fc8 FlutterMacOS`___lldb_unnamed_symbol29903 + 168
    frame #47: 0x0000000105d5ce4c FlutterMacOS`___lldb_unnamed_symbol26057 + 136
    frame #48: 0x0000000105d5751c FlutterMacOS`___lldb_unnamed_symbol25933 + 136
    frame #49: 0x0000000105d7f3f0 FlutterMacOS`___lldb_unnamed_symbol26629 + 72
    frame #50: 0x000000010564b9d4 FlutterMacOS`___lldb_unnamed_symbol2535 + 252
    frame #51: 0x00000001056543f0 FlutterMacOS`___lldb_unnamed_symbol2703 + 52
    frame #52: 0x0000000195561f90 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 32
    frame #53: 0x0000000195561c34 CoreFoundation`__CFRunLoopDoTimer + 972
    frame #54: 0x000000019556176c CoreFoundation`__CFRunLoopDoTimers + 356
    frame #55: 0x0000000195544ba4 CoreFoundation`__CFRunLoopRun + 1856
    frame #56: 0x0000000195543e0c CoreFoundation`CFRunLoopRunSpecific + 608
    frame #57: 0x000000010565468c FlutterMacOS`___lldb_unnamed_symbol2708 + 188
    frame #58: 0x000000010564b7d0 FlutterMacOS`___lldb_unnamed_symbol2532 + 60
    frame #59: 0x00000001056532a8 FlutterMacOS`___lldb_unnamed_symbol2653 + 200
    frame #60: 0x0000000105652d60 FlutterMacOS`___lldb_unnamed_symbol2646 + 56
    frame #61: 0x0000000103c495c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #7, name = 'io.flutter.raster'
    frame #0: 0x00000001954261f4 libsystem_kernel.dylib`mach_msg2_trap + 8
    frame #1: 0x0000000195438b24 libsystem_kernel.dylib`mach_msg2_internal + 80
    frame #2: 0x000000019542ee34 libsystem_kernel.dylib`mach_msg_overwrite + 476
    frame #3: 0x0000000195426578 libsystem_kernel.dylib`mach_msg + 24
    frame #4: 0x0000000195546058 CoreFoundation`__CFRunLoopServiceMachPort + 160
    frame #5: 0x000000019554491c CoreFoundation`__CFRunLoopRun + 1208
    frame #6: 0x0000000195543e0c CoreFoundation`CFRunLoopRunSpecific + 608
    frame #7: 0x000000010565468c FlutterMacOS`___lldb_unnamed_symbol2708 + 188
    frame #8: 0x000000010564b7d0 FlutterMacOS`___lldb_unnamed_symbol2532 + 60
    frame #9: 0x00000001056532a8 FlutterMacOS`___lldb_unnamed_symbol2653 + 200
    frame #10: 0x0000000105652d60 FlutterMacOS`___lldb_unnamed_symbol2646 + 56
    frame #11: 0x0000000103c495c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #8, name = 'io.flutter.io'
    frame #0: 0x00000001954261f4 libsystem_kernel.dylib`mach_msg2_trap + 8
    frame #1: 0x0000000195438b24 libsystem_kernel.dylib`mach_msg2_internal + 80
    frame #2: 0x000000019542ee34 libsystem_kernel.dylib`mach_msg_overwrite + 476
    frame #3: 0x0000000195426578 libsystem_kernel.dylib`mach_msg + 24
    frame #4: 0x0000000195546058 CoreFoundation`__CFRunLoopServiceMachPort + 160
    frame #5: 0x000000019554491c CoreFoundation`__CFRunLoopRun + 1208
    frame #6: 0x0000000195543e0c CoreFoundation`CFRunLoopRunSpecific + 608
    frame #7: 0x000000010565468c FlutterMacOS`___lldb_unnamed_symbol2708 + 188
    frame #8: 0x000000010564b7d0 FlutterMacOS`___lldb_unnamed_symbol2532 + 60
    frame #9: 0x00000001056532a8 FlutterMacOS`___lldb_unnamed_symbol2653 + 200
    frame #10: 0x0000000105652d60 FlutterMacOS`___lldb_unnamed_symbol2646 + 56
    frame #11: 0x0000000103c495c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #9, name = 'io.worker.1'
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x0000000103c4dc00 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x0000000105614c64 FlutterMacOS`___lldb_unnamed_symbol1705 + 44
    frame #3: 0x00000001056461dc FlutterMacOS`___lldb_unnamed_symbol2406 + 148
    frame #4: 0x0000000105646ea8 FlutterMacOS`___lldb_unnamed_symbol2416 + 176
    frame #5: 0x0000000103c495c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #10, name = 'io.worker.2'
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x0000000103c4dc00 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x0000000105614c64 FlutterMacOS`___lldb_unnamed_symbol1705 + 44    frame #3: 0x00000001056461dc FlutterMacOS`___lldb_unnamed_symbol2406 + 148
    frame #4: 0x0000000105646ea8 FlutterMacOS`___lldb_unnamed_symbol2416 + 176
    frame #5: 0x0000000103c495c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #11, name = 'io.worker.3'
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x0000000103c4dc00 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x0000000105614c64 FlutterMacOS`___lldb_unnamed_symbol1705 + 44
    frame #3: 0x00000001056461dc FlutterMacOS`___lldb_unnamed_symbol2406 + 148
    frame #4: 0x0000000105646ea8 FlutterMacOS`___lldb_unnamed_symbol2416 + 176
    frame #5: 0x0000000103c495c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #12, name = 'io.worker.4'
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x0000000103c4dc00 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x0000000105614c64 FlutterMacOS`___lldb_unnamed_symbol1705 + 44
    frame #3: 0x00000001056461dc FlutterMacOS`___lldb_unnamed_symbol2406 + 148
    frame #4: 0x0000000105646ea8 FlutterMacOS`___lldb_unnamed_symbol2416 + 176
    frame #5: 0x0000000103c495c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #13, name = 'dart:io EventHandler'
    frame #0: 0x000000019542c340 libsystem_kernel.dylib`kevent + 8
    frame #1: 0x0000000105df4cf4 FlutterMacOS`___lldb_unnamed_symbol28782 + 300
    frame #2: 0x0000000105e1c408 FlutterMacOS`___lldb_unnamed_symbol29473 + 88
    frame #3: 0x0000000103c495c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #14, name = 'com.apple.NSEventThread'
    frame #0: 0x00000001954261f4 libsystem_kernel.dylib`mach_msg2_trap + 8
    frame #1: 0x0000000195438b24 libsystem_kernel.dylib`mach_msg2_internal + 80
    frame #2: 0x000000019542ee34 libsystem_kernel.dylib`mach_msg_overwrite + 476
    frame #3: 0x0000000195426578 libsystem_kernel.dylib`mach_msg + 24
    frame #4: 0x0000000195546058 CoreFoundation`__CFRunLoopServiceMachPort + 160
    frame #5: 0x000000019554491c CoreFoundation`__CFRunLoopRun + 1208
    frame #6: 0x0000000195543e0c CoreFoundation`CFRunLoopRunSpecific + 608
    frame #7: 0x0000000198ec5cb4 AppKit`_NSEventThread + 144
    frame #8: 0x0000000103c495c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #15
    frame #0: 0x0000000103c53a8c libsystem_pthread.dylib`start_wqthread
  thread #16, name = 'caulk.messenger.shared:17'
    frame #0: 0x0000000195426170 libsystem_kernel.dylib`semaphore_wait_trap + 8
    frame #1: 0x000000019f9d7624 caulk`caulk::semaphore::timed_wait(double) + 212
    frame #2: 0x000000019f9d74d8 caulk`caulk::concurrent::details::worker_thread::run() + 36
    frame #3: 0x000000019f9d71d8 caulk`void* caulk::thread_proxy<std::__1::tuple<caulk::thread::attributes, void (caulk::concurrent::details::worker_thread::*)(), std::__1::tuple<caulk::concurrent::details::worker_thread*>>>(void*) + 96
    frame #4: 0x0000000103c495c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #17, name = 'caulk.messenger.shared:high'
    frame #0: 0x0000000195426170 libsystem_kernel.dylib`semaphore_wait_trap + 8
    frame #1: 0x000000019f9d7624 caulk`caulk::semaphore::timed_wait(double) + 212
    frame #2: 0x000000019f9d74d8 caulk`caulk::concurrent::details::worker_thread::run() + 36
    frame #3: 0x000000019f9d71d8 caulk`void* caulk::thread_proxy<std::__1::tuple<caulk::thread::attributes, void (caulk::concurrent::details::worker_thread::*)(), std::__1::tuple<caulk::concurrent::details::worker_thread*>>>(void*) + 96
    frame #4: 0x0000000103c495c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #22
    frame #0: 0x0000000103c53a8c libsystem_pthread.dylib`start_wqthread
  thread #36, name = 'caulk::deferred_logger'
    frame #0: 0x0000000195426170 libsystem_kernel.dylib`semaphore_wait_trap + 8
    frame #1: 0x000000019f9d7624 caulk`caulk::semaphore::timed_wait(double) + 212
    frame #2: 0x000000019f9d74d8 caulk`caulk::concurrent::details::worker_thread::run() + 36
    frame #3: 0x000000019f9d71d8 caulk`void* caulk::thread_proxy<std::__1::tuple<caulk::thread::attributes, void (caulk::concurrent::details::worker_thread::*)(), std::__1::tuple<caulk::concurrent::details::worker_thread*>>>(void*) + 96
    frame #4: 0x0000000103c495c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #39
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x0000000103c4dc00 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x00000001065e4c74 libffmpeg.7.dylib`___lldb_unnamed_symbol10069 + 80
    frame #3: 0x0000000103c495c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #40
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x0000000103c4dc00 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x00000001065e4c74 libffmpeg.7.dylib`___lldb_unnamed_symbol10069 + 80
    frame #3: 0x0000000103c495c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #41
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x0000000103c4dc00 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x00000001065e4c74 libffmpeg.7.dylib`___lldb_unnamed_symbol10069 + 80
    frame #3: 0x0000000103c495c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #42
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x0000000103c4dc00 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x00000001065e4c74 libffmpeg.7.dylib`___lldb_unnamed_symbol10069 + 80
    frame #3: 0x0000000103c495c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #43
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x0000000103c4dc00 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x00000001065e4c74 libffmpeg.7.dylib`___lldb_unnamed_symbol10069 + 80
    frame #3: 0x0000000103c495c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #44
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x0000000103c4dc00 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x00000001065e4c74 libffmpeg.7.dylib`___lldb_unnamed_symbol10069 + 80
    frame #3: 0x0000000103c495c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #45
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x0000000103c4dc00 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x00000001065e4c74 libffmpeg.7.dylib`___lldb_unnamed_symbol10069 + 80
    frame #3: 0x0000000103c495c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #46
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x0000000103c4dc00 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x00000001065e4c74 libffmpeg.7.dylib`___lldb_unnamed_symbol10069 + 80
    frame #3: 0x0000000103c495c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #47
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x0000000103c4dc00 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x00000001065e4c74 libffmpeg.7.dylib`___lldb_unnamed_symbol10069 + 80
    frame #3: 0x0000000103c495c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #48
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x0000000103c4dc00 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x00000001065e4c74 libffmpeg.7.dylib`___lldb_unnamed_symbol10069 + 80
    frame #3: 0x0000000103c495c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #50, name = 'AQConverterThread'
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x0000000103c4dc00 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x00000001a44bfce4 libAudioToolboxUtility.dylib`CADeprecated::CAGuard::Wait() + 76
    frame #3: 0x00000001a5795f88 AudioToolbox`AQConverterManager::AQConverterThread::ConverterThreadEntry(void*) + 572
    frame #4: 0x00000001a449c254 libAudioToolboxUtility.dylib`CADeprecated::CAPThread::Entry(CADeprecated::CAPThread*) + 92
    frame #5: 0x0000000103c495c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #52, name = 'mdk.read@0x16dcab000'
    frame #0: 0x00000001951d0334 libcorecrypto.dylib`gcm_init + 180
    frame #1: 0x00000001951d01fc libcorecrypto.dylib`ccmode_gcm_init + 120
    frame #2: 0x000000019523ec04 libcorecrypto.dylib`ccgcm_init + 80
    frame #3: 0x00000001951d7c64 libcorecrypto.dylib`ccgcm_init_with_iv + 100
    frame #4: 0x00000001a1557e3c libcoretls.dylib`tls_record_decrypt + 332
    frame #5: 0x00000001984d270c Security`SSLRecordReadInternal + 512
    frame #6: 0x00000001982493a4 Security`SSLRead + 360
    frame #7: 0x0000000106582f14 libffmpeg.7.dylib`___lldb_unnamed_symbol9225 + 92
    frame #8: 0x000000010659d2c8 libffmpeg.7.dylib`___lldb_unnamed_symbol9483 + 136
    frame #9: 0x0000000106543a70 libffmpeg.7.dylib`___lldb_unnamed_symbol8605 + 272
    frame #10: 0x00000001065437e0 libffmpeg.7.dylib`___lldb_unnamed_symbol8604 + 280
    frame #11: 0x0000000106541180 libffmpeg.7.dylib`___lldb_unnamed_symbol8586 + 140
    frame #12: 0x000000010659d2c8 libffmpeg.7.dylib`___lldb_unnamed_symbol9483 + 136
    frame #13: 0x000000010656fd84 libffmpeg.7.dylib`___lldb_unnamed_symbol9023 + 108
    frame #14: 0x000000010659d2c8 libffmpeg.7.dylib`___lldb_unnamed_symbol9483 + 136
    frame #15: 0x0000000106589b4c libffmpeg.7.dylib`___lldb_unnamed_symbol9326 + 228
    frame #16: 0x000000010658a1c4 libffmpeg.7.dylib`avio_read + 116
    frame #17: 0x00000001065e0400 libffmpeg.7.dylib`___lldb_unnamed_symbol10039 + 40
    frame #18: 0x00000001065df97c libffmpeg.7.dylib`___lldb_unnamed_symbol10035 + 1060
    frame #19: 0x0000000106589b4c libffmpeg.7.dylib`___lldb_unnamed_symbol9326 + 228
    frame #20: 0x000000010658a1c4 libffmpeg.7.dylib`avio_read + 116
    frame #21: 0x00000001065af14c libffmpeg.7.dylib`___lldb_unnamed_symbol9594 + 84
    frame #22: 0x00000001065aeee0 libffmpeg.7.dylib`___lldb_unnamed_symbol9591 + 148
    frame #23: 0x00000001065aebb0 libffmpeg.7.dylib`___lldb_unnamed_symbol9586 + 40
    frame #24: 0x00000001065733ac libffmpeg.7.dylib`___lldb_unnamed_symbol9065 + 140
    frame #25: 0x00000001065739f4 libffmpeg.7.dylib`___lldb_unnamed_symbol9066 + 92
    frame #26: 0x0000000106573914 libffmpeg.7.dylib`av_read_frame + 400
    frame #27: 0x00000001065dd0f0 libffmpeg.7.dylib`___lldb_unnamed_symbol10013 + 452
    frame #28: 0x00000001065733ac libffmpeg.7.dylib`___lldb_unnamed_symbol9065 + 140
    frame #29: 0x00000001065739f4 libffmpeg.7.dylib`___lldb_unnamed_symbol9066 + 92
    frame #30: 0x0000000106573914 libffmpeg.7.dylib`av_read_frame + 400
    frame #31: 0x0000000103fa6ba4 mdk`mdk::abi::FFmpegPacketIO::readMore() [inlined] ffmpeg::runtime::av_read_frame(p1=<unavailable>, p2=0x0000600002f12680) at FFmpegAPIs.h:205:1 [opt]
    frame #32: 0x0000000103fa6b64 mdk`mdk::abi::FFmpegPacketIO::readMore(this=0x0000600003f0c410) at FFmpegPacketIO.cpp:542:21 [opt]
    frame #33: 0x0000000103f3f578 mdk`mdk::abi::PacketIOWrapper::readMore() [inlined] std::__1::unique_ptr<mdk::abi::PacketIO, std::__1::default_delete<mdk::abi::PacketIO>>::operator->[abi:un170006](this=0x0000000103206fb0) const at unique_ptr.h:277:19 [opt]
    frame #34: 0x0000000103f3f570 mdk`mdk::abi::PacketIOWrapper::readMore() [inlined] mdk::abi::PacketIOWrapper::streamRead(this=0x0000000103206f50) at PacketIO.cpp:749:10 [opt]
    frame #35: 0x0000000103f3f570 mdk`mdk::abi::PacketIOWrapper::readMore(this=0x0000000103206f50) at PacketIO.cpp:744:12 [opt]
    frame #36: 0x0000000103f273f4 mdk`std::__1::__async_assoc_state<void, std::__1::__async_func<mdk::abi::FrameReaderImpl::load()::$_20>>::__execute() [inlined] mdk::abi::FrameReaderImpl::readMore(this=0x000000012d344dc0) at FrameReader.cpp:2621:22 [opt]
    frame #37: 0x0000000103f273ec mdk`std::__1::__async_assoc_state<void, std::__1::__async_func<mdk::abi::FrameReaderImpl::load()::$_20>>::__execute() at FrameReader.cpp:1559:17 [opt]
    frame #38: 0x0000000103f27214 mdk`std::__1::__async_assoc_state<void, std::__1::__async_func<mdk::abi::FrameReaderImpl::load()::$_20>>::__execute() [inlined] mdk::abi::FrameReaderImpl::load()::$_20::operator()(this=0x00006000035053f0) at FrameReader.cpp:1730:9 [opt]
    frame #39: 0x0000000103f27214 mdk`std::__1::__async_assoc_state<void, std::__1::__async_func<mdk::abi::FrameReaderImpl::load()::$_20>>::__execute() [inlined] decltype(std::declval<mdk::abi::FrameReaderImpl::load()::$_20>()()) std::__1::__invoke[abi:un170006]<mdk::abi::FrameReaderImpl::load()::$_20>(__f=0x00006000035053f0) at invoke.h:340:25 [opt]
    frame #40: 0x0000000103f27214 mdk`std::__1::__async_assoc_state<void, std::__1::__async_func<mdk::abi::FrameReaderImpl::load()::$_20>>::__execute() [inlined] void std::__1::__async_func<mdk::abi::FrameReaderImpl::load()::$_20>::__execute[abi:un170006]<>(this=0x00006000035053f0, (null)=<unavailable>) at future:2195:16 [opt]
    frame #41: 0x0000000103f27214 mdk`std::__1::__async_assoc_state<void, std::__1::__async_func<mdk::abi::FrameReaderImpl::load()::$_20>>::__execute() [inlined] std::__1::__async_func<mdk::abi::FrameReaderImpl::load()::$_20>::operator()[abi:un170006](this=0x00006000035053f0) at future:2188:16 [opt]
    frame #42: 0x0000000103f27214 mdk`std::__1::__async_assoc_state<void, std::__1::__async_func<mdk::abi::FrameReaderImpl::load()::$_20>>::__execute(this=0x0000600003505360) at future:1020:9 [opt]
    frame #43: 0x0000000103f26c24 mdk`void* std::__1::__thread_proxy[abi:un170006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (std::__1::__async_assoc_state<void, std::__1::__async_func<mdk::abi::FrameReaderImpl::load()::$_20>>::*)(), std::__1::__async_assoc_state<void, std::__1::__async_func<mdk::abi::FrameReaderImpl::load()::$_20>>*>>(void*) [inlined] decltype(*std::declval<std::__1::__async_assoc_state<void, std::__1::__async_func<mdk::abi::FrameReaderImpl::load()::$_20>>*>().*std::declval<void (std::__1::__async_assoc_state<void, std::__1::__async_func<mdk::abi::FrameReaderImpl::load()::$_20>>::*)()>()()) std::__1::__invoke[abi:un170006]<void (std::__1::__async_assoc_state<void, std::__1::__async_func<mdk::abi::FrameReaderImpl::load()::$_20>>::*)(), std::__1::__async_assoc_state<void, std::__1::__async_func<mdk::abi::FrameReaderImpl::load()::$_20>>*, void>(__f=0x0000600000432068, __a0=0x0000600000432078) at invoke.h:308:25 [opt]
    frame #44: 0x0000000103f26c08 mdk`void* std::__1::__thread_proxy[abi:un170006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (std::__1::__async_assoc_state<void, std::__1::__async_func<mdk::abi::FrameReaderImpl::load()::$_20>>::*)(), std::__1::__async_assoc_state<void, std::__1::__async_func<mdk::abi::FrameReaderImpl::load()::$_20>>*>>(void*) [inlined] void std::__1::__thread_execute[abi:un170006]<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (std::__1::__async_assoc_state<void, std::__1::__async_func<mdk::abi::FrameReaderImpl::load()::$_20>>::*)(), std::__1::__async_assoc_state<void, std::__1::__async_func<mdk::abi::FrameReaderImpl::load()::$_20>>*, 2ul>(__t=size=3, (null)=<unavailable>) at thread.h:227:5 [opt]
    frame #45: 0x0000000103f26c08 mdk`void* std::__1::__thread_proxy[abi:un170006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (std::__1::__async_assoc_state<void, std::__1::__async_func<mdk::abi::FrameReaderImpl::load()::$_20>>::*)(), std::__1::__async_assoc_state<void, std::__1::__async_func<mdk::abi::FrameReaderImpl::load()::$_20>>*>>(__vp=0x0000600000432060) at thread.h:238:5 [opt]
    frame #46: 0x0000000103c495c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #53, name = 'CVDisplayLink'
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x0000000103c4dc2c libsystem_pthread.dylib`_pthread_cond_wait + 1272
    frame #2: 0x000000019df40ee4 CoreVideo`CVDisplayLink::waitUntil(unsigned long long) + 328
    frame #3: 0x000000019df3ffb0 CoreVideo`CVDisplayLink::runIOThread() + 504
    frame #4: 0x0000000103c495c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #54, name = 'mdk.vdec0@0x16decf000'
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x0000000103c4dc00 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x000000019538cb14 libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 28
    frame #3: 0x0000000103f22ef4 mdk`mdk::abi::FrameReader::Private::afterSendFrame(mdk::abi::MediaType, int, double) [inlined] void std::__1::condition_variable::wait<mdk::abi::FrameReader::Private::afterSendFrame(mdk::abi::MediaType, int, double)::$_10>(this=0x000000012e82ae68, __lk=0x000000016dece438, __pred=(unnamed class) @ 0x000060000384dfc0) at condition_variable.h:148:5 [opt]
    frame #4: 0x0000000103f22ee8 mdk`mdk::abi::FrameReader::Private::afterSendFrame(this=0x000000012e82a400, type=Video, track=0, timestamp=<unavailable>) at FrameReader.cpp:283:19 [opt]
    frame #5: 0x0000000103f23d20 mdk`bool mdk::abi::FrameReader::frameAvailable<mdk::abi::VideoFrame>(mdk::abi::VideoFrame&, int) const [inlined] bool mdk::abi::FrameReader::Private::frameAvailable<(mdk::abi::MediaType)0, mdk::abi::DecoderLoopTrait<(mdk::abi::MediaType)0>>(this=0x000000012e82a400, frame=0x000000016dece750, track=0, cb=0x000000012e82aa38, q=<unavailable>) at FrameReader.cpp:0:9 [opt]
    frame #6: 0x0000000103f23cf0 mdk`bool mdk::abi::FrameReader::frameAvailable<mdk::abi::VideoFrame>(this=<unavailable>, frame=0x000000016dece750, track=0) const at FrameReader.cpp:1095:15 [opt]
    frame #7: 0x0000000103f1f0c4 mdk`bool mdk::abi::FrameReaderImpl::decodeLoop<(mdk::abi::MediaType)0>(this=0x000000012d344dc0, stream=<unavailable>, decoderIndex=<unavailable>) at FrameReader.cpp:2562:13 [opt]
    frame #8: 0x0000000103f1bed0 mdk`void* std::__1::__thread_proxy[abi:un170006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, mdk::abi::FrameReaderImpl::startDecodeThread(mdk::abi::FrameReaderImpl::DecLoopState&, mdk::abi::MediaType, int)::$_32>>(void*) at FrameReader.cpp:2719:28 [opt]
    frame #9: 0x0000000103f1bb64 mdk`void* std::__1::__thread_proxy[abi:un170006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, mdk::abi::FrameReaderImpl::startDecodeThread(mdk::abi::FrameReaderImpl::DecLoopState&, mdk::abi::MediaType, int)::$_32>>(void*) [inlined] decltype(std::declval<mdk::abi::FrameReaderImpl::startDecodeThread(mdk::abi::FrameReaderImpl::DecLoopState&, mdk::abi::MediaType, int)::$_32>()()) std::__1::__invoke[abi:un170006]<mdk::abi::FrameReaderImpl::startDecodeThread(mdk::abi::FrameReaderImpl::DecLoopState&, mdk::abi::MediaType, int)::$_32>(__f=0x00006000004be148) at invoke.h:340:25 [opt]
    frame #10: 0x0000000103f1bb64 mdk`void* std::__1::__thread_proxy[abi:un170006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, mdk::abi::FrameReaderImpl::startDecodeThread(mdk::abi::FrameReaderImpl::DecLoopState&, mdk::abi::MediaType, int)::$_32>>(void*) [inlined] void std::__1::__thread_execute[abi:un170006]<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, mdk::abi::FrameReaderImpl::startDecodeThread(mdk::abi::FrameReaderImpl::DecLoopState&, mdk::abi::MediaType, int)::$_32>(__t=size=2, (null)=<unavailable>) at thread.h:227:5 [opt]
    frame #11: 0x0000000103f1bb64 mdk`void* std::__1::__thread_proxy[abi:un170006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, mdk::abi::FrameReaderImpl::startDecodeThread(mdk::abi::FrameReaderImpl::DecLoopState&, mdk::abi::MediaType, int)::$_32>>(__vp=<unavailable>) at thread.h:238:5 [opt]
    frame #12: 0x0000000103c495c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #55, name = 'mdk.adec1@0x16e2a3000'
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x0000000103c4dc00 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x000000019538cb14 libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 28
    frame #3: 0x0000000103f22ca4 mdk`mdk::abi::FrameReader::Private::beforeSendFrame(mdk::abi::MediaType, int, double, double) [inlined] void std::__1::condition_variable::wait<mdk::abi::FrameReader::Private::beforeSendFrame(mdk::abi::MediaType, int, double, double)::$_9>(this=0x000000012e82ae68, __lk=0x000000016e2a2990, __pred=(unnamed class) @ 0x000060000384e440) at condition_variable.h:148:5 [opt]
    frame #4: 0x0000000103f22c98 mdk`mdk::abi::FrameReader::Private::beforeSendFrame(this=0x000000012e82a400, type=Audio, track=0, timestamp=<unavailable>, duration=<unavailable>) at FrameReader.cpp:270:19 [opt]
    frame #5: 0x0000000103f2502c mdk`bool mdk::abi::FrameReader::frameAvailable<mdk::abi::AudioFrame>(mdk::abi::AudioFrame&, int) const [inlined] bool mdk::abi::FrameReader::Private::frameAvailable<(mdk::abi::MediaType)1, mdk::abi::DecoderLoopTrait<(mdk::abi::MediaType)1>>(this=0x000000012e82a400, frame=0x000000016e2a2c80, track=<unavailable>, cb=0x000000012e82a930, q=<unavailable>) at FrameReader.cpp:1047:20 [opt]
    frame #6: 0x0000000103f24fe8 mdk`bool mdk::abi::FrameReader::frameAvailable<mdk::abi::AudioFrame>(this=<unavailable>, frame=0x000000016e2a2c80, track=0) const at FrameReader.cpp:1101:15 [opt]
    frame #7: 0x0000000103f1d5b0 mdk`void* std::__1::__thread_proxy[abi:un170006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, mdk::abi::FrameReaderImpl::startDecodeThread(mdk::abi::FrameReaderImpl::DecLoopState&, mdk::abi::MediaType, int)::$_32>>(void*) at FrameReader.cpp:2562:13 [opt]
    frame #8: 0x0000000103f1cf10 mdk`void* std::__1::__thread_proxy[abi:un170006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, mdk::abi::FrameReaderImpl::startDecodeThread(mdk::abi::FrameReaderImpl::DecLoopState&, mdk::abi::MediaType, int)::$_32>>(void*) at FrameReader.cpp:2717:28 [opt]
    frame #9: 0x0000000103f1c4ac mdk`void* std::__1::__thread_proxy[abi:un170006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, mdk::abi::FrameReaderImpl::startDecodeThread(mdk::abi::FrameReaderImpl::DecLoopState&, mdk::abi::MediaType, int)::$_32>>(void*) [inlined] decltype(std::declval<mdk::abi::FrameReaderImpl::startDecodeThread(mdk::abi::FrameReaderImpl::DecLoopState&, mdk::abi::MediaType, int)::$_32>()()) std::__1::__invoke[abi:un170006]<mdk::abi::FrameReaderImpl::startDecodeThread(mdk::abi::FrameReaderImpl::DecLoopState&, mdk::abi::MediaType, int)::$_32>(__f=0x00006000004b4388) at invoke.h:340:25 [opt]
    frame #10: 0x0000000103f1c4ac mdk`void* std::__1::__thread_proxy[abi:un170006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, mdk::abi::FrameReaderImpl::startDecodeThread(mdk::abi::FrameReaderImpl::DecLoopState&, mdk::abi::MediaType, int)::$_32>>(void*) [inlined] void std::__1::__thread_execute[abi:un170006]<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, mdk::abi::FrameReaderImpl::startDecodeThread(mdk::abi::FrameReaderImpl::DecLoopState&, mdk::abi::MediaType, int)::$_32>(__t=size=2, (null)=<unavailable>) at thread.h:227:5 [opt]
    frame #11: 0x0000000103f1c4ac mdk`void* std::__1::__thread_proxy[abi:un170006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, mdk::abi::FrameReaderImpl::startDecodeThread(mdk::abi::FrameReaderImpl::DecLoopState&, mdk::abi::MediaType, int)::$_32>>(__vp=<unavailable>) at thread.h:238:5 [opt]
    frame #12: 0x0000000103c495c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #56, name = 'av:h264:df0'
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x0000000103c4dc00 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x0000000106459fa8 libffmpeg.7.dylib`___lldb_unnamed_symbol6491 + 412
    frame #3: 0x0000000103c495c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #57, name = 'av:h264:df1'
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x0000000103c4dc00 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x0000000106459fa8 libffmpeg.7.dylib`___lldb_unnamed_symbol6491 + 412
    frame #3: 0x0000000103c495c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #58, name = 'av:h264:df2'
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x0000000103c4dc00 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x0000000106459fa8 libffmpeg.7.dylib`___lldb_unnamed_symbol6491 + 412
    frame #3: 0x0000000103c495c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #59, name = 'av:h264:df3'
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x0000000103c4dc00 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x0000000106459fa8 libffmpeg.7.dylib`___lldb_unnamed_symbol6491 + 412
    frame #3: 0x0000000103c495c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #60, name = 'av:h264:df4'
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x0000000103c4dc00 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x0000000106459fa8 libffmpeg.7.dylib`___lldb_unnamed_symbol6491 + 412
    frame #3: 0x0000000103c495c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #61, name = 'av:h264:df5'
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x0000000103c4dc00 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x0000000106459fa8 libffmpeg.7.dylib`___lldb_unnamed_symbol6491 + 412
    frame #3: 0x0000000103c495c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #62, name = 'av:h264:df6'
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x0000000103c4dc00 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x0000000106459fa8 libffmpeg.7.dylib`___lldb_unnamed_symbol6491 + 412
    frame #3: 0x0000000103c495c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #63, name = 'av:h264:df7'
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x0000000103c4dc00 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x0000000106459fa8 libffmpeg.7.dylib`___lldb_unnamed_symbol6491 + 412
    frame #3: 0x0000000103c495c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #64, name = 'av:h264:df8'
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x0000000103c4dc00 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x0000000106459fa8 libffmpeg.7.dylib`___lldb_unnamed_symbol6491 + 412
    frame #3: 0x0000000103c495c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #65, name = 'av:h264:df9'
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x0000000103c4dc00 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x0000000106459fa8 libffmpeg.7.dylib`___lldb_unnamed_symbol6491 + 412
    frame #3: 0x0000000103c495c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #66, name = 'av:h264:df10'
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x0000000103c4dc00 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x0000000106459fa8 libffmpeg.7.dylib`___lldb_unnamed_symbol6491 + 412
    frame #3: 0x0000000103c495c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #67, name = 'mdk.vdec10@0x16d08f000', stop reason = EXC_BAD_ACCESS (code=2, address=0x639ce4585f)
    frame #0: 0x0000000103fc8530 mdk`_OUTLINED_FUNCTION_2550 [opt]
    frame #1: 0x0000000103f23054 mdk`bool std::__1::operator==[abi:un170006]<char, std::__1::char_traits<char>, std::__1::allocator<char>>(__lhs=<unavailable>, __rhs="hap") at string:3930 [opt]
    frame #2: 0x0000000103f6e5f4 mdk`mdk::abi::VideoDecoder::create(name=<unavailable>, par=0x000000639ce45848) at VideoDecoder.cpp:179:31 [opt]
    frame #3: 0x0000000103f1e10c mdk`bool mdk::abi::FrameReaderImpl::decodeLoop<(mdk::abi::MediaType)0>(int, int) [inlined] mdk::abi::MediaTypeTrait<(mdk::abi::MediaType)0>::Decoder::Ptr mdk::abi::FrameReaderImpl::decoderOpen<(mdk::abi::MediaType)0>(this=0x000000012d344dc0, stream=10, name="auto") at FrameReader.cpp:2150:16 [opt]
    frame #4: 0x0000000103f1e010 mdk`bool mdk::abi::FrameReaderImpl::decodeLoop<(mdk::abi::MediaType)0>(this=0x000000012d344dc0, stream=<unavailable>, decoderIndex=<unavailable>) at FrameReader.cpp:2367:16 [opt]
    frame #5: 0x0000000103f1bed0 mdk`void* std::__1::__thread_proxy[abi:un170006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, mdk::abi::FrameReaderImpl::startDecodeThread(mdk::abi::FrameReaderImpl::DecLoopState&, mdk::abi::MediaType, int)::$_32>>(void*) at FrameReader.cpp:2719:28 [opt]
    frame #6: 0x0000000103f1bb64 mdk`void* std::__1::__thread_proxy[abi:un170006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, mdk::abi::FrameReaderImpl::startDecodeThread(mdk::abi::FrameReaderImpl::DecLoopState&, mdk::abi::MediaType, int)::$_32>>(void*) [inlined] decltype(std::declval<mdk::abi::FrameReaderImpl::startDecodeThread(mdk::abi::FrameReaderImpl::DecLoopState&, mdk::abi::MediaType, int)::$_32>()()) std::__1::__invoke[abi:un170006]<mdk::abi::FrameReaderImpl::startDecodeThread(mdk::abi::FrameReaderImpl::DecLoopState&, mdk::abi::MediaType, int)::$_32>(__f=0x0000600000492648) at invoke.h:340:25 [opt]
    frame #7: 0x0000000103f1bb64 mdk`void* std::__1::__thread_proxy[abi:un170006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, mdk::abi::FrameReaderImpl::startDecodeThread(mdk::abi::FrameReaderImpl::DecLoopState&, mdk::abi::MediaType, int)::$_32>>(void*) [inlined] void std::__1::__thread_execute[abi:un170006]<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, mdk::abi::FrameReaderImpl::startDecodeThread(mdk::abi::FrameReaderImpl::DecLoopState&, mdk::abi::MediaType, int)::$_32>(__t=size=2, (null)=<unavailable>) at thread.h:227:5 [opt]
    frame #8: 0x0000000103f1bb64 mdk`void* std::__1::__thread_proxy[abi:un170006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, mdk::abi::FrameReaderImpl::startDecodeThread(mdk::abi::FrameReaderImpl::DecLoopState&, mdk::abi::MediaType, int)::$_32>>(__vp=<unavailable>) at thread.h:238:5 [opt]
    frame #9: 0x0000000103c495c0 libsystem_pthread.dylib`_pthread_start + 136
wang-bin commented 2 months ago

Do you have an example to reproduce the crash?

JulienDev commented 2 months ago

Sure, this one makes it crash after a few clicks on "Play" button

// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// ignore_for_file: public_member_api_docs

/// An example of using the plugin, controlling lifecycle and playback of the
/// video.

import 'package:flutter/material.dart';
import 'package:fvp/fvp.dart' as fvp;
import 'package:fvp/mdk.dart';
import 'package:logging/logging.dart';
import 'package:intl/intl.dart';

void main() {
  Logger.root.level = Level.ALL;
  final df = DateFormat("HH:mm:ss.SSS");
  Logger.root.onRecord.listen((record) {
    print('${record.loggerName}.${record.level.name}: ${df.format(record.time)}: ${record.message}');
  });
  fvp.registerWith();
  final player = Player();
  runApp(MaterialApp(home: PlayerPage(player)));
}

class PlayerPage extends StatelessWidget {
  final Player player;

  const PlayerPage(this.player);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      key: const ValueKey<String>('home_page'),
      appBar: AppBar(
        title: const Text('Video player example'),
      ),
      body: Column(
        crossAxisAlignment: CrossAxisAlignment.start,
        children: [
          MaterialButton(
            onPressed: () {
              videos.shuffle();
              doPlayVideo(videos[0]);
            },
            child: Text("Play"),
          ),
          Expanded(
              child: PlayerView(
            player: player,
          ))
        ],
      ),
    );
  }

  doPlayVideo(String url) async {
    print("url:$url");
    player.media = url;

    final ret = await player.prepare();
    if (ret < 0) {
      print("media open error | invalid or unsupported media");
      return;
    }
    final tex = await player.updateTexture();
    if (tex < 0) {
      print("video size error | invalid or unsupported media");
      return;
    }

    player.state = PlaybackState.playing;
  }
}

class PlayerView extends StatelessWidget {
  final Player player;

  const PlayerView({super.key, required this.player});

  @override
  Widget build(BuildContext context) {
    return ValueListenableBuilder<int?>(
      valueListenable: player.textureId,
      builder: (context, id, _) {
        if (id == null) {
          return const SizedBox.shrink();
        } else {
          return Texture(textureId: id);
        }
      },
    );
  }
}

final videos = [
  "https://ythls.armelin.one/channel/UCdFv_ZWQ3Xk_NfRiaK-ryGg.m3u8",
  "https://lives.digiteka.com/stream/86d3e867-a272-496b-8412-f59aa0104771/index.m3u8",
  "https://rtvelivestream.akamaized.net/rtvesec/24h/24h_main_dvr.m3u8",
  "https://amg02162-newenconnect-amg02162c2-rakuten-us-1981.playouts.now.amagi.tv/playlist/amg02162-newenconnect-100pour100docs-rakutenus/playlist.m3u8",
  "https://video1.getstreamhosting.com:1936/8420/8420/playlist.m3u8",
  "http://cfd-v4-service-channel-stitcher-use1-1.prd.pluto.tv/stitch/hls/channel/643531ba82a18e0008a4d57c/master.m3u8?appName=web&appVersion=unknown&clientTime=0&deviceDNT=0&deviceId=8e06ff24-1f2c-11ef-86d8-5d587df108c6&deviceMake=Chrome&deviceModel=web&deviceType=web&deviceVersion=unknown&includeExtendedEvents=false&serverSideAds=false&sid=be2b3cea-a727-42ad-80f4-61b3f3174d3a",
  "http://cfd-v4-service-channel-stitcher-use1-1.prd.pluto.tv/stitch/hls/channel/64bab8ba5dc1660008969b5a/master.m3u8?appName=web&appVersion=unknown&clientTime=0&deviceDNT=0&deviceId=8e06ff28-1f2c-11ef-86d8-5d587df108c6&deviceMake=Chrome&deviceModel=web&deviceType=web&deviceVersion=unknown&includeExtendedEvents=false&serverSideAds=false&sid=5c583725-776e-440c-a02f-17dca14750d3",
  "https://samsunguk-adn-samsung-fre-qfrlc.amagi.tv/playlist/samsunguk-adn-samsung-fre/playlist.m3u8",
  "https://edge12.vedge.infomaniak.com/livecast/ik:africa24/manifest.m3u8",
  "https://live.creacast.com/albi-tv-ch1/stream/playlist.m3u8",
  "http://cfd-v4-service-channel-stitcher-use1-1.prd.pluto.tv/stitch/hls/channel/62f3e4bc08f5ec000744f552/master.m3u8?appName=web&appVersion=unknown&clientTime=0&deviceDNT=0&deviceId=8e06b105-1f2c-11ef-86d8-5d587df108c6&deviceMake=Chrome&deviceModel=web&deviceType=web&deviceVersion=unknown&includeExtendedEvents=false&serverSideAds=false&sid=e8eddbbb-a9fd-424c-9473-64dc6420b913",
  "https://edge.vedge.infomaniak.com/livecast/ik:adhtv/chunklist.m3u8",
  "http://cfd-v4-service-channel-stitcher-use1-1.prd.pluto.tv/stitch/hls/channel/61533b6334ba9b000763d7b1/master.m3u8?appName=web&appVersion=unknown&clientTime=0&deviceDNT=0&deviceId=8e0662e0-1f2c-11ef-86d8-5d587df108c6&deviceMake=Chrome&deviceModel=web&deviceType=web&deviceVersion=unknown&includeExtendedEvents=false&serverSideAds=false&sid=f9535dab-8477-46f9-9989-31f9ea0a251f",
  "http://cfd-v4-service-channel-stitcher-use1-1.prd.pluto.tv/stitch/hls/channel/611e73687fcd580007d1f052/master.m3u8?appName=web&appVersion=unknown&clientTime=0&deviceDNT=0&deviceId=8e063bd1-1f2c-11ef-86d8-5d587df108c6&deviceMake=Chrome&deviceModel=web&deviceType=web&deviceVersion=unknown&includeExtendedEvents=false&serverSideAds=false&sid=28121508-e373-4b45-8f21-c48bbc48ecda",
  "https://live-antenne-reunion.zeop.tv/live/c3eds/antreunihd/hls_fta/antreunihd.m3u8?location=ZEOP01",
  "http://cfd-v4-service-channel-stitcher-use1-1.prd.pluto.tv/stitch/hls/channel/6192416c06d23b0007379766/master.m3u8?appName=web&appVersion=unknown&clientTime=0&deviceDNT=0&deviceId=8e0662e6-1f2c-11ef-86d8-5d587df108c6&deviceMake=Chrome&deviceModel=web&deviceType=web&deviceVersion=unknown&includeExtendedEvents=false&serverSideAds=false&sid=9bf91fcc-8ee0-4cc6-90c2-822e386de523",
  "https://artesimulcast.akamaized.net/hls/live/2031003/artelive_fr/index.m3u8",
];
wang-bin commented 2 months ago

try master branch. I can't reproduce the crash.

JulienDev commented 2 months ago

I can't reproduce the crash with master branch, however, I get a new freeze with the same sample code: https://pastebin.com/WAKukUEr