jellyflood/Shared/Objects/MediaComponents/VideoCodec.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) 2025 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"
}
}
}