Skip to content

Commit 27b80d5

Browse files
committed
use existing source validator
1 parent cebb512 commit 27b80d5

3 files changed

Lines changed: 13 additions & 24 deletions

File tree

Code/Sideloaded-TextTracks/Sources/THEOplayerConnectorSideloadedSubtitle/Extensions/URL+Extensions.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,19 +31,19 @@ extension URL {
3131

3232
var isValid: Bool {
3333
guard self.scheme != nil else {
34-
print("URL scheme is invalid or missing.")
34+
print("[AVSubtitlesLoader] URL scheme is invalid or missing.")
3535
return false
3636
}
3737

3838
guard let host = self.host,
3939
!host.isEmpty else {
40-
print("URL host is invalid or missing.")
40+
print("[AVSubtitlesLoader] URL host is invalid or missing.")
4141
return false
4242
}
4343

4444
let disallowedCharacterSet = CharacterSet.urlQueryAllowed.inverted
4545
guard self.absoluteString.rangeOfCharacter(from: disallowedCharacterSet) == nil else {
46-
print("URL contains invalid characters.")
46+
print("[AVSubtitlesLoader] URL contains invalid characters.")
4747
return false
4848
}
4949

Code/Sideloaded-TextTracks/Sources/THEOplayerConnectorSideloadedSubtitle/Parsers/MasterPlaylistParser.swift

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ class MasterPlaylistParser: PlaylistParser {
1212
var constructedManifestArray = [String]()
1313
fileprivate var lastMediaLine: Int?
1414
fileprivate let subtitlesGroupId = "THEOsubs"
15-
private var extXMediaSubtitlesOriginallyExists = false
1615

1716
override init(url: URL) {
1817
super.init(url: url)
@@ -21,25 +20,8 @@ class MasterPlaylistParser: PlaylistParser {
2120
func sideLoadSubtitles(subtitles: [TextTrackDescription], completion: @escaping (_ data: Data?) -> ()) {
2221
self.loadManifest { succ in
2322
if succ {
24-
let validSubtitles = subtitles.filter { subtitle in
25-
guard subtitle.src.isValid == true else {
26-
print("The provided subtitle source \(subtitle.src.absoluteString) is invalid")
27-
return false
28-
}
29-
return true
30-
}
3123
self.parseManifest()
32-
self.appendSubtitlesLines(subtitles: validSubtitles)
33-
if !self.extXMediaSubtitlesOriginallyExists,
34-
validSubtitles.isEmpty {
35-
// when the original m3u8 does not have any subtitles, and there are no valid subtitles to sideload
36-
// then we remove the added subs attribute from the ExtXStreamInf entries
37-
for (i, ele) in self.constructedManifestArray.enumerated() {
38-
let line = HLSLine(lineString: ele)
39-
line.paramsObject.removeValue(forKey: HLSKeywords.subtitles.rawValue)
40-
self.constructedManifestArray[i] = line.joinLine()
41-
}
42-
}
24+
self.appendSubtitlesLines(subtitles: subtitles)
4325
let constructed = self.constructedManifestArray.joined(separator: "\n")
4426

4527
if THEOplayerConnectorSideloadedSubtitle.SHOW_DEBUG_LOGS {
@@ -77,7 +59,7 @@ class MasterPlaylistParser: PlaylistParser {
7759
case HLSKeywords.subtitles.rawValue:
7860
line.paramsObject[HLSKeywords.groupId.rawValue] = "\"\(self.subtitlesGroupId)\""
7961
self.lastMediaLine = self.constructedManifestArray.count
80-
self.extXMediaSubtitlesOriginallyExists = true
62+
8163
default:
8264
break
8365
}

Code/Sideloaded-TextTracks/Sources/THEOplayerConnectorSideloadedSubtitle/Utils/SourceValidator.swift

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,14 @@ class SourceValidator {
1515
return nil
1616
}
1717

18-
let filteredTextTracks = sideLoadedTextTracks.filter { $0.kind == .subtitles }
18+
let subtitlesTextTracks = sideLoadedTextTracks.filter { $0.kind == .subtitles }
19+
let filteredTextTracks = subtitlesTextTracks.filter { subtitle in
20+
guard subtitle.src.isValid == true else {
21+
print("[AVSubtitlesLoader] The provided subtitle source \(subtitle.src.absoluteString) is invalid.")
22+
return false
23+
}
24+
return true
25+
}
1926
if filteredTextTracks.isEmpty {
2027
print("[AVSubtitlesLoader] Unable to find a valid TextTrackDescription for sideloading.")
2128
return nil

0 commit comments

Comments
 (0)