Conversation
…ows bridge build - Map StreamItem.externalSubtitles into runtime.addonSubtitles with dynamic language normalization and forced track detection - Update activeExternalSubtitles on source switch in PlayerScreenRuntime - Pass externalSubtitles to NativePlayerSurface and NativePlayerController - Prevent player recreation loop in PlayerEngine.desktop by avoiding externalSubtitles in LaunchedEffect keys - Fix buildWindowsPlayerBridge PowerShell script UTF-8 encoding for non-ASCII workspace paths
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Aligns NuvioDesktop with NuvioMobile's subtitle architecture, allowing stream-provided external subtitles to be properly mapped, displayed in the player subtitle selector drawer, and passed to the native player. It also fixes a Windows build issue during native bridge generation on paths containing non-ASCII characters.
PR type
Why
Previously, stream-provided external subtitles were not mapped into runtime subtitle states, preventing subtitles provided directly by streams from appearing in the desktop subtitle selection drawer. In addition,
externalSubtitleswas included in playerLaunchedEffectkeys, causing unnecessary playback reload cycles. Finally, generating the Windows player bridge batch script failed on environments where user profiles or project paths contained non-ASCII characters.Desktop scope
Affects desktop player shared code (Windows, macOS, Linux) for external subtitle mapping and playback stability. Also affects Windows-specific bridge build script generation in
composeApp/build.gradle.kts.Issue or approval
Fixes #588
UI / behavior impact
Policy check
CONTRIBUTING.md.Scope boundaries
This PR is strictly focused on subtitle track mapping and Windows native bridge compilation. It does not introduce new UI themes, modify external dependency versions, or alter libmpv core bindings.
Testing
Verified compilation on Windows using
./gradlew :composeApp:compileKotlinDesktop(BUILD SUCCESSFUL). Verified that stream-provided external subtitles appear in the subtitle drawer and render correctly on the native player surface, and verified that switching sources updates active subtitles without playback reload loops.Screenshots / Video
Not a UI change
Breaking changes
None
Linked issues
Fixes #588