fix(desktop): load provider external subtitles into native player#168
Open
fmustafayaman wants to merge 1 commit into
Open
fix(desktop): load provider external subtitles into native player#168fmustafayaman wants to merge 1 commit into
fmustafayaman wants to merge 1 commit into
Conversation
On macOS/Windows the native player surface ignored the `externalSubtitles` passed to `PlatformPlayerSurface`, so subtitles supplied by stream providers (via `getStreams` -> `externalSubtitles`) never reached mpv and the subtitle menu showed nothing under "Built-in". Forward `externalSubtitles` into `NativePlayerSurface` and, once the player has attached, add each subtitle URL through the existing `setSubtitleUri` (mpv `sub-add`) path. The Android engine already wires these up; this brings the desktop native engine to parity. Co-authored-by: Cursor <cursoragent@cursor.com>
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
On macOS/Windows the desktop native player surface received the
externalSubtitleslist inPlatformPlayerSurfacebut never forwarded it toNativePlayerSurface, so subtitles supplied by stream providers (getStreams→externalSubtitles) never reached mpv. As a result the in-player subtitle menu showed nothing under Built-in, even though the provider returned valid subtitle tracks.This change:
externalSubtitlesfromPlatformPlayerSurfaceintoNativePlayerSurface.setSubtitleUri→NativePlayerBridge.addSubtitleUrl(mpvsub-add ... select) path.The Android engine (
PlayerEngine.android.kt) already wiresexternalSubtitlesinto the player viaMediaItem.SubtitleConfiguration; this brings the desktop native engine to parity.Implementation notes
composeApp/src/desktopMain/.../player/PlayerEngine.desktop.kt; no native (.mm/.cpp) changes required sinceaddSubtitleUrlalready exists in the bridge.LaunchedEffectkeyed oncontroller,sourceUrl,externalSubtitlesand gated onhostFirstFullSizePaintComplete, with a short delay so the player has loaded the media beforesub-addis issued.Test plan
./gradlew :composeApp:run).externalSubtitles; logs showsetSubtitleUribeing invoked with a valid player handle and the subtitle track appearing/selectable under Built-in (previously empty).Made with Cursor