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

App not responding when setting a new media url #136

Closed JulienDev closed 2 months ago

JulienDev commented 3 months ago

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 commented 3 months ago

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 commented 2 months ago

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 commented 2 months ago

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

JulienDev commented 2 months ago

not responding sorry

wang-bin commented 2 months ago

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

DovgopolsSerj commented 2 months ago

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 commented 2 months ago

@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 commented 2 months ago

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 commented 2 months ago

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 commented 2 months ago

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

JulienDev commented 2 months ago

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 commented 2 months ago

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