Skip to content

Conversation

RyuzakiKK
Copy link
Contributor

@RyuzakiKK RyuzakiKK commented May 27, 2025

Changes
If the capabilities of a device change, Exoplayer can invalidate the current selection to adhere to the new list of capabilities.

This helps the Nvidia Shield and its content matching refresh rate option because, during the refresh rate switching period, the reported capabilities change. Without this flag, the device could reproduce audio as PCM instead of the expected passthrough.

Issues
Addresses #4067, additional context androidx/media#2258

I'm using "addresses" because I don't want to automatically close #4067. To fully fix it, we also need to bump media3 to the upcoming release (1.6.1+) because we need androidx/media@f825ad7 and androidx/media@93cf82d. On that matter, we probably just need to wait for them to tag a new release (bumping media3 is not a blocker for this PR).

Copy link
Member

@nielsvanvelzen nielsvanvelzen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change also needs to be made in the new playback code (ExoPlayerBackend.kt)

If the capabilities of a device change, Exoplayer can invalidate the
current selection to adhere to the new list of capabilities.

This helps the Nvidia Shield and its content matching refresh rate
option because, during the refresh rate switching period, the reported
capabilities change. Without this flag, the device could reproduce audio
as PCM instead of the expected passthrough.

Addresses jellyfin#4067,
additional context androidx/media#2258
@nielsvanvelzen nielsvanvelzen added this to the v0.19.0 milestone May 30, 2025
@nielsvanvelzen nielsvanvelzen added bug Something isn't working backportable Change may be backported to a point release (remove label once cherrypicked) labels May 30, 2025
@nielsvanvelzen
Copy link
Member

Thanks for the PR and the effort you put into a good solution from the media3 side!

@nielsvanvelzen nielsvanvelzen merged commit 95f8e4d into jellyfin:master May 30, 2025
5 checks passed
@nielsvanvelzen nielsvanvelzen modified the milestones: v0.19.0, v0.18.11 Jul 4, 2025
@nielsvanvelzen nielsvanvelzen removed the backportable Change may be backported to a point release (remove label once cherrypicked) label Jul 4, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Refresh rate switching forces audio to be played in PCM
2 participants