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
194 stars 31 forks source link

[iOS] FlutterEngine textureFrameAvailable crash #181

Open JulienDev opened 2 hours ago

JulienDev commented 2 hours ago

Describe the bug Some iOS users are experiencing a crash on iOS and iPadOS (all versions impacted). I can't provide full logs because I'm not able to reproduce on my side. The Crashlytics stacktrace is always the same for all impacted users.

Stacktrace

          Crashed: mdk.vdec0@0x16e73f000
0  Flutter                        0x15dac -[FlutterEngine textureFrameAvailable:] + 53 (weak_ptr.h:53)
1  Flutter                        0x4ff04 -[FlutterTextureRegistryRelay textureFrameAvailable:] + 34 (FlutterTextureRegistryRelay.mm:34)
2  fvp                            0xe85c void std::__1::__invoke_void_return_wrapper<void, true>::__call[abi:ne180100]<TexturePlayer::TexturePlayer(long long, int, int, NSObject<FlutterTextureRegistry>*)::'lambda'(void*)&, void*>(TexturePlayer::TexturePlayer(long long, int, int, NSObject<FlutterTextureRegistry>*)::'lambda'(void*)&, void*&&) + 471 (mutex:471)
3  fvp                            0xe6a4 mdk::Player::setRenderCallback(std::__1::function<void (void*)> const&)::'lambda'(void*, void*)::__invoke(void*, void*) + 41 (lock_guard.h:41)
4  mdk                            0x95160 std::__1::function<void (mdk::abi::FrameProcessor<mdk::abi::VideoFrame>*)>::operator()(mdk::abi::FrameProcessor<mdk::abi::VideoFrame>*) const + 426 (function.h:426)
5  mdk                            0xf1f28 mdk::abi::VideoRenderer::update() + 471 (mutex:471)
6  mdk                            0xf1e24 mdk::abi::VideoRenderer::process(mdk::abi::VideoFrame const&, mdk::abi::RenderStatistics*) + 1582 (__tree:1582)
7  mdk                            0xdd758 mdk::abi::VideoPresenter::present(mdk::abi::VideoFrame const&, mdk::abi::RenderStatistics*) + 556 (VideoPresenter.cpp:556)
8  mdk                            0xb1a6c std::__1::function<double (mdk::abi::VideoFrame const&, mdk::abi::RenderStatistics*)>::operator()(mdk::abi::VideoFrame const&, mdk::abi::RenderStatistics*) const + 428 (function.h:428)
9  mdk                            0xb2858 mdk::abi::MediaControlPush::onProcessed(mdk::abi::VideoFrame const&, int) + 1521 (MediaControl.cpp:1521)
10 mdk                            0xb18dc mdk::abi::MediaControlPush::onVideoReadInThread(mdk::abi::VideoFrame&, int) + 1192 (MediaControl.cpp:1192)
11 mdk                            0xb1240 mdk::abi::MediaControlPush::onVideoRead(mdk::abi::VideoFrame const&, int) + 1310 (MediaControl.cpp:1310)
12 mdk                            0xb5448 std::__1::__function::__func<mdk::abi::MediaControlPush::updateUniqueReaders()::$_3, std::__1::allocator<mdk::abi::MediaControlPush::updateUniqueReaders()::$_3>, bool (mdk::abi::VideoFrame const&, int)>::operator()(mdk::abi::VideoFrame const&, int&&) + 311 (function.h:311)
13 mdk                            0xa1c68 bool mdk::abi::FrameReader::frameAvailable<mdk::abi::VideoFrame>(mdk::abi::VideoFrame&, int) const + 1050 (FrameReader.cpp:1050)
14 mdk                            0x9d3a4 bool mdk::abi::FrameReaderImpl::decodeLoop<(mdk::abi::MediaType)0>(int, int) + 2577 (FrameReader.cpp:2577)
15 mdk                            0x9a070 void* std::__1::__thread_proxy[abi:nn180100]<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)::$_0>>(void*) + 2738 (FrameReader.cpp:2738)
16 libsystem_pthread.dylib        0x637c _pthread_start + 136
17 libsystem_pthread.dylib        0x1494 thread_start + 8
wang-bin commented 2 hours ago

can you provide mdk.framework or ipa so i can know the version? the latest version should fix the crash

JulienDev commented 2 hours ago

Sure, I kept only ios files to make it lighter: mdk.xcframework.zip