jellyflood/Shared/Extensions/JellyfinAPI/SubtitleProfile.swift
Joe Kribs e901317317
[iOS] Fix External Subtitle Selection (#1445)
* | 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>
2025-03-14 13:40:18 -04:00

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)
}
}
}