Replace subtitle codec boolean with dropdown preference
Some checks failed
Build JellyCon / build (py2) (push) Has been cancelled
Build JellyCon / build (py3) (push) Has been cancelled
CodeQL Analysis / analyze (python, 3.9) (push) Has been cancelled
Release Drafter / Update release draft (push) Has been cancelled
Test JellyCon / test (3.9) (push) Has been cancelled
Some checks failed
Build JellyCon / build (py2) (push) Has been cancelled
Build JellyCon / build (py3) (push) Has been cancelled
CodeQL Analysis / analyze (python, 3.9) (push) Has been cancelled
Release Drafter / Update release draft (push) Has been cancelled
Test JellyCon / test (3.9) (push) Has been cancelled
- 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
This commit is contained in:
@@ -1329,3 +1329,19 @@ msgstr "Abspielen mit Track-Auswahl"
|
||||
msgctxt "#30702"
|
||||
msgid "Nur Forced-Untertitel auswählen (keine normalen)"
|
||||
msgstr "Nur Forced-Untertitel auswählen (keine normalen)"
|
||||
|
||||
msgctxt "#30703"
|
||||
msgid "Untertitel-Codec-Präferenz"
|
||||
msgstr "Untertitel-Codec-Präferenz"
|
||||
|
||||
msgctxt "#30704"
|
||||
msgid "PGS bevorzugt (bessere Qualität beim Brennen)"
|
||||
msgstr "PGS bevorzugt (bessere Qualität beim Brennen)"
|
||||
|
||||
msgctxt "#30705"
|
||||
msgid "SRT bevorzugt (flexibel, kann gestreamt werden)"
|
||||
msgstr "SRT bevorzugt (flexibel, kann gestreamt werden)"
|
||||
|
||||
msgctxt "#30706"
|
||||
msgid "Keine Präferenz"
|
||||
msgstr "Keine Präferenz"
|
||||
|
||||
@@ -1320,3 +1320,19 @@ msgstr "Play with track selection"
|
||||
msgctxt "#30702"
|
||||
msgid "Only select forced subtitles (no regular subs)"
|
||||
msgstr "Only select forced subtitles (no regular subs)"
|
||||
|
||||
msgctxt "#30703"
|
||||
msgid "Subtitle codec preference"
|
||||
msgstr "Subtitle codec preference"
|
||||
|
||||
msgctxt "#30704"
|
||||
msgid "Prefer PGS (better quality when burned)"
|
||||
msgstr "Prefer PGS (better quality when burned)"
|
||||
|
||||
msgctxt "#30705"
|
||||
msgid "Prefer SRT (flexible, can be streamed)"
|
||||
msgstr "Prefer SRT (flexible, can be streamed)"
|
||||
|
||||
msgctxt "#30706"
|
||||
msgid "No preference"
|
||||
msgstr "No preference"
|
||||
|
||||
@@ -811,7 +811,13 @@ def audio_subs_pref(url, list_item, media_source, item_id, audio_stream_index, s
|
||||
|
||||
prefer_forced = settings.getSetting("prefer_forced_subtitles") == "true"
|
||||
only_forced = settings.getSetting("only_forced_subtitles") == "true"
|
||||
prefer_srt = settings.getSetting("prefer_srt_over_pgs") == "true"
|
||||
|
||||
# Subtitle codec preference: 0=PGS, 1=SRT, 2=No preference
|
||||
codec_pref_index = int(settings.getSetting("subtitle_codec_preference") or "0")
|
||||
prefer_pgs = codec_pref_index == 0
|
||||
prefer_srt = codec_pref_index == 1
|
||||
# codec_pref_index == 2 means no preference (both prefer_pgs and prefer_srt are False)
|
||||
|
||||
auto_no_subs = settings.getSetting("auto_no_subtitles_if_no_match") == "true"
|
||||
|
||||
# Language code mapping for better matching
|
||||
@@ -966,8 +972,8 @@ def audio_subs_pref(url, list_item, media_source, item_id, audio_stream_index, s
|
||||
auto_selected = None
|
||||
best_score = -1
|
||||
|
||||
log.debug("Auto-selecting subtitle: preferred_lang={0}, prefer_forced={1}, only_forced={2}, prefer_srt={3}".format(
|
||||
preferred_sub_lang, prefer_forced, only_forced, prefer_srt))
|
||||
log.debug("Auto-selecting subtitle: preferred_lang={0}, prefer_forced={1}, only_forced={2}, prefer_pgs={3}, prefer_srt={4}".format(
|
||||
preferred_sub_lang, prefer_forced, only_forced, prefer_pgs, prefer_srt))
|
||||
|
||||
for stream in subtitle_streams_data:
|
||||
score = 0
|
||||
@@ -990,10 +996,10 @@ def audio_subs_pref(url, list_item, media_source, item_id, audio_stream_index, s
|
||||
if prefer_forced and is_forced:
|
||||
score += 50
|
||||
|
||||
# Bonus for SRT if preferred
|
||||
if prefer_srt and codec in ['subrip', 'srt']:
|
||||
# Bonus for codec preference
|
||||
if prefer_pgs and codec in ['hdmv_pgs_subtitle', 'pgs']:
|
||||
score += 30
|
||||
elif not prefer_srt and codec in ['hdmv_pgs_subtitle', 'pgs']:
|
||||
elif prefer_srt and codec in ['subrip', 'srt']:
|
||||
score += 30
|
||||
|
||||
# Small bonus for default
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
<setting id="preferred_subtitle_language" type="select" label="30688" lvalues="30699|30691|30692|30693|30694|30695|30696|30697|30698" default="1" visible="true"/>
|
||||
<setting id="prefer_forced_subtitles" type="bool" label="30689" default="true" visible="true"/>
|
||||
<setting id="only_forced_subtitles" type="bool" label="30702" default="true" visible="true"/>
|
||||
<setting id="prefer_srt_over_pgs" type="bool" label="30690" default="false" visible="true"/>
|
||||
<setting id="subtitle_codec_preference" type="select" label="30703" lvalues="30704|30705|30706" default="0" visible="true"/>
|
||||
<setting id="auto_no_subtitles_if_no_match" type="bool" label="30700" default="true" visible="true"/>
|
||||
<setting id="max_play_queue" type="slider" label="30447" default="200" range="20, 10, 1000" option="int" visible="true"/>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user