- Replace prefer_srt_over_pgs boolean with subtitle_codec_preference dropdown
Options: 0=Prefer PGS (default), 1=Prefer SRT, 2=No preference
- More intuitive UI with descriptive labels:
- PGS bevorzugt (bessere Qualität beim Brennen)
- SRT bevorzugt (flexibel, kann gestreamt werden)
- Keine Präferenz
- Update scoring logic to handle three states instead of two
- Clarify that only_forced filter applies only during auto-selection
Manual selection via dialog still shows all subtitles
- Change prefer_srt_over_pgs default from true to false
PGS has better quality when burned in during transcoding
- Add only_forced_subtitles setting (default: true)
When enabled, only forced subtitles are selected
Regular subtitles are skipped even if they match the language
- Skip non-forced subtitles in auto-selection when only_forced is enabled
Prevents selecting regular German subs when watching German content
Only shows forced subs for foreign language parts
This is useful for native language content where only foreign
language parts need subtitles (forced), not the entire movie.
Context Menu Integration:
- Add 'Play with track selection' option to video context menus
- Available for movies and episodes via long-press/context menu
- Forces manual track selection dialog even when auto-selection is configured
Language Selection Improvements:
- Add dropdown selectors for preferred audio/subtitle languages
- Support German, English, French, Spanish, Italian, Japanese, Russian
- Add comprehensive language matching (e.g., 'ger' matches 'deu', 'deutsch', 'german')
- Add setting to auto-select 'No subtitles' when no matching subtitle found
Track Selection Scoring System:
- Audio tracks: Language match (+100), default flag (+50),
channel count (+5-40), codec quality (+10-30), exclude commentary (-100)
- Subtitle tracks: Language match (+100), forced flag (+50),
SRT preference (+30), default flag (+10)
Implementation Details:
- Add force_track_selection parameter throughout playback chain
- Preserve server/remote control track selections when not forcing manual selection
- Add extensive debug logging for track selection decisions
- Respect user preferences while allowing manual override via context menu
- Add transcode target codec logic to get_play_url function
- Add debug logging to track codec selection
- Remove redundant enable="true" attributes in settings.xml
The get_play_url function was still using hardcoded h264, which caused
the transcode target codec setting to not take effect for direct
transcode URLs.
Adds new playback options to select transcode target codec (H.264, H.265/HEVC, AV1) and force H.264 transcoding. This enables optimal codec selection for client hardware, especially useful for devices with H.265 hardware decoding like Raspberry Pi 5. Target codec and source codec filtering now work independently for maximum flexibility.