Description
On tvOS, VLC's internal VLCOpenGLES2VideoView triggers UIKit threading violations when resetting buffers. This happens because doResetBuffers: modifies CALayer properties from a VLC background thread.
Error Message
Modifying properties of a view's layer off the main thread is not allowed:
view <VLCOpenGLES2VideoView: 0x...> with nearest ancestor view controller <...>
Stack Trace
0 UIKitCore ...
...
7 TVVLCKit -[VLCOpenGLES2VideoView doResetBuffers:] + 164
8 libsystem_pthread.dylib thread_start + 8
Environment
- tvOS 18
- VLCUI 0.7.4
- TVVLCKit (from VLCUI dependency)
Workaround
Wrapping onSecondsUpdated and onStateUpdated callbacks with Task { @MainActor in } addresses our callback code, but the internal doResetBuffers: issue requires a fix in TVVLCKit or VLCUI.
Related
This may need to be reported upstream to the TVVLCKit project if it's not solvable at the VLCUI layer.
Description
On tvOS, VLC's internal
VLCOpenGLES2VideoViewtriggers UIKit threading violations when resetting buffers. This happens becausedoResetBuffers:modifies CALayer properties from a VLC background thread.Error Message
Stack Trace
Environment
Workaround
Wrapping
onSecondsUpdatedandonStateUpdatedcallbacks withTask { @MainActor in }addresses our callback code, but the internaldoResetBuffers:issue requires a fix in TVVLCKit or VLCUI.Related
This may need to be reported upstream to the TVVLCKit project if it's not solvable at the VLCUI layer.