* Rename ExperimentalSettingsView.swift to PlaybackQualitySettingsView.swift Fix Merge * Rename MaximumBitrateSettingsView.swift to PlaybackQualitySettingsView.swift fix merge * Re-implement on Main. Should now have all the Main changed. Added a new change to use the Device Profile as a Transcoding Profile. * Part 1 -> Making VideoPlayerType into a struct (I Hope) correctly * Part 1.1 -> Making VideoPlayerType into a struct (I Hope) correctly * Remove unneeded Files * Missing file + CustomDeviceProfileSelection -> CustomDeviceProfileAction Rename * Change + to Appending * Attempt to add StorageValues+User. Not sure if this is correct? * Move the Array unwrapping to funcitons. Not required but this should help prevent accidently doing this wrong. Add subtitles back into the custom profiles since that somehow got dropped. Added a PlaybackCompatibility enum. This might need to work for more than just video * Complete rewrite to allow multiple profiles, compatibility mode, and directplay. * Hardward -> Hardware * Update CustomDeviceProfileSettingsView.swift Double Licensing * It was actually really easy to implement iOS... Trash cans still look weird and small. * Swipe to Delete instead of the edit button * wip * wip * Linting * tvOS Implementation * wip * wip * cleanup * Create Package.resolved --------- Co-authored-by: Joseph Kribs <joseph@kribs.net> Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
91 lines
1.9 KiB
Swift
91 lines
1.9 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) 2024 Jellyfin & Jellyfin Contributors
|
|
//
|
|
|
|
import Defaults
|
|
|
|
enum VideoCodec: String, CaseIterable, Codable, Displayable, Defaults.Serializable {
|
|
|
|
case av1
|
|
case dv
|
|
case dirac
|
|
case ffv1
|
|
case flv1
|
|
case h261
|
|
case h263
|
|
case h264
|
|
case hevc
|
|
case mjpeg
|
|
case mpeg1video
|
|
case mpeg2video
|
|
case mpeg4
|
|
case msmpeg4v1
|
|
case msmpeg4v2
|
|
case msmpeg4v3
|
|
case prores
|
|
case theora
|
|
case vc1
|
|
case vp8
|
|
case vp9
|
|
case wmv1
|
|
case wmv2
|
|
case wmv3
|
|
|
|
var displayTitle: String {
|
|
switch self {
|
|
case .av1:
|
|
return "AV1"
|
|
case .dv:
|
|
return "DV"
|
|
case .dirac:
|
|
return "Dirac"
|
|
case .ffv1:
|
|
return "FFV1"
|
|
case .flv1:
|
|
return "FLV1"
|
|
case .h261:
|
|
return "H.261"
|
|
case .h263:
|
|
return "H.263"
|
|
case .h264:
|
|
return "H.264"
|
|
case .hevc:
|
|
return "HEVC"
|
|
case .mjpeg:
|
|
return "MJPEG"
|
|
case .mpeg1video:
|
|
return "MPEG-1 Video"
|
|
case .mpeg2video:
|
|
return "MPEG-2 Video"
|
|
case .mpeg4:
|
|
return "MPEG-4"
|
|
case .msmpeg4v1:
|
|
return "MS MPEG-4 v1"
|
|
case .msmpeg4v2:
|
|
return "MS MPEG-4 v2"
|
|
case .msmpeg4v3:
|
|
return "MS MPEG-4 v3"
|
|
case .prores:
|
|
return "ProRes"
|
|
case .theora:
|
|
return "Theora"
|
|
case .vc1:
|
|
return "VC-1"
|
|
case .vp8:
|
|
return "VP8"
|
|
case .vp9:
|
|
return "VP9"
|
|
case .wmv1:
|
|
return "WMV1"
|
|
case .wmv2:
|
|
return "WMV2"
|
|
case .wmv3:
|
|
return "WMV3"
|
|
}
|
|
}
|
|
}
|