VLCKit issueshttps://code.videolan.org/videolan/VLCKit/-/issues2020-02-18T09:08:02Zhttps://code.videolan.org/videolan/VLCKit/-/issues/326Will support MacCatalyst?2020-02-18T09:08:02ZvfansWill support MacCatalyst?Will support MacCatalyst?Will support MacCatalyst?https://code.videolan.org/videolan/VLCKit/-/issues/312How to apply video to custom geometrries?2020-11-23T19:45:11ZVictor GarciaHow to apply video to custom geometrries?Hi
In a past issue (https://code.videolan.org/videolan/VLCKit/issues/67) , the question to get access to the texture of the video was asked, and you mentioned that , while no such feature is planned to be implemented, that "What you can...Hi
In a past issue (https://code.videolan.org/videolan/VLCKit/issues/67) , the question to get access to the texture of the video was asked, and you mentioned that , while no such feature is planned to be implemented, that "What you can do is get thumbnails stored as PNG or JPG files or memory buffers of decoded video." . This second part might be useful for the application i have in mind using VLC, but i'd like to check if that would indeed be the case:
I would like to draw a video in a custom geometry (so, similar in a sense to the 360 video use case mentioned in issue #67), this geometry will have custom UV mappings, and being able to sample the texture for additional shading adjustments is also important. So, the output of the decoded frame from VLC should be the input of this geometry.
Would this be supported under VLCKit?4.0https://code.videolan.org/videolan/VLCKit/-/issues/306[tvOS] 4k HDR content not rendered for HDR2019-11-25T15:30:13ZStefan[tvOS] 4k HDR content not rendered for HDRHi,
a user of my App reported, that playback of a 4k HDR stream (encapsulated into MPEG-TS) from a DVB-S2x receiver is not rendered in HDR on his Apple TV 4k device.
I will upload the dump of this stream via VideoLan Uploader and share ...Hi,
a user of my App reported, that playback of a 4k HDR stream (encapsulated into MPEG-TS) from a DVB-S2x receiver is not rendered in HDR on his Apple TV 4k device.
I will upload the dump of this stream via VideoLan Uploader and share the file name here.https://code.videolan.org/videolan/VLCKit/-/issues/304Change suggestion for VLCLibrary Default options for iOS platform2020-02-18T09:52:32ZJohn RehbeinChange suggestion for VLCLibrary Default options for iOS platformI saw I should submit this to the mailing list, but I am waiting for my request to go through so in the meantime I'll post this here for now.
In Sources/VLCLibrary.m line 106 where _defaultOptions is defined I think "--play-and-pause" s...I saw I should submit this to the mailing list, but I am waiting for my request to go through so in the meantime I'll post this here for now.
In Sources/VLCLibrary.m line 106 where _defaultOptions is defined I think "--play-and-pause" should be added as a default option for iOS. It is already for MacOS, but not iOS for some reason. The reason why is if its not enabled leads to unexpected behavior at least it left me scratching my head for a few hours. If the option is not enabled and the player reaches the end of the video it results in a stopped state where you can no longer seek, play, and pause the video. This is frustrating if you want to implement looping or just not immediately dismiss the video which is a very common use case.https://code.videolan.org/videolan/VLCKit/-/issues/296Carplay2019-10-28T09:50:35ZCarolaCarplaysomeone wants carplay supportsomeone wants carplay supportFuturehttps://code.videolan.org/videolan/VLCKit/-/issues/295VLCKit used mobile data2020-02-18T09:56:29ZAlain LVLCKit used mobile dataWill it be implemented a way to track the used mobile data when a remote stream is played?\
I think it would be very useful for many developers.Will it be implemented a way to track the used mobile data when a remote stream is played?\
I think it would be very useful for many developers.3.3.9Felix Paul Kühnefkuehne@videolan.orgFelix Paul Kühnefkuehne@videolan.orghttps://code.videolan.org/videolan/VLCKit/-/issues/294swift- Change Size subtitles in VLCKit2020-11-04T11:16:33ZAyoub alrashidiswift- Change Size subtitles in VLCKitHey Guys i need help
how to change size subtitles & Font subtitles in VLCKit i Search a lot i can't found Anwser
and thank you for your help..Hey Guys i need help
how to change size subtitles & Font subtitles in VLCKit i Search a lot i can't found Anwser
and thank you for your help..4.0Felix Paul Kühnefkuehne@videolan.orgFelix Paul Kühnefkuehne@videolan.orghttps://code.videolan.org/videolan/VLCKit/-/issues/262ftp/upnp support in libvlc2020-06-07T14:11:04ZMartin Finkelftp/upnp support in libvlcHello,
I just noticed separate dependencies are used for upnp and ftp support, namely https://github.com/fkuehne/upnpx and https://github.com/fkuehne/WhiteRaccoon.
They should probably be enabled in libvlc.Hello,
I just noticed separate dependencies are used for upnp and ftp support, namely https://github.com/fkuehne/upnpx and https://github.com/fkuehne/WhiteRaccoon.
They should probably be enabled in libvlc.3.3.13https://code.videolan.org/videolan/VLCKit/-/issues/196The buffering event of VLCMediaPlayerStateBuffering has value that indicates ...2020-06-29T20:42:45ZCarolaThe buffering event of VLCMediaPlayerStateBuffering has value that indicates the amount of bufferWe should adjust the code here to propagate that informationWe should adjust the code here to propagate that informationFuturehttps://code.videolan.org/videolan/VLCKit/-/issues/191Cocoapods with module map2020-04-15T15:42:52ZJeremy Marchandcontact@kodlian.comCocoapods with module mapIt will be more convenient to use **VLCKit** in **swift** environment if the builded framework with cocoa pods contains a **module map**.
This will be particularly useful when we create a swift framework pod that has **VLCKit** as a depe...It will be more convenient to use **VLCKit** in **swift** environment if the builded framework with cocoa pods contains a **module map**.
This will be particularly useful when we create a swift framework pod that has **VLCKit** as a dependency.
I used to generate my framework as static to be able to use **TVVLCKit** but since **cocoa pods 1.5**, I am unable to use this technic.
project: https://github.com/kodlian/TVVLCPlayer
Thanks for considering my request.3.2.1Felix Paul Kühnefkuehne@videolan.orgFelix Paul Kühnefkuehne@videolan.orghttps://code.videolan.org/videolan/VLCKit/-/issues/171[iOS] after entering foreground from background no video for 3 seconds (audio...2020-02-18T10:14:30ZUra[iOS] after entering foreground from background no video for 3 seconds (audio ok)When I'm starting stream after entering foreground from background firstly I have audio and then appears video. (after 1-4 seconds)
Video appears after 1-4 seconds.When I'm starting stream after entering foreground from background firstly I have audio and then appears video. (after 1-4 seconds)
Video appears after 1-4 seconds.https://code.videolan.org/videolan/VLCKit/-/issues/162Init VLCMedia via callbacks2020-07-13T10:59:04ZAmir Abbas MousavianInit VLCMedia via callbackslibVLC 3.0 added very useful `libvlc_media_new_callbacks()` function to create a media with custom bytestream. But `VLCMedia` class does not provide any initializer to use it. It's useful to handle not-supported protocols like FTP and SM...libVLC 3.0 added very useful `libvlc_media_new_callbacks()` function to create a media with custom bytestream. But `VLCMedia` class does not provide any initializer to use it. It's useful to handle not-supported protocols like FTP and SMBv2 or authentication-protected http urls.3.3.0Felix Paul Kühnefkuehne@videolan.orgFelix Paul Kühnefkuehne@videolan.orghttps://code.videolan.org/videolan/VLCKit/-/issues/129VLCEventManager needs to be updated.2022-09-13T09:50:14ZCarolaVLCEventManager needs to be updated.The implementation is 10 years old and events get swallowed leading to not receiving playerisplaying notifications for example.
The code needs to be updated to take advantage of GCD
messagequeue and should be moved to NSOperationQueue. ...The implementation is 10 years old and events get swallowed leading to not receiving playerisplaying notifications for example.
The code needs to be updated to take advantage of GCD
messagequeue and should be moved to NSOperationQueue. Furthermore message_t should be an NSOpration that can be cancelled.
Fixing this will very likely break all the things but we need to do it!
see also duplicate https://code.videolan.org/videolan/VLCKit/issues/128
see also duplicate https://code.videolan.org/videolan/VLCKit/issues/1444.0Maxime ChapeletMaxime Chapelethttps://code.videolan.org/videolan/VLCKit/-/issues/119tvOS 11.2 AVDisplayManager support2023-04-17T17:05:24ZStefantvOS 11.2 AVDisplayManager supportWith tvOS 11.2 Apple introduces AVDisplayManager, which allows to adjust display modes on AppleTV 4K during playback. With AVPlayerViewController this happens automatically - but in tvOS I am using TVVLCKit, as AVPlayerViewController doe...With tvOS 11.2 Apple introduces AVDisplayManager, which allows to adjust display modes on AppleTV 4K during playback. With AVPlayerViewController this happens automatically - but in tvOS I am using TVVLCKit, as AVPlayerViewController does not support MPEG-TS streams on tvOS - only HLS.
But it should be possible to setup the properties manually - when all parameters (framerate, color depth, etc.) are known. So far I have no clue, which parameters are required, as Apple has not yet fully documented the AVDisplayCriteria and the AVDisplayManager.
For reference see: https://developer.apple.com/videos/play/fall2017/503/
Would be nice, when either we can get the necessary infos or TVVLCKit is doing it automatically, when configured to do so.
I would try to help on that, but not sure where the should be done best - in TVVLCKit or in libVLC.https://code.videolan.org/videolan/VLCKit/-/issues/105Corsican language is available but not distributed with VLC for iOS2018-07-16T14:26:19ZPatriccollu di Santa Maria è SichèCorsican language is available but not distributed with VLC for iOSHello,
This is my first post on this source management platform, so I hope this is the right place!
I'm a VLC translator for the **Corsican** language and I've a question regarding **VLC for iOS**.
I've installed version 2.8.2 (282.1)...Hello,
This is my first post on this source management platform, so I hope this is the right place!
I'm a VLC translator for the **Corsican** language and I've a question regarding **VLC for iOS**.
I've installed version 2.8.2 (282.1) on my iPhone but can't still use it in Corsican whereas the STRINGS resources for iOS are translated and available on the Transiflex Website since the beginning of this year.
I downloaded the 'VLC for iOS 2.8.1 source code' from http://get.videolan.org/vlc-iOS/2.8.1/vlc-ios-2.8.1.tar.gz
I can't find any resource for 'co' language. Please can you tell me why? When will it be distributed and available on Apple Store?
For your information, a Corsican translation is also available for Android and RT.
Best regards,
PatriccolluFuturehttps://code.videolan.org/videolan/VLCKit/-/issues/717VLCKit crash on Mojave / Big Sur when compiled with Xcode 15.02023-09-27T12:41:56ZCesare ForelliVLCKit crash on Mojave / Big Sur when compiled with Xcode 15.0Hi!
I've been using VLCKit-3.6.0b4 all summer with excellent results, and a couple weeks ago I tried updating to **VLCKit-3.6.0b10**, which also worked really well in all my tests.
There's something to say about my testing procedure 🤦...Hi!
I've been using VLCKit-3.6.0b4 all summer with excellent results, and a couple weeks ago I tried updating to **VLCKit-3.6.0b10**, which also worked really well in all my tests.
There's something to say about my testing procedure 🤦♂️, though, as _I missed_ trying running my app on Mojave and Big Sur from an Intel Mac; today I shipped an update with that last engine and I quickly received feedback, in the form of crash reports.
**As soon as my app embedding VLCKit-3.6.0b10 launches on Big Sur and Mojave on Intel Macs, it crashes**.
Attached you can find 2 crash reports, one from Big Sur I received from a User and the other after I was able to reproduce the issue on Mojave myself; both are symbolicated, but the symbols of my app do not seem to be "involved" in the crash.
Just for skimming this issue, here's the relevant part extracted from one of the attachments:
```
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
...
Crashed Thread: 10
...
Thread 10 Crashed:
0 ??? 000000000000000000 0 + 0
1 org.videolan.vlckitframework 0x00000001030eefd8 Connect(demux_t*) + 360
```
I am fairly convinced the issue lies with VLCKit-3.6.0b10 because **if I swap out that framework and revert to VLCKit-3.6.0b4 without changing anything else in my code, the app does not crash on launch anymore** (tested on the same Big Sur machine by my User and on a Mojave machine by me); when I re-add VLCKit-3.6.0b10, the crash on launch returns.
I don't find the attached crash reports particularly useful, to be honest, but maybe the **`Connect(demux_t*)` symbol in the crashing thread of both reports** is enough to point in the right direction.
**For me personally, this is far from an urgent issue**: I have reverted the released app back to VLCKit-3.6.0b4 and Apple's App Review approved the update in brilliantly quick time (16 minutes from submission to approval, hats off).
But I still thought it made sense to inform you of the issue, so that it can be evaluated and tested more; please, let me know if I can help in any way, and as always thanks for all your work!
---
Attached crash reports:
[crash_4_1_bigsur.crash.zip](/uploads/0923701f39514c2a10bec55b37ec1447/crash_4_1_bigsur.crash.zip)
[crash_4_1_mojave.crash.zip](/uploads/6f9af9d3f7fe9681450eeb86fb4828ed/crash_4_1_mojave.crash.zip)https://code.videolan.org/videolan/VLCKit/-/issues/713App Termination when playing lists and cycling from one item to the other2023-09-05T13:49:00ZFelix Paul Kühnefkuehne@videolan.orgApp Termination when playing lists and cycling from one item to the otherThis does not happen all the time, but sometimes only. Still the N°1 crash on the iOS app.
Full trace:
```
(lldb) bt all
thread #1, queue = 'com.apple.main-thread'
frame #0: 0x00000001910f041c libobjc.A.dylib`lookUpImpOrForward +...This does not happen all the time, but sometimes only. Still the N°1 crash on the iOS app.
Full trace:
```
(lldb) bt all
thread #1, queue = 'com.apple.main-thread'
frame #0: 0x00000001910f041c libobjc.A.dylib`lookUpImpOrForward + 72
frame #1: 0x00000001910eacc4 libobjc.A.dylib`_objc_msgSend_uncached + 68
frame #2: 0x00000001050d8f0c VLC for iOS`AudioPlayerViewController.mediaPlayerStateChanged(currentState=ended, isPlaying=false, currentMediaHasTrackToChooseFrom=false, currentMediaHasChapters=false, playbackService=0x00000002831cf930, self=0x00000001091bc000) at AudioPlayerViewController.swift:382:33
frame #3: 0x00000001050d9250 VLC for iOS`@objc AudioPlayerViewController.mediaPlayerStateChanged(_:isPlaying:currentMediaHasTrackToChooseFrom:currentMediaHasChapters:for:) at <compiler-generated>:0
frame #4: 0x0000000104e71b24 VLC for iOS`-[VLCPlaybackService mediaPlayerStateChanged:](self=0x00000002831cf930, _cmd="mediaPlayerStateChanged:", aNotification=@"VLCMediaPlayerStateChanged") at VLCPlaybackService.m:816:9
frame #5: 0x0000000109f05a08 MobileVLCKit`__HandleMediaInstanceStateChanged_block_invoke(.block_descriptor=<unavailable>, object=<unavailable>) at VLCMediaPlayer.m:181:17 [opt]
frame #6: 0x0000000109f0aa98 MobileVLCKit`__32-[VLCEventsHandler handleEvent:]_block_invoke(.block_descriptor=0x000000028144d280) at VLCEventsHandler.m:61:9 [opt]
frame #7: 0x0000000107834520 libdispatch.dylib`_dispatch_call_block_and_release + 32
frame #8: 0x0000000107836038 libdispatch.dylib`_dispatch_client_callout + 20
frame #9: 0x0000000107846798 libdispatch.dylib`_dispatch_main_queue_drain + 1196
frame #10: 0x00000001078462dc libdispatch.dylib`_dispatch_main_queue_callback_4CF + 44
frame #11: 0x00000001980f3c28 CoreFoundation`__CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 16
frame #12: 0x00000001980d5560 CoreFoundation`__CFRunLoopRun + 1992
frame #13: 0x00000001980da3ec CoreFoundation`CFRunLoopRunSpecific + 612
frame #14: 0x00000001d35f035c GraphicsServices`GSEventRunModal + 164
frame #15: 0x000000019a466f58 UIKitCore`-[UIApplication _run] + 888
frame #16: 0x000000019a466bbc UIKitCore`UIApplicationMain + 340
frame #17: 0x0000000104e50dc0 VLC for iOS`main(argc=1, argv=0x000000016afb7650) at main.m:20:16
frame #18: 0x00000001b760cdec dyld`start + 2220
thread #3, name = 'gputools.smt_poll.0x280ee85e0'
frame #0: 0x00000001d701b164 libsystem_kernel.dylib`__semwait_signal + 8
frame #1: 0x000000019f574888 libsystem_c.dylib`nanosleep + 220
frame #2: 0x000000019f575554 libsystem_c.dylib`usleep + 68
frame #3: 0x0000000107a17b6c GPUToolsCapture`smt_poll_thread_entry(void*) + 108
frame #4: 0x00000001f7e966b8 libsystem_pthread.dylib`_pthread_start + 148
thread #8, name = 'com.apple.uikit.eventfetch-thread'
frame #0: 0x00000001d701aca4 libsystem_kernel.dylib`mach_msg2_trap + 8
frame #1: 0x00000001d702db74 libsystem_kernel.dylib`mach_msg2_internal + 80
frame #2: 0x00000001d702de4c libsystem_kernel.dylib`mach_msg_overwrite + 540
frame #3: 0x00000001d701b1e8 libsystem_kernel.dylib`mach_msg + 24
frame #4: 0x00000001980d4024 CoreFoundation`__CFRunLoopServiceMachPort + 160
frame #5: 0x00000001980d5250 CoreFoundation`__CFRunLoopRun + 1208
frame #6: 0x00000001980da3ec CoreFoundation`CFRunLoopRunSpecific + 612
frame #7: 0x0000000192356fb4 Foundation`-[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 212
frame #8: 0x0000000192356e9c Foundation`-[NSRunLoop(NSRunLoop) runUntilDate:] + 64
frame #9: 0x000000019a599cc8 UIKitCore`-[UIEventFetcher threadMain] + 416
frame #10: 0x0000000192370524 Foundation`__NSThread__start__ + 716
frame #11: 0x00000001f7e966b8 libsystem_pthread.dylib`_pthread_start + 148
thread #10
frame #0: 0x00000001d701b578 libsystem_kernel.dylib`__psynch_cvwait + 8
frame #1: 0x00000001f7e9d078 libsystem_pthread.dylib`_pthread_cond_wait + 1232
frame #2: 0x00000001a66b4ef8 libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 28
frame #3: 0x00000001082e7dd0 VLCMediaLibraryKit`medialibrary::ModificationNotifier::run() [inlined] void std::__1::condition_variable::wait<medialibrary::ModificationNotifier::run()::$_1>(this=0x000000010902d590, __lk=0x000000016b49e9e8, __pred=(unnamed class) @ x23)::$_1) at __mutex_base:404:9 [opt]
frame #4: 0x00000001082e7db4 VLCMediaLibraryKit`medialibrary::ModificationNotifier::run(this=<unavailable>) at ModificationsNotifier.cpp:252:28 [opt]
frame #5: 0x00000001082ecfec VLCMediaLibraryKit`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (medialibrary::ModificationNotifier::*)(), medialibrary::ModificationNotifier*> >(void*) [inlined] decltype(__f=<unavailable>, __a0=0x0000000280e82538).*fp()) std::__1::__invoke<void (medialibrary::ModificationNotifier::*)(), medialibrary::ModificationNotifier*, void>(void (medialibrary::ModificationNotifier::*&&)(), medialibrary::ModificationNotifier*&&) at type_traits:3859:1 [opt]
frame #6: 0x00000001082ecfd4 VLCMediaLibraryKit`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (medialibrary::ModificationNotifier::*)(), medialibrary::ModificationNotifier*> >(void*) [inlined] void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (medialibrary::ModificationNotifier::*)(), medialibrary::ModificationNotifier*, 2ul>(__t=size=3, (null)=<unavailable>)(), medialibrary::ModificationNotifier*>&, std::__1::__tuple_indices<2ul>) at thread:287:5 [opt]
frame #7: 0x00000001082ecfd0 VLCMediaLibraryKit`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (medialibrary::ModificationNotifier::*)(), medialibrary::ModificationNotifier*> >(__vp=0x0000000280e82520) at thread:298:5 [opt]
frame #8: 0x00000001f7e966b8 libsystem_pthread.dylib`_pthread_start + 148
thread #11
frame #0: 0x00000001d701b578 libsystem_kernel.dylib`__psynch_cvwait + 8
frame #1: 0x00000001f7e9d078 libsystem_pthread.dylib`_pthread_cond_wait + 1232
frame #2: 0x00000001a66b4ef8 libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 28
frame #3: 0x00000001082a3744 VLCMediaLibraryKit`medialibrary::DiscovererWorker::run() [inlined] void std::__1::condition_variable::wait<medialibrary::DiscovererWorker::run()::$_2>(this=0x0000000107912f50, __lk=0x000000016b52af38, __pred=(unnamed class) @ x19)::$_2) at __mutex_base:404:9 [opt]
frame #4: 0x00000001082a3728 VLCMediaLibraryKit`medialibrary::DiscovererWorker::run(this=0x0000000107912ee0) at DiscovererWorker.cpp:445:28 [opt]
frame #5: 0x00000001082a5504 VLCMediaLibraryKit`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (medialibrary::DiscovererWorker::*)(), medialibrary::DiscovererWorker*> >(void*) [inlined] decltype(__f=<unavailable>, __a0=0x0000000280e99318).*fp()) std::__1::__invoke<void (medialibrary::DiscovererWorker::*)(), medialibrary::DiscovererWorker*, void>(void (medialibrary::DiscovererWorker::*&&)(), medialibrary::DiscovererWorker*&&) at type_traits:3859:1 [opt]
frame #6: 0x00000001082a54ec VLCMediaLibraryKit`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (medialibrary::DiscovererWorker::*)(), medialibrary::DiscovererWorker*> >(void*) [inlined] void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (medialibrary::DiscovererWorker::*)(), medialibrary::DiscovererWorker*, 2ul>(__t=size=3, (null)=<unavailable>)(), medialibrary::DiscovererWorker*>&, std::__1::__tuple_indices<2ul>) at thread:287:5 [opt]
frame #7: 0x00000001082a54e8 VLCMediaLibraryKit`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (medialibrary::DiscovererWorker::*)(), medialibrary::DiscovererWorker*> >(__vp=0x0000000280e99300) at thread:298:5 [opt]
frame #8: 0x00000001f7e966b8 libsystem_pthread.dylib`_pthread_start + 148
thread #14
frame #0: 0x00000001d701b578 libsystem_kernel.dylib`__psynch_cvwait + 8
frame #1: 0x00000001f7e9d078 libsystem_pthread.dylib`_pthread_cond_wait + 1232
frame #2: 0x0000000109f1378c MobileVLCKit`worker_thread(data=0x0000000107e43c50) at media_player.c:1212:9 [opt]
frame #3: 0x00000001f7e966b8 libsystem_pthread.dylib`_pthread_start + 148
thread #16, name = 'com.apple.CFSocket.private'
frame #0: 0x00000001d701b808 libsystem_kernel.dylib`__select + 8
frame #1: 0x000000019812399c CoreFoundation`__CFSocketManager + 636
frame #2: 0x00000001f7e966b8 libsystem_pthread.dylib`_pthread_start + 148
thread #45
frame #0: 0x000000010a77c324 MobileVLCKit`av_opt_free(obj=0x0000000108998400) at opt.c:1615:20 [opt]
frame #1: 0x000000010b4b4360 MobileVLCKit`avcodec_close(avctx=0x0000000108998400) at avcodec.c:631:5 [opt]
frame #2: 0x000000010ae01114 MobileVLCKit`avcodec_free_context + 28
frame #3: 0x000000010b41103c MobileVLCKit`EndAudioDec(obj=<unavailable>) at audio.c:205:5 [opt]
frame #4: 0x0000000109f2e374 MobileVLCKit`generic_stop(func=<unavailable>, ap=<unavailable>) at modules.c:365:5 [opt]
frame #5: 0x0000000109f2e210 MobileVLCKit`vlc_module_unload(obj=0x00000001079eae00, module=0x00000002825d2ed0, deinit=<unavailable>) at modules.c:344:9 [opt]
frame #6: 0x0000000109f2e32c MobileVLCKit`module_unneed(obj=0x00000001079eae00, module=0x00000002825d2ed0) at modules.c:379:5 [opt]
frame #7: 0x0000000109f3e350 MobileVLCKit`DeleteDecoder [inlined] UnloadDecoder(p_dec=0x00000001079eae00) at decoder.c:201:9 [opt]
frame #8: 0x0000000109f3e340 MobileVLCKit`DeleteDecoder(p_dec=0x00000001079eae00) at decoder.c:1823:5 [opt]
frame #9: 0x0000000109f3e108 MobileVLCKit`input_DecoderDelete(p_dec=<unavailable>) at decoder.c:2025:5 [opt] [artificial]
frame #10: 0x0000000109f47b14 MobileVLCKit`EsUnselect [inlined] EsDestroyDecoder(out=<unavailable>, p_es=0x0000000111c0c820) at es_out.c:1703:5 [opt]
frame #11: 0x0000000109f47b08 MobileVLCKit`EsUnselect(out=0x0000000280188570, es=0x0000000111c0c820, b_update=true) at es_out.c:1834:9 [opt]
frame #12: 0x0000000109f43d58 MobileVLCKit`EsOutControl at es_out.c:2341:17 [opt]
frame #13: 0x0000000109f431ec MobileVLCKit`EsOutControl(out=0x0000000280188570, i_query=<unavailable>, args=<unavailable>) at es_out.c:2940:13 [opt]
frame #14: 0x0000000109f4a3f8 MobileVLCKit`es_out_Control [inlined] es_out_vaControl(out=<unavailable>, i_query=<unavailable>, args=<unavailable>) at vlc_es_out.h:141:12 [opt]
frame #15: 0x0000000109f4a3ec MobileVLCKit`es_out_Control(out=<unavailable>, i_query=<unavailable>) at vlc_es_out.h:150:16 [opt]
frame #16: 0x0000000109f4a1ec MobileVLCKit`CmdExecuteControl(p_out=<unavailable>, p_cmd=0x000000016bd8aed0) at es_out_timeshift.c:0 [opt]
frame #17: 0x0000000109f495d8 MobileVLCKit`Control at es_out_timeshift.c:664:16 [opt]
frame #18: 0x0000000109f490ac MobileVLCKit`Control(p_out=<unavailable>, i_query=<unavailable>, args="") at es_out_timeshift.c:764:13 [opt]
frame #19: 0x0000000109f4fc74 MobileVLCKit`es_out_Control [inlined] es_out_vaControl(out=<unavailable>, i_query=<unavailable>, args=<unavailable>) at vlc_es_out.h:141:12 [opt]
frame #20: 0x0000000109f4fc68 MobileVLCKit`es_out_Control(out=<unavailable>, i_query=<unavailable>) at vlc_es_out.h:150:16 [opt]
frame #21: 0x0000000109f4e34c MobileVLCKit`End [inlined] es_out_SetMode(p_out=<unavailable>, i_mode=0) at es_out.h:95:17 [opt]
frame #22: 0x0000000109f4e340 MobileVLCKit`End(p_input=0x00000001089238f0) at input.c:1508:5 [opt]
frame #23: 0x0000000109f4e6d0 MobileVLCKit`Run(data=0x00000001089238f0) at input.c:507:9 [opt]
frame #24: 0x00000001f7e966b8 libsystem_pthread.dylib`_pthread_start + 148
thread #49, name = 'AURemoteIO::IOThread'
frame #0: 0x00000001d701aca4 libsystem_kernel.dylib`mach_msg2_trap + 8
frame #1: 0x00000001d702db74 libsystem_kernel.dylib`mach_msg2_internal + 80
frame #2: 0x00000001d702de4c libsystem_kernel.dylib`mach_msg_overwrite + 540
frame #3: 0x00000001d701b1e8 libsystem_kernel.dylib`mach_msg + 24
frame #4: 0x0000000202d6e148 libEmbeddedSystemAUs.dylib`void* caulk::thread_proxy<std::__1::tuple<caulk::thread::attributes, AURemoteIO::IOThread::IOThread(AURemoteIO&, caulk::thread::attributes const&, caulk::mach::os_workgroup_managed const&)::'lambda'(), std::__1::tuple<> > >(void*) + 556
frame #5: 0x00000001f7e966b8 libsystem_pthread.dylib`_pthread_start + 148
thread #52
frame #0: 0x00000001f7e95b74 libsystem_pthread.dylib`start_wqthread
thread #53
frame #0: 0x00000001d701b7dc libsystem_kernel.dylib`__ulock_wait + 8
frame #1: 0x00000001f7e988b8 libsystem_pthread.dylib`_pthread_join + 440
frame #2: 0x0000000109f4e878 MobileVLCKit`input_Close(p_input=0x00000001089238f0) at input.c:224:9 [opt]
frame #3: 0x0000000109f137a4 MobileVLCKit`worker_thread(data=0x0000000109910e20) at media_player.c:1220:9 [opt]
frame #4: 0x00000001f7e966b8 libsystem_pthread.dylib`_pthread_start + 148
* thread #54, stop reason = EXC_BAD_ACCESS (code=1, address=0xf8)
frame #0: 0x00000001f7e98024 libsystem_pthread.dylib`pthread_mutex_lock + 12
frame #1: 0x0000000109f11c44 MobileVLCKit`libvlc_media_subitems [inlined] media_get_subitems(p_md=0x0000000000000000, b_create=true) at media.c:133:5 [opt]
frame #2: 0x0000000109f11c38 MobileVLCKit`libvlc_media_subitems(p_md=0x0000000000000000) at media.c:729:39 [opt]
frame #3: 0x0000000109f181ec MobileVLCKit`set_relative_playlist_position_and_play at media_list_path.h:176:27 [opt]
* frame #4: 0x0000000109f181a8 MobileVLCKit`set_relative_playlist_position_and_play(p_mlp=<unavailable>, i_relative_position=<unavailable>) at media_list_player.c:832:29 [opt]
frame #5: 0x0000000109f17db4 MobileVLCKit`playlist_thread(data=0x0000000109910bf0) at media_list_player.c:344:9 [opt]
frame #6: 0x00000001f7e966b8 libsystem_pthread.dylib`_pthread_start + 148
thread #58
frame #0: 0x00000001d701b1ac libsystem_kernel.dylib`__workq_kernreturn + 8
(lldb)
```3.6.0Felix Paul Kühnefkuehne@videolan.orgFelix Paul Kühnefkuehne@videolan.orghttps://code.videolan.org/videolan/VLCKit/-/issues/576EXC_BAD_ACCESS crash calling VLCMediaPlayer.play() for the second time.2022-09-24T17:39:15ZJaidyn-BEXC_BAD_ACCESS crash calling VLCMediaPlayer.play() for the second time.I am trying to show a MxPEG stream within a SwiftUI app. I am using MobileVLCKit version ~> 3.3.0 in my Podfile. Here is my UIViewRepresentable code:
```
import SwiftUI
import MobileVLCKit
struct VLCPlayerView: UIViewRepresentable {
...I am trying to show a MxPEG stream within a SwiftUI app. I am using MobileVLCKit version ~> 3.3.0 in my Podfile. Here is my UIViewRepresentable code:
```
import SwiftUI
import MobileVLCKit
struct VLCPlayerView: UIViewRepresentable {
var url: String
static let vlcMediaPlayer = VLCMediaPlayer()
func makeUIView(context: Context) -> UIView {
print("Making UIView")
let controller = UIView()
VLCPlayerView.vlcMediaPlayer.drawable = controller
guard let uri = URL(string: url) else {
fatalError("Could not parse URL string.")
}
let media = VLCMedia(url: uri)
media.addOption(":avformat-format=mxg")
VLCPlayerView.vlcMediaPlayer.media = media
VLCPlayerView.vlcMediaPlayer.play()
return controller
}
func updateUIView(_ uiView: UIView, context: UIViewRepresentableContext<VLCPlayerView>) {}
static func dismantleUIView(_ uiView: UIView, coordinator: Self.Coordinator) {
stop()
}
static func stop() {
if (isPlaying()) {
print("Stopping playback")
VLCPlayerView.vlcMediaPlayer.stop()
}
}
static func isPlaying() -> Bool {
return VLCPlayerView.vlcMediaPlayer.isPlaying
}
}
```
And it's displayed in a VStack like this:
```
ZStack {
VStack {
DetailHeader(
text: "Camera Video",
isLandscape: isLandscape(orientation: orientation))
ZStack {
ZStack {
Color(.black).frame(height: 200, alignment: .center)
ProgressView().scaleEffect(1.5, anchor: .center).progressViewStyle(CircularProgressViewStyle(tint: .gray))
}
VLCPlayerView(url: cameraURL)
.frame(height: 200, alignment: .center)
}
}
}
```
I arrived at this code from the example in this thread [here](https://code.videolan.org/videolan/VLCKit/-/issues/399).
Opening the stream for the first time works, however navigating to the previous screen and coming back causes an EXC_BAD_ACCESS crash. I've tried a bunch of different workarounds for this, including loading the VLCMediaPlayer from a ViewModel and passing it to the VLCPlayerView directly, but all of them crash after trying to load the camera feed a second time.
Stack trace is here:
![Screen_Shot_2022-01-05_at_9.45.10_am](/uploads/45a391dfda5c5a8595a6293a6d9cf834/Screen_Shot_2022-01-05_at_9.45.10_am.png)
And the console output is here:
![Screen_Shot_2022-01-05_at_9.45.22_am](/uploads/1cbb766ce7cf3f40667fe73914d51eda/Screen_Shot_2022-01-05_at_9.45.22_am.png)
Running on an M1 Mac mini with XCode version 13.2.1.
Clearly it's holding a reference to something that's being released, but I can't find it. Zombie objects are turned on in XCode Scheme settings, and Address Sanitization is on as well.
Any help would be appreciated.https://code.videolan.org/videolan/VLCKit/-/issues/552iOS beta crash: SIGSEGV: demux_cc::init()2022-01-04T10:56:37ZSoomin LeeiOS beta crash: SIGSEGV: demux_cc::init()This happend during the VLC-iOS 3.3.0 (406) beta build.
MobileVLCKit 3.3.18b2 was used.
[report-2517665285370009999-ac7a75c5-256b-44e8-b063-65b6156d6d34.txt](/uploads/22a5a94df1be127eb781a040cedb6ee6/report-2517665285370009999-ac7a75c...This happend during the VLC-iOS 3.3.0 (406) beta build.
MobileVLCKit 3.3.18b2 was used.
[report-2517665285370009999-ac7a75c5-256b-44e8-b063-65b6156d6d34.txt](/uploads/22a5a94df1be127eb781a040cedb6ee6/report-2517665285370009999-ac7a75c5-256b-44e8-b063-65b6156d6d34.txt)https://code.videolan.org/videolan/VLCKit/-/issues/546iOS beta crash: Start - aout_OutputNew2022-09-24T17:35:24ZSoomin LeeiOS beta crash: Start - aout_OutputNewThis one of our top crashes in the latest iOS 3.3.0(405) beta build.
```
Thread 22 Crashed:
0 MobileVLCKit 0x0000000106cba4a8 Start + 396
1 MobileVLCKit 0x00000001057e57d8 aout_OutputN...This one of our top crashes in the latest iOS 3.3.0(405) beta build.
```
Thread 22 Crashed:
0 MobileVLCKit 0x0000000106cba4a8 Start + 396
1 MobileVLCKit 0x00000001057e57d8 aout_OutputNew + 308
2 MobileVLCKit 0x00000001057e2730 aout_DecNew + 540
3 MobileVLCKit 0x00000001057c736c aout_update_format + 528
4 MobileVLCKit 0x0000000106bdb784 DecodeBlock + 536
5 MobileVLCKit 0x00000001057c9264 DecoderProcess + 1596
6 MobileVLCKit 0x00000001057c6f94 DecoderThread + 384
7 libsystem_pthread.dylib 0x00000001debf0a50 0x1debe7000 + 39504
8 libsystem_pthread.dylib 0x00000001debf5a4c 0x1debe7000 + 59980
```
[report-2517671531350009999-6f2f97b9-19ad-45f0-ba27-d5e8f6caa527.txt](/uploads/7236d5fc94e3da545a5b6514f1ad29f6/report-2517671531350009999-6f2f97b9-19ad-45f0-ba27-d5e8f6caa527.txt)