* | Type | Internal Subtitles | Internal Audio | External Subtitles | External Audio | |---------------|-----------------|--------------------|----------------|----------------| | Transcode | ✅ | ❌ | ✅ | ❌ | | DirectPlay | ✅ | ✅ | ✅ | ✅* | * WIP - GetMasterHlsVideoPlaylistParameters * WIP * Cleanup unused code. * Cleanup comments. * Remove changes to GetMasterHlsVideoPlaylistParameters * Change to use Max instead of a magic number. * Update MediaStream.swift Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com> * Update MediaStream.swift Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com> * Update MediaStream.swift Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com> * Update MediaStream.swift Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com> * New and Improved. * Ensure we are using the right audio track. --------- Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
41 lines
1.1 KiB
Swift
41 lines
1.1 KiB
Swift
//
|
|
// Swiftfin is subject to the terms of the Mozilla Public
|
|
// License, v2.0. If a copy of the MPL was not distributed with this
|
|
// file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
|
//
|
|
// Copyright (c) 2025 Jellyfin & Jellyfin Contributors
|
|
//
|
|
|
|
import Foundation
|
|
import JellyfinAPI
|
|
|
|
extension SubtitleProfile {
|
|
|
|
init(
|
|
didlMode: String? = nil,
|
|
format: String? = nil,
|
|
language: String? = nil,
|
|
method: SubtitleDeliveryMethod? = nil,
|
|
@ArrayBuilder<SubtitleFormat> containers: () -> String = { "" }
|
|
) {
|
|
let containers = containers()
|
|
|
|
self.init(
|
|
container: containers.isEmpty ? nil : containers,
|
|
didlMode: didlMode,
|
|
format: format,
|
|
language: language,
|
|
method: method
|
|
)
|
|
}
|
|
|
|
static func build(
|
|
method: SubtitleDeliveryMethod,
|
|
@ArrayBuilder<SubtitleFormat> containers: () -> [SubtitleFormat]
|
|
) -> [SubtitleProfile] {
|
|
containers().map {
|
|
SubtitleProfile(container: nil, format: $0.rawValue, method: method)
|
|
}
|
|
}
|
|
}
|