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

App not responding when setting a new media url #136

Closed
JulienDev opened this issue Aug 22, 2024 · 12 comments
Closed

App not responding when setting a new media url #136

JulienDev opened this issue Aug 22, 2024 · 12 comments

Comments

@JulienDev
Copy link

Describe the bug
When the user quickly zaps between different channels, the app freezes and no longer responds. The log attached is coming from MacOS but I also noticed the same problem on other platforms.

App is launched using this command to get maximum logs:

export MDK_CLOG=1
./build/macos/Build/Products/Debug/$APPNAME.app/Contents/MacOS/$APPNAME

Log

flutter: player link:https://ythls.armelin.one/channel/UCdFv_ZWQ3Xk_NfRiaK-ryGg.m3u8
flutter: doPlayVideo()
0x12e765e10 player.setMedia(https://ythls.armelin.one/channel/UCdFv_ZWQ3Xk_NfRiaK-ryGg.m3u8)
default FrameReader0x12e6c7b70 state: 0=>0=>0, 0
default0x12e6c7b70 stop, current state: 0
AudioQueueStart ERROR: 0
no video renderer
default FrameReader0x12e6c7b70 state: 0=>0=>0, 0
default0x12e6c7b70 stop, current state: 0
0x12e765e10 player.prepare(0, ..., 1282)
AudioQueueStart ERROR: 0
0x1388e0a00 MediaControl.prepare(0, ...) https://ythls.armelin.one/channel/UCdFv_ZWQ3Xk_NfRiaK-ryGg.m3u8
default 0x12e6c7b70 FrameReader.start(0, ...)
default 0x12e6c7b70 FrameReader::update MediaStatus 0=>0X2
default FrameReader0x12e6c7b70 state: 0=>0=>1, 0
default FrameReader0x12e6c7b70 state: 0=>1=>1, 0
0x12e6c7b70start frame reader thread: 0x352a07000
Failed to create io for url. io: 0x0, open: 0
try to load av module(avformat): /Users/juliendev/projects/iptv-expert/expert/build/macos/Build/Products/Debug/IPTV Expert.app/Contents/Frameworks/mdk.framework/Versions/A/libffmpeg.7.dylib
ffmpeg loaded: /Users/juliendev/projects/iptv-expert/expert/build/macos/Build/Products/Debug/IPTV Expert.app/Contents/Frameworks/mdk.framework/Versions/A/libffmpeg.7.dylib
default FrameReader0x12e6c7b70 request to pause 1, loaded: 0.
default FrameReader0x12e6c7b70 state: 0=>1=>2, 0
default FrameReader0x12e6c7b70 state requested: 2, current: 0
virtual void mdk::AudioBackendAudioQueue::pause(bool)138 ERROR>>> AudioQueuePause(queue_): -50
Selected avformat runtime version: 61.5.101 (build: 61.5.101), license: LGPL version 2.1 or later
Selected avformat runtime configuration: --extra-version=avbuild --disable-doc --disable-debug --disable-static --enable-shared --enable-runtime-cpudetect --disable-iamf --disable-vulkan --enable-libxml2 --disable-libxcb --disable-xlib --disable-postproc --enable-cross-compile --arch=arm64 --target-os=darwin --install_name_dir='@rpath' --cc=clang --enable-lto --enable-pic --extra-cflags='-I=/usr/include/libxml2 -arch arm64 -mmacosx-version-min=11.0' --extra-ldflags='-arch arm64 -mmacosx-version-min=11.0 -Wl,-dead_strip -Wl,-rpath,@loader_path -Wl,-rpath,@executable_path/../Frameworks -Wl,-rpath,@loader_path/Libraries -Wl,-rpath,@loader_path/../lib' --enable-small --disable-outdevs --disable-filters --disable-muxers --disable-encoders --disable-decoders --disable-demuxers --disable-protocols --enable-decoder='*sub*,movtext,*web*,aac*,ac3*,eac3*,alac*,ape,ass,ccaption,cfhd,cook,dca,dnxhd,exr,truehd,*yuv*,flv,flac,gif,h26[3-4]*,hevc*,hap,mp[1-3]*,prores,*[mj]peg*,mlp,mpl2,nellymoser,opus,pcm*,qtrle,*png*,tiff,rawvideo,rv*,sami,srt,ssa,v210*,vc1*,vorbis,vp[6-9]*,wm*,wrapped_avframe,av1*,ffv*' --enable-demuxer='*sub*,*ac3,*ac,*[mj]peg*,*web*,au,ape,ass,avi,concat,dnxhd,dts*,*dash*,*flv,gif,hls,h264,hevc,kux,matroska,mov,mp3,mxf,ogg,pcm*,rawvideo,rt*p,spdif,srt,vc1,v210*,wav,*pipe,image2,mlv,nsv,nut' --enable-encoder='*_at,aac,gif,h26[3-4]*,av1*,hevc*,mjpeg*,*png,opus,pcm*,prores*,rawvideo,spdif,speedhq,*jpeg,*png,vp[8-9]*,wrapped_avframe,ff*,*nvenc,*qsv,*v4l2m2m,*vaapi,vorbis,*yuv*' --enable-muxer='*jpeg,fifo,flv,gif,hls,h264,hevc,image2,mov,mp4,mpegts,matroska,null,pcm*,rawvideo,spdif,*pipe,*segment,webm,wav,dash,nu*,og*' --enable-filter='*null*,afade,*fifo,*format,*resample,aeval,atempo,pan,crop,eq*,framerate,hw*,scale,volume,allrgb,allyuv,*bars,color,test*,*key,draw*,*_qsv,*_vaapi,*v4l2*' --enable-protocol='cache,concat*,crypto*,data,fd,*file,ftp,h*,i*,pipe,rt*,s*,t*,u*'
global option: ffmpeg.version = 7
av_muxer_iterate0x10977ce68
Selected avcodec runtime version: 61.11.100 (build: 61.11.100), license: LGPL version 2.1 or later
avcodec_descriptor_next0x109567e04
flutter: status:MediaStatus(+loading)
default 0x12e6c7b70 FrameReader::update MediaStatus 0X2=>0X2
FFmpeg/Libav runtime git-2024-08-17-5c1c032-avbuild
Selected avutil runtime version: 59.34.100 (build: 59.34.100), license: LGPL version 2.1 or later
global option: ffmpeg.configuration = --extra-version=avbuild --disable-doc --disable-debug --disable-static --enable-shared --enable-runtime-cpudetect --disable-iamf --disable-vulkan --enable-libxml2 --disable-libxcb --disable-xlib --disable-postproc --enable-cross-compile --arch=arm64 --target-os=darwin --install_name_dir='@rpath' --cc=clang --enable-lto --enable-pic --extra-cflags='-I=/usr/include/libxml2 -arch arm64 -mmacosx-version-min=11.0' --extra-ldflags='-arch arm64 -mmacosx-version-min=11.0 -Wl,-dead_strip -Wl,-rpath,@loader_path -Wl,-rpath,@executable_path/../Frameworks -Wl,-rpath,@loader_path/Libraries -Wl,-rpath,@loader_path/../lib' --enable-small --disable-outdevs --disable-filters --disable-muxers --disable-encoders --disable-decoders --disable-demuxers --disable-protocols --enable-decoder='*sub*,movtext,*web*,aac*,ac3*,eac3*,alac*,ape,ass,ccaption,cfhd,cook,dca,dnxhd,exr,truehd,*yuv*,flv,flac,gif,h26[3-4]*,hevc*,hap,mp[1-3]*,prores,*[mj]peg*,mlp,mpl2,nellymoser,opus,pcm*,qtrle,*png*,tiff,rawvideo,rv*,sami,srt,ssa,v210*,vc1*,vorbis,vp[6-9]*,wm*,wrapped_avframe,av1*,ffv*' --enable-demuxer='*sub*,*ac3,*ac,*[mj]peg*,*web*,au,ape,ass,avi,concat,dnxhd,dts*,*dash*,*flv,gif,hls,h264,hevc,kux,matroska,mov,mp3,mxf,ogg,pcm*,rawvideo,rt*p,spdif,srt,vc1,v210*,wav,*pipe,image2,mlv,nsv,nut' --enable-encoder='*_at,aac,gif,h26[3-4]*,av1*,hevc*,mjpeg*,*png,opus,pcm*,prores*,rawvideo,spdif,speedhq,*jpeg,*png,vp[8-9]*,wrapped_avframe,ff*,*nvenc,*qsv,*v4l2m2m,*vaapi,vorbis,*yuv*' --enable-muxer='*jpeg,fifo,flv,gif,hls,h264,hevc,image2,mov,mp4,mpegts,matroska,null,pcm*,rawvideo,spdif,*pipe,*segment,webm,wav,dash,nu*,og*' --enable-filter='*null*,afade,*fifo,*format,*resample,aeval,atempo,pan,crop,eq*,framerate,hw*,scale,volume,allrgb,allyuv,*bars,color,test*,*key,draw*,*_qsv,*_vaapi,*v4l2*' --enable-protocol='cache,concat*,crypto*,data,fd,*file,ftp,h*,i*,pipe,rt*,s*,t*,u*'
av_dict_copy0x109810c70
before avformat_open_input. io: 0x0()/pb: 0x0, url: https://ythls.armelin.one/channel/UCdFv_ZWQ3Xk_NfRiaK-ryGg.m3u8
FFmpeg/Libav runtime git-2024-08-17-5c1c032-avbuild
2024-08-22 14:50:19.620 IPTV Expert[27579:5756854] WARNING: Secure coding is automatically enabled for restorable state! However, not on all supported macOS versions of this application. Opt-in to secure coding explicitly by implementing NSApplicationDelegate.applicationSupportsSecureRestorableState:.
[FFmpeg:hls] Skip ('#EXT-X-INDEPENDENT-SEGMENTS')
[FFmpeg:hls] Opening 'https://manifest.googlevideo.com/api/manifest/hls_playlist/expire/1724352619/ei/CzTHZurcGun6xN8P_cH0uAQ/ip/172.71.131.9/id/ucM8IMPyeYI.1/itag/91/source/yt_live_broadcast/requiressl/yes/ratebypass/yes/live/1/sgoap/gir%3Dyes%3Bitag%3D139/sgovp/gir%3Dyes%3Bitag%3D160/rqh/1/hdlc/1/hls_chunk_host/rr4---sn-25glenes.googlevideo.com/xpc/EgVo2aDSNQ%3D%3D/spc/Mv1m9nJaJNuBVv2vbsmaIdspIkMsvm_pi4BGlLXOUwRRMCl-vfz81x5c9NOVd-E/vprv/1/playlist_type/LIVE/initcwndbps/1610000/mh/Wb/mip/2a01:cb08:8a29:9e00:654b:8373:af5d:85b4/mm/44/mn/sn-25glenes/ms/lva/mv/m/mvi/4/pl/39/dover/11/pacing/0/keepalive/yes/mt/1724330693/sparams/expire,ei,ip,id,itag,source,requiressl,ratebypass,live,sgoap,sgovp,rqh,hdlc,xpc,spc,vprv,playlist_type/sig/AJfQdSswRQIgTHgPpVinapVN4hGgp0Vo8C4vby6dWDkJAqQXG7N_dvwCIQD_DUD9RdFynJOZkhi5SRk-oVgeU19z3XFuVTrv9PqQAg%3D%3D/lsparams/hls_chunk_host,initcwndbps,mh,mip,mm,mn,ms,mv,mvi,pl/lsig/AGtxev0wRQIgErAmFJblQ6_J2ejqIcAXaIMApoxOIqX_9yQe7bup57ACIQDyeYuoQRe2TNVkVhEITV3AwB1vK3hGnDsxLjGtMUv4dQ%3D%3D/playlist/index.m3u8' for reading
[FFmpeg:hls] Skip ('#EXT-X-VERSION:3')
[FFmpeg:hls] Skip ('#EXT-X-DISCONTINUITY-SEQUENCE:10')
[FFmpeg:hls] Skip ('#EXT-X-PROGRAM-DATE-TIME:2024-08-22T12:49:43.904+00:00')
[FFmpeg:https] Opening 'https://manifest.googlevideo.com/api/manifest/hls_playlist/expire/1724352619/ei/CzTHZurcGun6xN8P_cH0uAQ/ip/172.71.131.9/id/ucM8IMPyeYI.1/itag/92/source/yt_live_broadcast/requiressl/yes/ratebypass/yes/live/1/sgoap/gir%3Dyes%3Bitag%3D139/sgovp/gir%3Dyes%3Bitag%3D133/rqh/1/hdlc/1/hls_chunk_host/rr4---sn-25glenes.googlevideo.com/xpc/EgVo2aDSNQ%3D%3D/spc/Mv1m9nJaJNuBVv2vbsmaIdspIkMsvm_pi4BGlLXOUwRRMCl-vfz81x5c9NOVd-E/vprv/1/playlist_type/LIVE/initcwndbps/1610000/mh/Wb/mip/2a01:cb08:8a29:9e00:654b:8373:af5d:85b4/mm/44/mn/sn-25glenes/ms/lva/mv/m/mvi/4/pl/39/dover/11/pacing/0/keepalive/yes/mt/1724330693/sparams/expire,ei,ip,id,itag,source,requiressl,ratebypass,live,sgoap,sgovp,rqh,hdlc,xpc,spc,vprv,playlist_type/sig/AJfQdSswRQIhAIDV2GdLD89DufKxBi4TpETqCteOKIPQNeAwqAVBi5rXAiBT6rHvBzWxw-n6OdxS2WUcj2D5UedwZrFx966RLLauEA%3D%3D/lsparams/hls_chunk_host,initcwndbps,mh,mip,mm,mn,ms,mv,mvi,pl/lsig/AGtxev0wRQIgfObviYnL7LuC7k1sReshKOLgcPP37OLY97yNJZbwGtACIQCBSDouY0NmkAkqAp8HGsgXqttCE5ewlL0EXJ5rMiYJvA%3D%3D/playlist/index.m3u8' for reading
[FFmpeg:hls] Skip ('#EXT-X-VERSION:3')
[FFmpeg:hls] Skip ('#EXT-X-DISCONTINUITY-SEQUENCE:10')
[FFmpeg:hls] Skip ('#EXT-X-PROGRAM-DATE-TIME:2024-08-22T12:49:43.904+00:00')
[FFmpeg:https] Opening 'https://manifest.googlevideo.com/api/manifest/hls_playlist/expire/1724352619/ei/CzTHZurcGun6xN8P_cH0uAQ/ip/172.71.131.9/id/ucM8IMPyeYI.1/itag/93/source/yt_live_broadcast/requiressl/yes/ratebypass/yes/live/1/sgoap/gir%3Dyes%3Bitag%3D140/sgovp/gir%3Dyes%3Bitag%3D134/rqh/1/hdlc/1/hls_chunk_host/rr4---sn-25glenes.googlevideo.com/xpc/EgVo2aDSNQ%3D%3D/spc/Mv1m9nJaJNuBVv2vbsmaIdspIkMsvm_pi4BGlLXOUwRRMCl-vfz81x5c9NOVd-E/vprv/1/playlist_type/LIVE/initcwndbps/1610000/mh/Wb/mip/2a01:cb08:8a29:9e00:654b:8373:af5d:85b4/mm/44/mn/sn-25glenes/ms/lva/mv/m/mvi/4/pl/39/dover/11/pacing/0/keepalive/yes/mt/1724330693/sparams/expire,ei,ip,id,itag,source,requiressl,ratebypass,live,sgoap,sgovp,rqh,hdlc,xpc,spc,vprv,playlist_type/sig/AJfQdSswRgIhAJ5_zijeEvVyPuaklEPyP63aZytOqtV97daito0u0iiOAiEA6KbI10wXQG19svlX4Bb-V4Spdu2yZ2lpTUirUG0A6Go%3D/lsparams/hls_chunk_host,initcwndbps,mh,mip,mm,mn,ms,mv,mvi,pl/lsig/AGtxev0wRgIhALsCvdnsTebrOpTxSjDE0RrlhxePsXBCjj3EqmjasWJ5AiEA2UxzZXntOUDDA1DMQ4-o520PPHJnv1MQPG8HizavgxA%3D/playlist/index.m3u8' for reading
[FFmpeg:hls] Skip ('#EXT-X-VERSION:3')
[FFmpeg:hls] Skip ('#EXT-X-DISCONTINUITY-SEQUENCE:10')
[FFmpeg:hls] Skip ('#EXT-X-PROGRAM-DATE-TIME:2024-08-22T12:49:43.904+00:00')
[FFmpeg:https] Opening 'https://manifest.googlevideo.com/api/manifest/hls_playlist/expire/1724352619/ei/CzTHZurcGun6xN8P_cH0uAQ/ip/172.71.131.9/id/ucM8IMPyeYI.1/itag/94/source/yt_live_broadcast/requiressl/yes/ratebypass/yes/live/1/sgoap/gir%3Dyes%3Bitag%3D140/sgovp/gir%3Dyes%3Bitag%3D135/rqh/1/hdlc/1/hls_chunk_host/rr4---sn-25glenes.googlevideo.com/xpc/EgVo2aDSNQ%3D%3D/spc/Mv1m9nJaJNuBVv2vbsmaIdspIkMsvm_pi4BGlLXOUwRRMCl-vfz81x5c9NOVd-E/vprv/1/playlist_type/LIVE/initcwndbps/1610000/mh/Wb/mip/2a01:cb08:8a29:9e00:654b:8373:af5d:85b4/mm/44/mn/sn-25glenes/ms/lva/mv/m/mvi/4/pl/39/dover/11/pacing/0/keepalive/yes/mt/1724330693/sparams/expire,ei,ip,id,itag,source,requiressl,ratebypass,live,sgoap,sgovp,rqh,hdlc,xpc,spc,vprv,playlist_type/sig/AJfQdSswRAIgKqHvtJjt8_yS-P5ztS2Unn-GLyuU0BiHGFhdS9Y1IsICIH8gHCFdD-xGyMmCAv1jtacOjhB-sx9AI0qORYP1RrMX/lsparams/hls_chunk_host,initcwndbps,mh,mip,mm,mn,ms,mv,mvi,pl/lsig/AGtxev0wRgIhAJ2wdbscpttw9aDtwsbdxWprYwdCnxbppoNlaADTP1DxAiEAqaivg7optZeCjodfZG2WONlYQ8IoP_nQt8eRI5Nw6nA%3D/playlist/index.m3u8' for reading
[FFmpeg:hls] Skip ('#EXT-X-VERSION:3')
[FFmpeg:hls] Skip ('#EXT-X-DISCONTINUITY-SEQUENCE:10')
[FFmpeg:hls] Skip ('#EXT-X-PROGRAM-DATE-TIME:2024-08-22T12:49:43.904+00:00')
[FFmpeg:https] Opening 'https://manifest.googlevideo.com/api/manifest/hls_playlist/expire/1724352619/ei/CzTHZurcGun6xN8P_cH0uAQ/ip/172.71.131.9/id/ucM8IMPyeYI.1/itag/95/source/yt_live_broadcast/requiressl/yes/ratebypass/yes/live/1/sgoap/gir%3Dyes%3Bitag%3D140/sgovp/gir%3Dyes%3Bitag%3D136/rqh/1/hdlc/1/hls_chunk_host/rr4---sn-25glenes.googlevideo.com/xpc/EgVo2aDSNQ%3D%3D/spc/Mv1m9nJaJNuBVv2vbsmaIdspIkMsvm_pi4BGlLXOUwRRMCl-vfz81x5c9NOVd-E/vprv/1/playlist_type/LIVE/initcwndbps/1610000/mh/Wb/mip/2a01:cb08:8a29:9e00:654b:8373:af5d:85b4/mm/44/mn/sn-25glenes/ms/lva/mv/m/mvi/4/pl/39/dover/11/pacing/0/keepalive/yes/mt/1724330693/sparams/expire,ei,ip,id,itag,source,requiressl,ratebypass,live,sgoap,sgovp,rqh,hdlc,xpc,spc,vprv,playlist_type/sig/AJfQdSswRQIhAIk2qlget2EIPHEy6wrp1mUi7htDS_OTYWcx9fUcQOf1AiBEpJ5QcaPI1J_dG1ehQsxu8ojQtJugVbD0vJw3NVcPwg%3D%3D/lsparams/hls_chunk_host,initcwndbps,mh,mip,mm,mn,ms,mv,mvi,pl/lsig/AGtxev0wRAIgT0Cup8zNBl-00fUSWhzk44SQR6-fn7kB10QIzfFgeroCIGkABXVMKmNNIGG6XQgW9aWtMyvFzt7_BDBX9EihIvcg/playlist/index.m3u8' for reading
[FFmpeg:hls] Skip ('#EXT-X-VERSION:3')
[FFmpeg:hls] Skip ('#EXT-X-DISCONTINUITY-SEQUENCE:10')
[FFmpeg:hls] Skip ('#EXT-X-PROGRAM-DATE-TIME:2024-08-22T12:49:43.904+00:00')
[FFmpeg:https] Opening 'https://manifest.googlevideo.com/api/manifest/hls_playlist/expire/1724352619/ei/CzTHZurcGun6xN8P_cH0uAQ/ip/172.71.131.9/id/ucM8IMPyeYI.1/itag/96/source/yt_live_broadcast/requiressl/yes/ratebypass/yes/live/1/sgoap/gir%3Dyes%3Bitag%3D140/sgovp/gir%3Dyes%3Bitag%3D137/rqh/1/hdlc/1/hls_chunk_host/rr4---sn-25glenes.googlevideo.com/xpc/EgVo2aDSNQ%3D%3D/spc/Mv1m9nJaJNuBVv2vbsmaIdspIkMsvm_pi4BGlLXOUwRRMCl-vfz81x5c9NOVd-E/vprv/1/playlist_type/LIVE/initcwndbps/1610000/mh/Wb/mip/2a01:cb08:8a29:9e00:654b:8373:af5d:85b4/mm/44/mn/sn-25glenes/ms/lva/mv/m/mvi/4/pl/39/dover/11/pacing/0/keepalive/yes/mt/1724330693/sparams/expire,ei,ip,id,itag,source,requiressl,ratebypass,live,sgoap,sgovp,rqh,hdlc,xpc,spc,vprv,playlist_type/sig/AJfQdSswRQIgIbuXINeFMPSV8A__sE7DPHAM68Ic_SufriwKMGxI5M0CIQCSsghQcJxJygLt0QhBzQViwCnZrbT_oWTrpwojhH949A%3D%3D/lsparams/hls_chunk_host,initcwndbps,mh,mip,mm,mn,ms,mv,mvi,pl/lsig/AGtxev0wRQIgZy1uLni_TSuiUKhAG0zcZRPy4fovBNOKCtOqOgkebnYCIQDEiB-eNOzMDTQ33mKS6mPn_G4kT6jnsE-BKyd0gLMWEw%3D%3D/playlist/index.m3u8' for reading
[FFmpeg:hls] Skip ('#EXT-X-VERSION:3')
[FFmpeg:hls] Skip ('#EXT-X-DISCONTINUITY-SEQUENCE:10')
[FFmpeg:hls] Skip ('#EXT-X-PROGRAM-DATE-TIME:2024-08-22T12:49:43.904+00:00')
[FFmpeg:hls] Opening 'https://rr4---sn-25glenes.googlevideo.com/videoplayback/id/ucM8IMPyeYI.1/itag/91/source/yt_live_broadcast/expire/1724352619/ei/CzTHZurcGun6xN8P_cH0uAQ/ip/172.71.131.9/requiressl/yes/ratebypass/yes/live/1/sgoap/gir%3Dyes%3Bitag%3D139/sgovp/gir%3Dyes%3Bitag%3D160/rqh/1/hdlc/1/hls_chunk_host/rr4---sn-25glenes.googlevideo.com/xpc/EgVo2aDSNQ%3D%3D/spc/Mv1m9nJaJNuBVv2vbsmaIdspIkMsvm_pi4BGlLXOUwRRMCl-vfz81x5c9NOVd-E/vprv/1/playlist_type/LIVE/initcwndbps/1610000/mh/Wb/mip/2a01:cb08:8a29:9e00:654b:8373:af5d:85b4/mm/44/mn/sn-25glenes/ms/lva/mv/m/mvi/4/pl/39/keepalive/yes/mt/1724330693/sparams/expire,ei,ip,id,itag,source,requiressl,ratebypass,live,sgoap,sgovp,rqh,hdlc,xpc,spc,vprv,playlist_type/sig/AJfQdSswRQIgTHgPpVinapVN4hGgp0Vo8C4vby6dWDkJAqQXG7N_dvwCIQD_DUD9RdFynJOZkhi5SRk-oVgeU19z3XFuVTrv9PqQAg%3D%3D/lsparams/hls_chunk_host,initcwndbps,mh,mip,mm,mn,ms,mv,mvi,pl/lsig/AGtxev0wRQIgErAmFJblQ6_J2ejqIcAXaIMApoxOIqX_9yQe7bup57ACIQDyeYuoQRe2TNVkVhEITV3AwB1vK3hGnDsxLjGtMUv4dQ%3D%3D/playlist/index.m3u8/sq/276551/goap/lmt%3D29/govp/lmt%3D29/dur/1.000/file/seg.ts' for reading
flutter: abs progress:null
flutter: video:Video{id: 14, order: 1, group: IsarLink(null), type: VideoType.live, source: VideoSource.playlist, title: 20 Minutes TV, link: https://lives.digiteka.com/stream/86d3e867-a272-496b-8412-f59aa0104771/index.m3u8, imageUrl: https://upload.wikimedia.org/wikipedia/commons/thumb/c/cb/20_Minutes_TV_IDF_logo_%282023%29.png/320px-20_Minutes_TV_IDF_logo_%282023%29.png, lang: null, addedTime: null, epgId: 20MinutesTV.fr, streamId: null, tvArchive: false, rating: null, serieId: null, coverUrl: null, plot: null, cast: null, genre: null, youtubeTrailer: null, lastModified: null, releaseDate: null, stalkerId: null, stalkerEpisodeId: null, stalkerSeasonId: null, groupTitle: null}
flutter: player link:https://lives.digiteka.com/stream/86d3e867-a272-496b-8412-f59aa0104771/index.m3u8
flutter: doPlayVideo()
0x12e765e10 player.setMedia(https://lives.digiteka.com/stream/86d3e867-a272-496b-8412-f59aa0104771/index.m3u8)
default FrameReader0x12e6c7b70 state: 0=>2=>0, 0
default0x12e6c7b70 stop, current state: 0
0x12e6c7b70 unload, current status 0x2, invalid: 0, loading: 2, loaded: 0, buffering: 0, seeking: 0, prepared: 0, EOF: 0
0x6000014b9638 request avformat input interrupt
AudioQueueStart ERROR: 0
no video renderer
default FrameReader0x12e6c7b70 state: 0=>0=>0, 0
default0x12e6c7b70 stop, current state: 0
0x12e765e10 player.prepare(0, ..., 1282)
AudioQueueStart ERROR: 0
0x1388e0a00 MediaControl.prepare(0, ...) https://lives.digiteka.com/stream/86d3e867-a272-496b-8412-f59aa0104771/index.m3u8
default 0x12e6c7b70 FrameReader.start(0, ...)
already loading or loaded, status: 0X2, state: 0/requested: 0, state:
default 0x12e6c7b70 FrameReader::update MediaStatus 0X2=>0X2
default FrameReader0x12e6c7b70 state: 0=>0=>1, 0
interrupted by user
interrupted by user
[FFmpeg:hls] Error when loading first segment 'https://rr4---sn-25glenes.googlevideo.com/videoplayback/id/ucM8IMPyeYI.1/itag/91/source/yt_live_broadcast/expire/1724352619/ei/CzTHZurcGun6xN8P_cH0uAQ/ip/172.71.131.9/requiressl/yes/ratebypass/yes/live/1/sgoap/gir%3Dyes%3Bitag%3D139/sgovp/gir%3Dyes%3Bitag%3D160/rqh/1/hdlc/1/hls_chunk_host/rr4---sn-25glenes.googlevideo.com/xpc/EgVo2aDSNQ%3D%3D/spc/Mv1m9nJaJNuBVv2vbsmaIdspIkMsvm_pi4BGlLXOUwRRMCl-vfz81x5c9NOVd-E/vprv/1/playlist_type/LIVE/initcwndbps/1610000/mh/Wb/mip/2a01:cb08:8a29:9e00:654b:8373:af5d:85b4/mm/44/mn/sn-25glenes/ms/lva/mv/m/mvi/4/pl/39/keepalive/yes/mt/1724330693/sparams/expire,ei,ip,id,itag,source,requiressl,ratebypass,live,sgoap,sgovp,rqh,hdlc,xpc,spc,vprv,playlist_type/sig/AJfQdSswRQIgTHgPpVinapVN4hGgp0Vo8C4vby6dWDkJAqQXG7N_dvwCIQD_DUD9RdFynJOZkhi5SRk-oVgeU19z3XFuVTrv9PqQAg%3D%3D/lsparams/hls_chunk_host,initcwndbps,mh,mip,mm,mn,ms,mv,mvi,pl/lsig/AGtxev0wRQIgErAmFJblQ6_J2ejqIcAXaIMApoxOIqX_9yQe7bup57ACIQDyeYuoQRe2TNVkVhEITV3AwB1vK3hGnDsxLjGtMUv4dQ%3D%3D/playlist/index.m3u8/sq/276551/goap/lmt%3D29/govp/lmt%3D29/dur/1.000/file/seg.ts'
interrupted by user
interrupted by user
Error avrt::avformat_open_input(&fmtctx_, ffmpeg::from_file_uri(in.c_str()), fmt, &dict) @357 /Users/runner/work/mdk-sdk/mdk-sdk/mdk/ffmpeg/plugin/FFmpegPacketIO.cpp: (0xabb6a7bb) Immediate exit requested
0x352a07000default 0x12e6c7b70 update @1149: reset status_mask. status: 80000000
default 0x12e6c7b70 FrameReader::update MediaStatus 0X2=>0X80000000
reader open error
0x352a07000default 0x12e6c7b70 update @1149: reset status_mask. status: 80000000
default 0x12e6c7b70 FrameReader::update MediaStatus 0X80000000=>0X80000000

Another log a bit different:

objc[30204]: Class AVFFrameReceiver is implemented in both /opt/homebrew/Cellar/ffmpeg/7.0.1/lib/libavdevice.61.1.100.dylib (0x103e443a8) and /Users/juliendev/projects/iptv-expert/expert/build/macos/Build/Products/Debug/IPTV Expert.app/Contents/Frameworks/mdk.framework/Versions/A/libffmpeg.7.dylib (0x109cb4da0). One of the two will be used. Which one is undefined.
objc[30204]: Class AVFAudioReceiver is implemented in both /opt/homebrew/Cellar/ffmpeg/7.0.1/lib/libavdevice.61.1.100.dylib (0x103e443f8) and /Users/juliendev/projects/iptv-expert/expert/build/macos/Build/Products/Debug/IPTV Expert.app/Contents/Frameworks/mdk.framework/Versions/A/libffmpeg.7.dylib (0x109cb4df0). One of the two will be used. Which one is undefined.
0.29.0 (git 3502d87) - Multimedia Development Kit. Copyright (c) 2016-2024 WangBin(QtAV author) <wbsecg1 at gmail.com>
Build for: macOS110000/14.4.1 16KB ARMv8 AArch64; libc++170006; Apple Clang15.0.0 (clang-1500.3.9.4); 07:01:35 Aug 21 2024
[IMPORTANT:flutter/shell/platform/darwin/graphics/FlutterDarwinContextMetalSkia.mm(66)] Using the Skia rendering backend (Metal).
global option: UserAddress = 0x1029f2e7c
global option: MDK_KEY = C03BFF5306AB39058A767105F82697F42A00FE970FB0E641D306DEFF3F220547E5E5377A3C504DC30D547890E71059BC023A4DD91A95474D1F33CA4C26C81B0FC73B00ACF954C6FA75898EFA07D9680B6A00FDF179C0A15381101D01124498AF55B069BD4B0156D5CF5A56DEDE782E5F3930AD47C8F40BFBA379231142E31B0F
3mdk verify key signature ok
3mdk license key restrictions: Test,
key time: -1
check version
user module: /Users/juliendev/projects/iptv-expert/expert/build/macos/Build/Products/Debug/IPTV Expert.app/Contents/Frameworks/fvp.framework/Versions/A/fvp
3mdk license key for app: fvp
2024-08-22 15:00:53.278 IPTV Expert[30204:5772782] WARNING: Secure coding is automatically enabled for restorable state! However, not on all supported macOS versions of this application. Opt-in to secure coding explicitly by implementing NSApplicationDelegate.applicationSupportsSecureRestorableState:.
flutter: The Dart VM service is listening on http://127.0.0.1:58017/se6S07UPm7k=/
flutter: fvp.FINE: 15:00:53.556: registerVideoPlayerPlatformsWith: null
global option: d3d11.sync.cpu = 1
global option: UserAddress = 0x121787e38
global option: subtitle.fonts.file = /Users/juliendev/projects/iptv-expert/expert/build/macos/Build/Products/Debug/IPTV Expert.app/Contents/MacOS/../Frameworks/App.framework/Resources/flutter_assets/assets/subfont.ttf
flutter: User ID:5e43326d-287c-49e3-bd82-270d163aee6f
2024-08-22 15:00:53.674 IPTV Expert[30204:5772782] [Firebase/Crashlytics] Version 10.29.0
default 0x1226d5690 new FrameReader...
Registered audio backends: AudioQueue OpenAL null
default 0x1226d6d50 new FrameReader...
Registered audio backends: AudioQueue OpenAL null
0x1226d34a0 player.Player()
0x1226d34a0 player.onEvent(1, 0x16f74c930)
0x1226d34a0 player.onStateChanged(1)
0x1226d34a0 player.onMediaStatus(1)
0x1226d34a0 player property: cc = 0
flutter: ad dismissed
flutter: abs progress:null
flutter: video:Video{id: 2, order: 0, group: IsarLink(null), type: VideoType.live, source: VideoSource.playlist, title: 7ALimoges (1080p) [Not 24/7], link: https://ythls.armelin.one/channel/UCdFv_ZWQ3Xk_NfRiaK-ryGg.m3u8, imageUrl: https://i.imgur.com/1ccTQ7Z.png, lang: null, addedTime: null, epgId: 7ALimoges.fr, streamId: null, tvArchive: false, rating: null, serieId: null, coverUrl: null, plot: null, cast: null, genre: null, youtubeTrailer: null, lastModified: null, releaseDate: null, stalkerId: null, stalkerEpisodeId: null, stalkerSeasonId: null, groupTitle: null}
flutter: player link:https://ythls.armelin.one/channel/UCdFv_ZWQ3Xk_NfRiaK-ryGg.m3u8
flutter: doPlayVideo()
0x1226d34a0 player.setMedia(https://ythls.armelin.one/channel/UCdFv_ZWQ3Xk_NfRiaK-ryGg.m3u8)
default FrameReader0x1226d5690 state: 0=>0=>0, 0
default0x1226d5690 stop, current state: 0
AudioQueueStart ERROR: 0
no video renderer
default FrameReader0x1226d5690 state: 0=>0=>0, 0
default0x1226d5690 stop, current state: 0
0x1226d34a0 player.prepare(0, ..., 1282)
AudioQueueStart ERROR: 0
0x365022e00 MediaControl.prepare(0, ...) https://ythls.armelin.one/channel/UCdFv_ZWQ3Xk_NfRiaK-ryGg.m3u8
default 0x1226d5690 FrameReader.start(0, ...)
default 0x1226d5690 FrameReader::update MediaStatus 0=>0X2
default FrameReader0x1226d5690 state: 0=>0=>1, 0
default FrameReader0x1226d5690 state: 0=>1=>1, 0
0x1226d5690start frame reader thread: 0x366cf7000
Failed to create io for url. io: 0x0, open: 0
default FrameReader0x1226d5690 request to pause 1, loaded: 0.
default FrameReader0x1226d5690 state: 0=>1=>2, 0
default FrameReader0x1226d5690 state requested: 2, current: 0
virtual void mdk::AudioBackendAudioQueue::pause(bool)138 ERROR>>> AudioQueuePause(queue_): -50
try to load av module(avformat): /Users/juliendev/projects/iptv-expert/expert/build/macos/Build/Products/Debug/IPTV Expert.app/Contents/Frameworks/mdk.framework/Versions/A/libffmpeg.7.dylib
ffmpeg loaded: /Users/juliendev/projects/iptv-expert/expert/build/macos/Build/Products/Debug/IPTV Expert.app/Contents/Frameworks/mdk.framework/Versions/A/libffmpeg.7.dylib
Selected avformat runtime version: 61.5.101 (build: 61.5.101), license: LGPL version 2.1 or later
Selected avformat runtime configuration: --extra-version=avbuild --disable-doc --disable-debug --disable-static --enable-shared --enable-runtime-cpudetect --disable-iamf --disable-vulkan --enable-libxml2 --disable-libxcb --disable-xlib --disable-postproc --enable-cross-compile --arch=arm64 --target-os=darwin --install_name_dir='@rpath' --cc=clang --enable-lto --enable-pic --extra-cflags='-I=/usr/include/libxml2 -arch arm64 -mmacosx-version-min=11.0' --extra-ldflags='-arch arm64 -mmacosx-version-min=11.0 -Wl,-dead_strip -Wl,-rpath,@loader_path -Wl,-rpath,@executable_path/../Frameworks -Wl,-rpath,@loader_path/Libraries -Wl,-rpath,@loader_path/../lib' --enable-small --disable-outdevs --disable-filters --disable-muxers --disable-encoders --disable-decoders --disable-demuxers --disable-protocols --enable-decoder='*sub*,movtext,*web*,aac*,ac3*,eac3*,alac*,ape,ass,ccaption,cfhd,cook,dca,dnxhd,exr,truehd,*yuv*,flv,flac,gif,h26[3-4]*,hevc*,hap,mp[1-3]*,prores,*[mj]peg*,mlp,mpl2,nellymoser,opus,pcm*,qtrle,*png*,tiff,rawvideo,rv*,sami,srt,ssa,v210*,vc1*,vorbis,vp[6-9]*,wm*,wrapped_avframe,av1*,ffv*' --enable-demuxer='*sub*,*ac3,*ac,*[mj]peg*,*web*,au,ape,ass,avi,concat,dnxhd,dts*,*dash*,*flv,gif,hls,h264,hevc,kux,matroska,mov,mp3,mxf,ogg,pcm*,rawvideo,rt*p,spdif,srt,vc1,v210*,wav,*pipe,image2,mlv,nsv,nut' --enable-encoder='*_at,aac,gif,h26[3-4]*,av1*,hevc*,mjpeg*,*png,opus,pcm*,prores*,rawvideo,spdif,speedhq,*jpeg,*png,vp[8-9]*,wrapped_avframe,ff*,*nvenc,*qsv,*v4l2m2m,*vaapi,vorbis,*yuv*' --enable-muxer='*jpeg,fifo,flv,gif,hls,h264,hevc,image2,mov,mp4,mpegts,matroska,null,pcm*,rawvideo,spdif,*pipe,*segment,webm,wav,dash,nu*,og*' --enable-filter='*null*,afade,*fifo,*format,*resample,aeval,atempo,pan,crop,eq*,framerate,hw*,scale,volume,allrgb,allyuv,*bars,color,test*,*key,draw*,*_qsv,*_vaapi,*v4l2*' --enable-protocol='cache,concat*,crypto*,data,fd,*file,ftp,h*,i*,pipe,rt*,s*,t*,u*'
global option: ffmpeg.version = 7
av_muxer_iterate0x10997ce68
Selected avcodec runtime version: 61.11.100 (build: 61.11.100), license: LGPL version 2.1 or later
avcodec_descriptor_next0x109767e04
default 0x1226d5690 FrameReader::update MediaStatus 0X2=>0X2
FFmpeg/Libav runtime git-2024-08-17-5c1c032-avbuild
Selected avutil runtime version: 59.34.100 (build: 59.34.100), license: LGPL version 2.1 or later
global option: ffmpeg.configuration = --extra-version=avbuild --disable-doc --disable-debug --disable-static --enable-shared --enable-runtime-cpudetect --disable-iamf --disable-vulkan --enable-libxml2 --disable-libxcb --disable-xlib --disable-postproc --enable-cross-compile --arch=arm64 --target-os=darwin --install_name_dir='@rpath' --cc=clang --enable-lto --enable-pic --extra-cflags='-I=/usr/include/libxml2 -arch arm64 -mmacosx-version-min=11.0' --extra-ldflags='-arch arm64 -mmacosx-version-min=11.0 -Wl,-dead_strip -Wl,-rpath,@loader_path -Wl,-rpath,@executable_path/../Frameworks -Wl,-rpath,@loader_path/Libraries -Wl,-rpath,@loader_path/../lib' --enable-small --disable-outdevs --disable-filters --disable-muxers --disable-encoders --disable-decoders --disable-demuxers --disable-protocols --enable-decoder='*sub*,movtext,*web*,aac*,ac3*,eac3*,alac*,ape,ass,ccaption,cfhd,cook,dca,dnxhd,exr,truehd,*yuv*,flv,flac,gif,h26[3-4]*,hevc*,hap,mp[1-3]*,prores,*[mj]peg*,mlp,mpl2,nellymoser,opus,pcm*,qtrle,*png*,tiff,rawvideo,rv*,sami,srt,ssa,v210*,vc1*,vorbis,vp[6-9]*,wm*,wrapped_avframe,av1*,ffv*' --enable-demuxer='*sub*,*ac3,*ac,*[mj]peg*,*web*,au,ape,ass,avi,concat,dnxhd,dts*,*dash*,*flv,gif,hls,h264,hevc,kux,matroska,mov,mp3,mxf,ogg,pcm*,rawvideo,rt*p,spdif,srt,vc1,v210*,wav,*pipe,image2,mlv,nsv,nut' --enable-encoder='*_at,aac,gif,h26[3-4]*,av1*,hevc*,mjpeg*,*png,opus,pcm*,prores*,rawvideo,spdif,speedhq,*jpeg,*png,vp[8-9]*,wrapped_avframe,ff*,*nvenc,*qsv,*v4l2m2m,*vaapi,vorbis,*yuv*' --enable-muxer='*jpeg,fifo,flv,gif,hls,h264,hevc,image2,mov,mp4,mpegts,matroska,null,pcm*,rawvideo,spdif,*pipe,*segment,webm,wav,dash,nu*,og*' --enable-filter='*null*,afade,*fifo,*format,*resample,aeval,atempo,pan,crop,eq*,framerate,hw*,scale,volume,allrgb,allyuv,*bars,color,test*,*key,draw*,*_qsv,*_vaapi,*v4l2*' --enable-protocol='cache,concat*,crypto*,data,fd,*file,ftp,h*,i*,pipe,rt*,s*,t*,u*'
av_dict_copy0x109a10c70
before avformat_open_input. io: 0x0()/pb: 0x0, url: https://ythls.armelin.one/channel/UCdFv_ZWQ3Xk_NfRiaK-ryGg.m3u8
FFmpeg/Libav runtime git-2024-08-17-5c1c032-avbuild
flutter: status:MediaStatus(+loading)
flutter: abs progress:null
flutter: video:Video{id: 14, order: 1, group: IsarLink(null), type: VideoType.live, source: VideoSource.playlist, title: 20 Minutes TV, link: https://lives.digiteka.com/stream/86d3e867-a272-496b-8412-f59aa0104771/index.m3u8, imageUrl: https://upload.wikimedia.org/wikipedia/commons/thumb/c/cb/20_Minutes_TV_IDF_logo_%282023%29.png/320px-20_Minutes_TV_IDF_logo_%282023%29.png, lang: null, addedTime: null, epgId: 20MinutesTV.fr, streamId: null, tvArchive: false, rating: null, serieId: null, coverUrl: null, plot: null, cast: null, genre: null, youtubeTrailer: null, lastModified: null, releaseDate: null, stalkerId: null, stalkerEpisodeId: null, stalkerSeasonId: null, groupTitle: null}
flutter: player link:https://lives.digiteka.com/stream/86d3e867-a272-496b-8412-f59aa0104771/index.m3u8
flutter: doPlayVideo()
0x1226d34a0 player.setMedia(https://lives.digiteka.com/stream/86d3e867-a272-496b-8412-f59aa0104771/index.m3u8)
default FrameReader0x1226d5690 state: 0=>2=>0, 0
default0x1226d5690 stop, current state: 0
0x1226d5690 unload, current status 0x2, invalid: 0, loading: 2, loaded: 0, buffering: 0, seeking: 0, prepared: 0, EOF: 0
0x600002f8cfb8 request avformat input interrupt
AudioQueueStart ERROR: 0
no video renderer
default FrameReader0x1226d5690 state: 0=>0=>0, 0
default0x1226d5690 stop, current state: 0
0x1226d34a0 player.prepare(0, ..., 1282)
AudioQueueStart ERROR: 0
0x365022e00 MediaControl.prepare(0, ...) https://lives.digiteka.com/stream/86d3e867-a272-496b-8412-f59aa0104771/index.m3u8
default 0x1226d5690 FrameReader.start(0, ...)
already loading or loaded, status: 0X2, state: 0/requested: 0, state:
default 0x1226d5690 FrameReader::update MediaStatus 0X2=>0X2
default FrameReader0x1226d5690 state: 0=>0=>1, 0
interrupted by user
[FFmpeg:tls] IO Error: -9806
interrupted by user
Error avrt::avformat_open_input(&fmtctx_, ffmpeg::from_file_uri(in.c_str()), fmt, &dict) @357 /Users/runner/work/mdk-sdk/mdk-sdk/mdk/ffmpeg/plugin/FFmpegPacketIO.cpp: (0xfffffffb) Input/output error
0x366cf7000default 0x1226d5690 update @1149: reset status_mask. status: 80000000
default 0x1226d5690 FrameReader::update MediaStatus 0X2=>0X80000000
reader open error
0x366cf7000default 0x1226d5690 update @1149: reset status_mask. status: 80000000
default 0x1226d5690 FrameReader::update MediaStatus 0X80000000=>0X80000000
@wang-bin
Copy link
Owner

If you are using backend api, you have to call player.waitFor(PlaybackState.stopped) after stop. It's a bug in backend but I can't fix it soon.

@JulienDev
Copy link
Author

JulienDev commented Aug 25, 2024

Indeed I'm using the backend api because I need to control the selected tracks. I updated my code like that but I'm still experiencing the same crash. Am I doing something wrong?

playVideo(String url, int startAt) async {
    player.state = PlaybackState.stopped;
    player.waitFor(PlaybackState.stopped);
    player.media = URL;
    final ret = await player.prepare(position: startAt * 1000);
    if (ret < 0) {
      print("media open error | invalid or unsupported media");
      onVideoError();
      return;
    }
    final tex = await player.updateTexture();
    if (tex < 0) {
      print("video size error | invalid or unsupported media");
      onVideoError();
      return;
    }

    player.state = PlaybackState.playing;
  }

@wang-bin
Copy link
Owner

crash or no responding? use lldb to show backtrace when crashing

@JulienDev
Copy link
Author

not responding sorry

@wang-bin
Copy link
Owner

you have to debug in xcode and show me the crash point

@DovgopolsSerj
Copy link

DovgopolsSerj commented Aug 26, 2024

not responding sorry

just add a check that the current state is not stopped
if (player.state != PlaybackState.stopped) {
player.state = PlaybackState.stopped;
player.waitFor(PlaybackState.stopped);
}

@JulienDev
Copy link
Author

JulienDev commented Aug 26, 2024

@DovgopolsSerj Unfortunately I have the same problem :(
@wang-bin I'd love but there is no crash. I've created a minimal app so you can reproduce the issue. Just click few times on the play button and the app should freeze.

// 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';

void main() {
  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 {
    if (player.state != PlaybackState.stopped) {
      player.state = PlaybackState.stopped;
      player.waitFor(PlaybackState.stopped);
    }
    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",
];

@DovgopolsSerj
Copy link

doPlayVideo(videos[0]);
player.media = videos[0];
Try to remove the re-assignment of media.
You have m3u8 redirects when you open them, and this assignment may no longer correspond to what the player is playing.

@JulienDev
Copy link
Author

doPlayVideo(videos[0]);
player.media = videos[0];
Try to remove the re-assignment of media.
You have m3u8 redirects when you open them, and this assignment may no longer correspond to what the player is playing.

Good catch. I updated the code (still crashing on my mac)

wang-bin added a commit that referenced this issue Aug 27, 2024
with the latest libmdk, fix no responding
@wang-bin
Copy link
Owner

wang-bin commented Aug 27, 2024

try master branch, and upgrade dependencies, then no need to stop and waitFor in your code, and the bug should be fixed

@JulienDev
Copy link
Author

I can't reproduce the issue on iOS, but still present on my mac. BTW when launching the macos app on release mode I get a crash, this is the bt from lldb:

(lldb) bt all
  thread #1, queue = 'com.apple.main-thread'
    frame #0: 0x0000000195298400 libsystem_malloc.dylib`_nanov2_free + 528
    frame #1: 0x0000000195cbcfb4 MetalTools`-[MTLDebugBuffer dealloc] + 56
    frame #2: 0x0000000105acac64 mdk`mdk::abi::MetalVideo::~MetalVideo() [inlined] mdk::abi::MetalVideo::Private::~Private(this=0x0000000123793770) at MetalVideo.mm:55:19 [opt]
    frame #3: 0x0000000105acabdc mdk`mdk::abi::MetalVideo::~MetalVideo() [inlined] mdk::abi::MetalVideo::Private::~Private(this=0x0000000123793770) at MetalVideo.mm:55:19 [opt]
    frame #4: 0x0000000105acabdc mdk`mdk::abi::MetalVideo::~MetalVideo() [inlined] std::__1::default_delete<mdk::abi::MetalVideo::Private>::operator()[abi:un170006](this=0x0000600002ad8c90, __ptr=0x0000000123793770) const at unique_ptr.h:68:5 [opt]
    frame #5: 0x0000000105acabdc mdk`mdk::abi::MetalVideo::~MetalVideo() [inlined] std::__1::unique_ptr<mdk::abi::MetalVideo::Private, std::__1::default_delete<mdk::abi::MetalVideo::Private>>::reset[abi:un170006](this=0x0000600002ad8c90, __p=0x0000000000000000) at unique_ptr.h:300:7 [opt]
    frame #6: 0x0000000105acabd8 mdk`mdk::abi::MetalVideo::~MetalVideo() [inlined] std::__1::unique_ptr<mdk::abi::MetalVideo::Private, std::__1::default_delete<mdk::abi::MetalVideo::Private>>::~unique_ptr[abi:un170006](this=0x0000600002ad8c90) at unique_ptr.h:266:75 [opt]
    frame #7: 0x0000000105acabd8 mdk`mdk::abi::MetalVideo::~MetalVideo() [inlined] std::__1::unique_ptr<mdk::abi::MetalVideo::Private, std::__1::default_delete<mdk::abi::MetalVideo::Private>>::~unique_ptr[abi:un170006](this=0x0000600002ad8c90) at unique_ptr.h:266:73 [opt]
    frame #8: 0x0000000105acabd8 mdk`mdk::abi::MetalVideo::~MetalVideo() [inlined] mdk::abi::MetalVideo::~MetalVideo(this=0x0000600002ad8c90) at MetalVideo.mm:449:25 [opt]
    frame #9: 0x0000000105acabd8 mdk`mdk::abi::MetalVideo::~MetalVideo(this=0x0000600002ad8c90) at MetalVideo.mm:449:25 [opt]
    frame #10: 0x0000000105acdb7c mdk`mdk::abi::MetalVideoRenderer::~MetalVideoRenderer(this=<unavailable>) at MetalVideoRenderer.mm:17:7 [opt]
    frame #11: 0x0000000105accedc mdk`mdk::abi::MetalVideoRenderer::~MetalVideoRenderer() [inlined] mdk::abi::MetalVideoRenderer::~MetalVideoRenderer(this=<unavailable>) at MetalVideoRenderer.mm:17:7 [opt]
    frame #12: 0x0000000105acced8 mdk`mdk::abi::MetalVideoRenderer::~MetalVideoRenderer(this=<unavailable>) at MetalVideoRenderer.mm:17:7 [opt]
    frame #13: 0x0000000105ac3938 mdk`mdk::abi::VideoPresenter::Private::destroyVideoRenderer(this=0x0000000125904ec0, vo_opaque=0x0000000000000000) at unique_ptr.h:0:9 [opt]
    frame #14: 0x0000000105ac38a4 mdk`mdk::abi::VideoPresenter::setVideoSurfaceSize(this=0x00000001259168d0, width=-1, height=-1, vo_opaque=0x0000000000000000) at VideoPresenter.cpp:363:12 [opt]
    frame #15: 0x0000000104fbbb14 fvp`TexturePlayer::~TexturePlayer(this=0x000000012619d018) at FvpPlugin.mm:110:9 [opt]
    frame #16: 0x0000000104fbbb90 fvp`std::__1::shared_ptr<TexturePlayer>::~shared_ptr[abi:ue170006]() [inlined] std::__1::__shared_count::__release_shared[abi:ue170006](this=0x000000012619d000) at shared_ptr.h:173:9 [opt]
    frame #17: 0x0000000104fbbb70 fvp`std::__1::shared_ptr<TexturePlayer>::~shared_ptr[abi:ue170006]() [inlined] std::__1::__shared_weak_count::__release_shared[abi:ue170006](this=0x000000012619d000) at shared_ptr.h:214:27 [opt]
    frame #18: 0x0000000104fbbb70 fvp`std::__1::shared_ptr<TexturePlayer>::~shared_ptr[abi:ue170006](this=0x00006000024850c8) at shared_ptr.h:773:23 [opt]
    frame #19: 0x0000000104fbc05c fvp`std::__1::unique_ptr<std::__1::__hash_node<std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>, void*>, std::__1::__hash_node_destructor<std::__1::allocator<std::__1::__hash_node<std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>, void*>>>>::reset[abi:ue170006](std::__1::__hash_node<std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>, void*>*) [inlined] std::__1::shared_ptr<TexturePlayer>::~shared_ptr[abi:ue170006](this=<unavailable>) at shared_ptr.h:771:5 [opt]
    frame #20: 0x0000000104fbc058 fvp`std::__1::unique_ptr<std::__1::__hash_node<std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>, void*>, std::__1::__hash_node_destructor<std::__1::allocator<std::__1::__hash_node<std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>, void*>>>>::reset[abi:ue170006](std::__1::__hash_node<std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>, void*>*) [inlined] std::__1::pair<long long const, std::__1::shared_ptr<TexturePlayer>>::~pair(this=0x00006000024850c0) at pair.h:81:29 [opt]
    frame #21: 0x0000000104fbc054 fvp`std::__1::unique_ptr<std::__1::__hash_node<std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>, void*>, std::__1::__hash_node_destructor<std::__1::allocator<std::__1::__hash_node<std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>, void*>>>>::reset[abi:ue170006](std::__1::__hash_node<std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>, void*>*) [inlined] std::__1::pair<long long const, std::__1::shared_ptr<TexturePlayer>>::~pair(this=0x00006000024850c0) at pair.h:81:29 [opt]
    frame #22: 0x0000000104fbc054 fvp`std::__1::unique_ptr<std::__1::__hash_node<std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>, void*>, std::__1::__hash_node_destructor<std::__1::allocator<std::__1::__hash_node<std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>, void*>>>>::reset[abi:ue170006](std::__1::__hash_node<std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>, void*>*) [inlined] void std::__1::__destroy_at[abi:ue170006]<std::__1::pair<long long const, std::__1::shared_ptr<TexturePlayer>>, 0>(__loc=0x00006000024850c0) at construct_at.h:69:13 [opt]
    frame #23: 0x0000000104fbc054 fvp`std::__1::unique_ptr<std::__1::__hash_node<std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>, void*>, std::__1::__hash_node_destructor<std::__1::allocator<std::__1::__hash_node<std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>, void*>>>>::reset[abi:ue170006](std::__1::__hash_node<std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>, void*>*) [inlined] void std::__1::destroy_at[abi:ue170006]<std::__1::pair<long long const, std::__1::shared_ptr<TexturePlayer>>, 0>(__loc=0x00006000024850c0) at construct_at.h:104:5 [opt]
    frame #24: 0x0000000104fbc054 fvp`std::__1::unique_ptr<std::__1::__hash_node<std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>, void*>, std::__1::__hash_node_destructor<std::__1::allocator<std::__1::__hash_node<std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>, void*>>>>::reset[abi:ue170006](std::__1::__hash_node<std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>, void*>*) [inlined] void std::__1::allocator_traits<std::__1::allocator<std::__1::__hash_node<std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>, void*>>>::destroy[abi:ue170006]<std::__1::pair<long long const, std::__1::shared_ptr<TexturePlayer>>, void, void>((null)=<unavailable>, __p=0x00006000024850c0) at allocator_traits.h:323:9 [opt]
    frame #25: 0x0000000104fbc054 fvp`std::__1::unique_ptr<std::__1::__hash_node<std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>, void*>, std::__1::__hash_node_destructor<std::__1::allocator<std::__1::__hash_node<std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>, void*>>>>::reset[abi:ue170006](std::__1::__hash_node<std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>, void*>*) [inlined] std::__1::__hash_node_destructor<std::__1::allocator<std::__1::__hash_node<std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>, void*>>>::operator()[abi:ue170006](this=<unavailable>, __p=0x00006000024850b0) at __hash_table:674:13 [opt]
    frame #26: 0x0000000104fbc04c fvp`std::__1::unique_ptr<std::__1::__hash_node<std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>, void*>, std::__1::__hash_node_destructor<std::__1::allocator<std::__1::__hash_node<std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>, void*>>>>::reset[abi:ue170006](this=0x000000016b389658, __p=<unavailable>) at unique_ptr.h:300:7 [opt]
    frame #27: 0x0000000104fbc0b0 fvp`unsigned long std::__1::__hash_table<std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>, std::__1::__unordered_map_hasher<long long, std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>, std::__1::hash<long long>, std::__1::equal_to<long long>, true>, std::__1::__unordered_map_equal<long long, std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>, std::__1::equal_to<long long>, std::__1::hash<long long>, true>, std::__1::allocator<std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>>>::__erase_unique<long long>(long long const&) [inlined] std::__1::unique_ptr<std::__1::__hash_node<std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>, void*>, std::__1::__hash_node_destructor<std::__1::allocator<std::__1::__hash_node<std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>, void*>>>>::~unique_ptr[abi:ue170006](this=0x000000016b389658) at unique_ptr.h:266:75 [opt]
    frame #28: 0x0000000104fbc0a4 fvp`unsigned long std::__1::__hash_table<std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>, std::__1::__unordered_map_hasher<long long, std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>, std::__1::hash<long long>, std::__1::equal_to<long long>, true>, std::__1::__unordered_map_equal<long long, std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>, std::__1::equal_to<long long>, std::__1::hash<long long>, true>, std::__1::allocator<std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>>>::__erase_unique<long long>(long long const&) [inlined] std::__1::unique_ptr<std::__1::__hash_node<std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>, void*>, std::__1::__hash_node_destructor<std::__1::allocator<std::__1::__hash_node<std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>, void*>>>>::~unique_ptr[abi:ue170006](this=0x000000016b389658) at unique_ptr.h:266:73 [opt]
    frame #29: 0x0000000104fbc0a4 fvp`unsigned long std::__1::__hash_table<std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>, std::__1::__unordered_map_hasher<long long, std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>, std::__1::hash<long long>, std::__1::equal_to<long long>, true>, std::__1::__unordered_map_equal<long long, std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>, std::__1::equal_to<long long>, std::__1::hash<long long>, true>, std::__1::allocator<std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>>>::__erase_unique<long long>(long long const&) [inlined] std::__1::__hash_table<std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>, std::__1::__unordered_map_hasher<long long, std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>, std::__1::hash<long long>, std::__1::equal_to<long long>, true>, std::__1::__unordered_map_equal<long long, std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>, std::__1::equal_to<long long>, std::__1::hash<long long>, true>, std::__1::allocator<std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>>>::erase(this=0x0000600003f39788, __p=<unavailable>) at __hash_table:2230:5 [opt]
    frame #30: 0x0000000104fbc098 fvp`unsigned long std::__1::__hash_table<std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>, std::__1::__unordered_map_hasher<long long, std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>, std::__1::hash<long long>, std::__1::equal_to<long long>, true>, std::__1::__unordered_map_equal<long long, std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>, std::__1::equal_to<long long>, std::__1::hash<long long>, true>, std::__1::allocator<std::__1::__hash_value_type<long long, std::__1::shared_ptr<TexturePlayer>>>>::__erase_unique<long long>(this=0x0000600003f39788, __k=0x000000016b3896a0) at __hash_table:2256:5 [opt]
    frame #31: 0x0000000104fbb040 fvp`-[FvpPlugin handleMethodCall:result:] [inlined] std::__1::unordered_map<long long, std::__1::shared_ptr<TexturePlayer>, std::__1::hash<long long>, std::__1::equal_to<long long>, std::__1::allocator<std::__1::pair<long long const, std::__1::shared_ptr<TexturePlayer>>>>::erase[abi:ue170006](this=<unavailable>, __k=0x000000016b3896a0) at unordered_map:1449:59 [opt]
    frame #32: 0x0000000104fbb038 fvp`-[FvpPlugin handleMethodCall:result:](self=0x0000600003f39780, _cmd=<unavailable>, call=<unavailable>, result=<unavailable>) at FvpPlugin.mm:160:17 [opt]
    frame #33: 0x0000000107b11014 FlutterMacOS`___lldb_unnamed_symbol35796 + 180
    frame #34: 0x000000010714de18 FlutterMacOS`___lldb_unnamed_symbol1157 + 416
    frame #35: 0x00000001079c7160 FlutterMacOS`___lldb_unnamed_symbol30615 + 128
    frame #36: 0x00000001079d8ee4 FlutterMacOS`___lldb_unnamed_symbol30942 + 76
    frame #37: 0x00000001079d99fc FlutterMacOS`___lldb_unnamed_symbol30964 + 80
    frame #38: 0x00000001079d6500 FlutterMacOS`___lldb_unnamed_symbol30899 + 652
    frame #39: 0x00000001079bf15c FlutterMacOS`___lldb_unnamed_symbol30438 + 36
    frame #40: 0x0000000107150e40 FlutterMacOS`___lldb_unnamed_symbol1204 + 56
    frame #41: 0x0000000107150ff4 FlutterMacOS`___lldb_unnamed_symbol1206 + 64
    frame #42: 0x0000000105164f2c libdispatch.dylib`_dispatch_call_block_and_release + 32
    frame #43: 0x0000000105166ba4 libdispatch.dylib`_dispatch_client_callout + 20
    frame #44: 0x0000000105179f08 libdispatch.dylib`_dispatch_main_queue_drain + 1100
    frame #45: 0x0000000105179aac libdispatch.dylib`_dispatch_main_queue_callback_4CF + 44
    frame #46: 0x00000001955874ac CoreFoundation`__CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 16
    frame #47: 0x0000000195544c30 CoreFoundation`__CFRunLoopRun + 1996
    frame #48: 0x0000000195543e0c CoreFoundation`CFRunLoopRunSpecific + 608
    frame #49: 0x000000019fcdf000 HIToolbox`RunCurrentEventLoopInMode + 292
    frame #50: 0x000000019fcdee3c HIToolbox`ReceiveNextEventCommon + 648
    frame #51: 0x000000019fcdeb94 HIToolbox`_BlockUntilNextEventMatchingListInModeWithFilter + 76
    frame #52: 0x0000000198d9c970 AppKit`_DPSNextEvent + 660
    frame #53: 0x000000019958edec AppKit`-[NSApplication(NSEventRouting) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 700
    frame #54: 0x0000000198d8fcb8 AppKit`-[NSApplication run] + 476
    frame #55: 0x0000000198d66f54 AppKit`NSApplicationMain + 880
    frame #56: 0x0000000104a75bf0 fvp_example`main [inlined] generic specialization <fvp_example.AppDelegate> of static __C.NSApplicationDelegate.main() -> () at AppDelegate.swift:0 [opt]
    frame #57: 0x0000000104a75bd8 fvp_example`main [inlined] static fvp_example.AppDelegate.$main() -> () at <compiler-generated>:4:1 [opt]
    frame #58: 0x0000000104a75bd8 fvp_example`main at AppDelegate.swift:0 [opt]
    frame #59: 0x00000001950de0e0 dyld`start + 2360
  thread #3
    frame #0: 0x00000001057b7a8c libsystem_pthread.dylib`start_wqthread
  thread #6, name = 'io.flutter.ui'
    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: 0x00000001071b868c FlutterMacOS`___lldb_unnamed_symbol2708 + 188
    frame #8: 0x00000001071af7d0 FlutterMacOS`___lldb_unnamed_symbol2532 + 60
    frame #9: 0x00000001071b72a8 FlutterMacOS`___lldb_unnamed_symbol2653 + 200
    frame #10: 0x00000001071b6d60 FlutterMacOS`___lldb_unnamed_symbol2646 + 56
    frame #11: 0x00000001057ad5c0 libsystem_pthread.dylib`_pthread_start + 136
* thread #7, name = 'io.flutter.raster', stop reason = EXC_BAD_ACCESS (code=1, address=0x2a7743b9cfd0)
  * frame #0: 0x000000019508ffb4 libobjc.A.dylib`objc_retain + 8
    frame #1: 0x0000000107b0d0f4 FlutterMacOS`___lldb_unnamed_symbol35737 + 68
    frame #2: 0x00000001079dae14 FlutterMacOS`___lldb_unnamed_symbol30998 + 192
    frame #3: 0x00000001079dabf4 FlutterMacOS`___lldb_unnamed_symbol30997 + 120
    frame #4: 0x0000000107715d28 FlutterMacOS`___lldb_unnamed_symbol20489 + 152
    frame #5: 0x000000010770733c FlutterMacOS`___lldb_unnamed_symbol20195 + 108
    frame #6: 0x000000010771642c FlutterMacOS`___lldb_unnamed_symbol20499 + 100
    frame #7: 0x000000010770733c FlutterMacOS`___lldb_unnamed_symbol20195 + 108
    frame #8: 0x000000010771642c FlutterMacOS`___lldb_unnamed_symbol20499 + 100
    frame #9: 0x000000010770733c FlutterMacOS`___lldb_unnamed_symbol20195 + 108
    frame #10: 0x000000010771642c FlutterMacOS`___lldb_unnamed_symbol20499 + 100
    frame #11: 0x000000010770733c FlutterMacOS`___lldb_unnamed_symbol20195 + 108
    frame #12: 0x000000010771642c FlutterMacOS`___lldb_unnamed_symbol20499 + 100
    frame #13: 0x000000010770733c FlutterMacOS`___lldb_unnamed_symbol20195 + 108
    frame #14: 0x0000000107712ad8 FlutterMacOS`___lldb_unnamed_symbol20446 + 620
    frame #15: 0x00000001076ff740 FlutterMacOS`___lldb_unnamed_symbol20030 + 504
    frame #16: 0x00000001076ff500 FlutterMacOS`___lldb_unnamed_symbol20029 + 484
    frame #17: 0x00000001078c43a0 FlutterMacOS`___lldb_unnamed_symbol26096 + 836
    frame #18: 0x00000001078c3bd4 FlutterMacOS`___lldb_unnamed_symbol26095 + 600
    frame #19: 0x00000001078c2168 FlutterMacOS`___lldb_unnamed_symbol26080 + 176
    frame #20: 0x00000001078c31e4 FlutterMacOS`___lldb_unnamed_symbol26092 + 192
    frame #21: 0x00000001078c6dd4 FlutterMacOS`___lldb_unnamed_symbol26159 + 100
    frame #22: 0x00000001078c2830 FlutterMacOS`___lldb_unnamed_symbol26082 + 276
    frame #23: 0x00000001078c2450 FlutterMacOS`___lldb_unnamed_symbol26081 + 148
    frame #24: 0x00000001078e5970 FlutterMacOS`___lldb_unnamed_symbol26693 + 112
    frame #25: 0x00000001071af9d4 FlutterMacOS`___lldb_unnamed_symbol2535 + 252
    frame #26: 0x00000001071b83f0 FlutterMacOS`___lldb_unnamed_symbol2703 + 52
    frame #27: 0x0000000195561f90 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 32
    frame #28: 0x0000000195561c34 CoreFoundation`__CFRunLoopDoTimer + 972
    frame #29: 0x000000019556176c CoreFoundation`__CFRunLoopDoTimers + 356
    frame #30: 0x0000000195544ba4 CoreFoundation`__CFRunLoopRun + 1856
    frame #31: 0x0000000195543e0c CoreFoundation`CFRunLoopRunSpecific + 608
    frame #32: 0x00000001071b868c FlutterMacOS`___lldb_unnamed_symbol2708 + 188
    frame #33: 0x00000001071af7d0 FlutterMacOS`___lldb_unnamed_symbol2532 + 60
    frame #34: 0x00000001071b72a8 FlutterMacOS`___lldb_unnamed_symbol2653 + 200
    frame #35: 0x00000001071b6d60 FlutterMacOS`___lldb_unnamed_symbol2646 + 56
    frame #36: 0x00000001057ad5c0 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: 0x00000001071b868c FlutterMacOS`___lldb_unnamed_symbol2708 + 188
    frame #8: 0x00000001071af7d0 FlutterMacOS`___lldb_unnamed_symbol2532 + 60
    frame #9: 0x00000001071b72a8 FlutterMacOS`___lldb_unnamed_symbol2653 + 200
    frame #10: 0x00000001071b6d60 FlutterMacOS`___lldb_unnamed_symbol2646 + 56
    frame #11: 0x00000001057ad5c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #9, name = 'io.worker.1'
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x00000001057b1c00 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x0000000107178c64 FlutterMacOS`___lldb_unnamed_symbol1705 + 44
    frame #3: 0x00000001071aa1dc FlutterMacOS`___lldb_unnamed_symbol2406 + 148
    frame #4: 0x00000001071aaea8 FlutterMacOS`___lldb_unnamed_symbol2416 + 176
    frame #5: 0x00000001057ad5c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #10, name = 'io.worker.2'
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x00000001057b1c00 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x0000000107178c64 FlutterMacOS`___lldb_unnamed_symbol1705 + 44
    frame #3: 0x00000001071aa1dc FlutterMacOS`___lldb_unnamed_symbol2406 + 148
    frame #4: 0x00000001071aaea8 FlutterMacOS`___lldb_unnamed_symbol2416 + 176
    frame #5: 0x00000001057ad5c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #11, name = 'io.worker.3'
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x00000001057b1c00 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x0000000107178c64 FlutterMacOS`___lldb_unnamed_symbol1705 + 44
    frame #3: 0x00000001071aa1dc FlutterMacOS`___lldb_unnamed_symbol2406 + 148
    frame #4: 0x00000001071aaea8 FlutterMacOS`___lldb_unnamed_symbol2416 + 176
    frame #5: 0x00000001057ad5c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #12, name = 'io.worker.4'
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x00000001057b1c00 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x0000000107178c64 FlutterMacOS`___lldb_unnamed_symbol1705 + 44
    frame #3: 0x00000001071aa1dc FlutterMacOS`___lldb_unnamed_symbol2406 + 148
    frame #4: 0x00000001071aaea8 FlutterMacOS`___lldb_unnamed_symbol2416 + 176
    frame #5: 0x00000001057ad5c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #13, name = 'dart:io EventHandler'
    frame #0: 0x000000019542c340 libsystem_kernel.dylib`kevent + 8
    frame #1: 0x0000000107958cf4 FlutterMacOS`___lldb_unnamed_symbol28782 + 300
    frame #2: 0x0000000107980408 FlutterMacOS`___lldb_unnamed_symbol29473 + 88
    frame #3: 0x00000001057ad5c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #14
    frame #0: 0x00000001057b7a8c libsystem_pthread.dylib`start_wqthread
  thread #15, 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: 0x00000001057ad5c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #16, queue = 'com.Metal.CommandQueueDispatch'
    frame #0: 0x0000000198c3ef4c IOKit`iokit_user_client_trap + 8
    frame #1: 0x00000001b44dca30 IOGPU`IOGPUCommandQueueSubmitCommandBuffers + 164
    frame #2: 0x00000001b44cc6b4 IOGPU`-[IOGPUMetalCommandQueue _submitCommandBuffers:count:] + 356
    frame #3: 0x00000001b44cc528 IOGPU`-[IOGPUMetalCommandQueue submitCommandBuffers:count:] + 72
    frame #4: 0x000000019f7ca38c Metal`-[_MTLCommandQueue _submitAvailableCommandBuffers] + 492
    frame #5: 0x0000000105166ba4 libdispatch.dylib`_dispatch_client_callout + 20
    frame #6: 0x000000010516a42c libdispatch.dylib`_dispatch_continuation_pop + 704
    frame #7: 0x0000000105185bfc libdispatch.dylib`_dispatch_source_latch_and_call + 488
    frame #8: 0x00000001051842b4 libdispatch.dylib`_dispatch_source_invoke + 868
    frame #9: 0x000000010516fb98 libdispatch.dylib`_dispatch_lane_serial_drain + 368
    frame #10: 0x0000000105170e7c libdispatch.dylib`_dispatch_lane_invoke + 416
    frame #11: 0x0000000105180958 libdispatch.dylib`_dispatch_root_queue_drain_deferred_wlh + 652
    frame #12: 0x000000010517fc30 libdispatch.dylib`_dispatch_workloop_worker_thread + 444
    frame #13: 0x00000001057afd40 libsystem_pthread.dylib`_pthread_wqthread + 288
  thread #17, 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: 0x00000001057ad5c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #18, 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: 0x00000001057ad5c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #35, 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: 0x00000001057ad5c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #37, name = 'AQConverterThread'
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x00000001057b1c00 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: 0x00000001057ad5c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #38, name = 'com.apple.audio.IOThread.client'
    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: 0x0000000197dff898 CoreAudio`HALB_MachPort::SendSimpleMessageWithSimpleReply(unsigned int, unsigned int, int, int&, bool, unsigned int) + 96
    frame #5: 0x0000000197cd3b44 CoreAudio`HALC_ProxyIOContext::IOWorkLoop() + 4272
    frame #6: 0x0000000197cd235c CoreAudio`invocation function for block in HALC_ProxyIOContext::HALC_ProxyIOContext(unsigned int, unsigned int) + 108
    frame #7: 0x0000000197e584e4 CoreAudio`HALC_IOThread::Entry(void*) + 88
    frame #8: 0x00000001057ad5c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #40, name = 'DartWorker'
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x00000001057b1c2c libsystem_pthread.dylib`_pthread_cond_wait + 1272
    frame #2: 0x0000000107a9c8b4 FlutterMacOS`___lldb_unnamed_symbol34231 + 128
    frame #3: 0x0000000107adabfc FlutterMacOS`___lldb_unnamed_symbol35045 + 504
    frame #4: 0x0000000107adade0 FlutterMacOS`___lldb_unnamed_symbol35046 + 136
    frame #5: 0x0000000107a9bd18 FlutterMacOS`___lldb_unnamed_symbol34208 + 204
    frame #6: 0x00000001057ad5c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #41
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x00000001057b1c00 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x0000000108148c74 libffmpeg.7.dylib`___lldb_unnamed_symbol10069 + 80
    frame #3: 0x00000001057ad5c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #42
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x00000001057b1c00 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x0000000108148c74 libffmpeg.7.dylib`___lldb_unnamed_symbol10069 + 80
    frame #3: 0x00000001057ad5c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #43
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x00000001057b1c00 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x0000000108148c74 libffmpeg.7.dylib`___lldb_unnamed_symbol10069 + 80
    frame #3: 0x00000001057ad5c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #44
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x00000001057b1c00 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x0000000108148c74 libffmpeg.7.dylib`___lldb_unnamed_symbol10069 + 80
    frame #3: 0x00000001057ad5c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #45
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x00000001057b1c00 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x0000000108148c74 libffmpeg.7.dylib`___lldb_unnamed_symbol10069 + 80
    frame #3: 0x00000001057ad5c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #46
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x00000001057b1c00 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x0000000108148c74 libffmpeg.7.dylib`___lldb_unnamed_symbol10069 + 80
    frame #3: 0x00000001057ad5c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #47
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x00000001057b1c00 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x0000000108148c74 libffmpeg.7.dylib`___lldb_unnamed_symbol10069 + 80
    frame #3: 0x00000001057ad5c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #48
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x00000001057b1c00 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x0000000108148c74 libffmpeg.7.dylib`___lldb_unnamed_symbol10069 + 80
    frame #3: 0x00000001057ad5c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #49
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x00000001057b1c00 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x0000000108148c74 libffmpeg.7.dylib`___lldb_unnamed_symbol10069 + 80
    frame #3: 0x00000001057ad5c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #50
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x00000001057b1c00 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x0000000108148c74 libffmpeg.7.dylib`___lldb_unnamed_symbol10069 + 80
    frame #3: 0x00000001057ad5c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #51, name = 'mdk.read@0x16c1d3000'
    frame #0: 0x000000019542eb70 libsystem_kernel.dylib`poll + 8
    frame #1: 0x00000001080dc7e8 libffmpeg.7.dylib`___lldb_unnamed_symbol9100 + 44
    frame #2: 0x00000001080dc84c libffmpeg.7.dylib`___lldb_unnamed_symbol9101 + 56
    frame #3: 0x000000010809556c libffmpeg.7.dylib`___lldb_unnamed_symbol8403 + 32
    frame #4: 0x00000001081012c8 libffmpeg.7.dylib`___lldb_unnamed_symbol9483 + 136
    frame #5: 0x00000001080a761c libffmpeg.7.dylib`___lldb_unnamed_symbol8602 + 68
    frame #6: 0x00000001080a6a68 libffmpeg.7.dylib`___lldb_unnamed_symbol8600 + 148
    frame #7: 0x00000001080a6238 libffmpeg.7.dylib`___lldb_unnamed_symbol8594 + 2812
    frame #8: 0x00000001080a4ef0 libffmpeg.7.dylib`___lldb_unnamed_symbol8583 + 560
    frame #9: 0x00000001081014a4 libffmpeg.7.dylib`___lldb_unnamed_symbol9484 + 288
    frame #10: 0x0000000108101ea4 libffmpeg.7.dylib`___lldb_unnamed_symbol9495 + 272
    frame #11: 0x0000000108101f2c libffmpeg.7.dylib`___lldb_unnamed_symbol9496 + 32
    frame #12: 0x0000000105b08174 mdk`mdk::abi::AVFormatIO::onUrlChanged(this=0x0000600000155340) at AVFormatIO.cpp:172:5 [opt]
    frame #13: 0x0000000105aab7b0 mdk`mdk::abi::MediaIO::setUrl(this=0x0000600000155340, url="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") at MediaIO.cpp:120:10 [opt]
    frame #14: 0x0000000105aa2b08 mdk`mdk::abi::PacketIOWrapper::open(this=0x000000011360b350) at PacketIO.cpp:590:20 [opt]
    frame #15: 0x0000000105a8b21c mdk`std::__1::__async_assoc_state<void, std::__1::__async_func<mdk::abi::FrameReaderImpl::load()::$_20>>::__execute() [inlined] mdk::abi::FrameReaderImpl::internalOpen(this=0x0000000125918310) at FrameReader.cpp:1877:10 [opt]
    frame #16: 0x0000000105a8b214 mdk`std::__1::__async_assoc_state<void, std::__1::__async_func<mdk::abi::FrameReaderImpl::load()::$_20>>::__execute() [inlined] mdk::abi::FrameReaderImpl::run(this=0x0000000125918310) at FrameReader.cpp:1522:10 [opt]
    frame #17: 0x0000000105a8b214 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=0x0000600001b5b290) at FrameReader.cpp:1730:9 [opt]
    frame #18: 0x0000000105a8b214 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=0x0000600001b5b290) at invoke.h:340:25 [opt]
    frame #19: 0x0000000105a8b214 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=0x0000600001b5b290, (null)=<unavailable>) at future:2195:16 [opt]
    frame #20: 0x0000000105a8b214 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=0x0000600001b5b290) at future:2188:16 [opt]
    frame #21: 0x0000000105a8b214 mdk`std::__1::__async_assoc_state<void, std::__1::__async_func<mdk::abi::FrameReaderImpl::load()::$_20>>::__execute(this=0x0000600001b5b200) at future:1020:9 [opt]
    frame #22: 0x0000000105a8ac24 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=0x0000600002a759e8, __a0=0x0000600002a759f8) at invoke.h:308:25 [opt]
    frame #23: 0x0000000105a8ac08 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 #24: 0x0000000105a8ac08 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=0x0000600002a759e0) at thread.h:238:5 [opt]
    frame #25: 0x00000001057ad5c0 libsystem_pthread.dylib`_pthread_start + 136
  thread #52, name = 'CVDisplayLink'
    frame #0: 0x00000001954299ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x00000001057b1c2c 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: 0x00000001057ad5c0 libsystem_pthread.dylib`_pthread_start + 136

@wang-bin
Copy link
Owner

wang-bin commented Aug 27, 2024

please create a new issue for the crash. no responding bug should be fixed

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

3 participants