Merge pull request #1633 from 1hitsong/fixTextOnlySubtitleOptionList

Allow subtitles to have more than 1 type
This commit is contained in:
1hitsong 2024-01-12 15:47:09 -05:00 committed by GitHub
commit c4fe6a8c48
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -250,7 +250,7 @@ function defaultSubtitleTrackFromVid(videoID) as integer
subtitles = sortSubtitles(meta.id, meta.json.MediaSources[0].MediaStreams)
selectedAudioLanguage = meta.json.MediaSources[0].MediaStreams[m.top.selectedAudioStreamIndex].Language ?? ""
defaultTextSubs = defaultSubtitleTrack(subtitles["all"], selectedAudioLanguage, true) ' Find correct subtitle track (forced text)
defaultTextSubs = defaultSubtitleTrack(subtitles["text"], selectedAudioLanguage, true) ' Find correct subtitle track (forced text)
if defaultTextSubs <> SubtitleSelection.none
return defaultTextSubs
end if
@ -494,26 +494,33 @@ function sortSubtitles(id as string, MediaStreams)
"IsExternal": stream.IsExternal,
"IsEncoded": stream.DeliveryMethod = "Encode"
}
if stream.isForced
trackType = "forced"
else if stream.IsDefault
trackType = "default"
else if stream.IsTextSubtitleStream
trackType = "text"
else
trackType = "normal"
end if
if prefered_lang <> "" and prefered_lang = stream.Track.Language
tracks[trackType].unshift(stream)
if stream.IsTextSubtitleStream
tracks["text"].unshift(stream)
end if
else
tracks[trackType].push(stream)
if stream.IsTextSubtitleStream
tracks["text"].push(stream)
end if
end if
end if
end for
tracks["default"].append(tracks["normal"])
tracks["forced"].append(tracks["default"])
tracks["forced"].append(tracks["text"])
return { "all": tracks["forced"], "text": tracks["text"] }
end function