import Foundation /// Was AVPlayer auf diesem Gerät nativ abspielen kann. /// /// Diese Liste ist der Grund, warum Flixy überhaupt zwei Engines hat. iOS /// spielt weder Matroska-Dateien noch DTS- oder TrueHD-Ton — und genau das /// liegt in typischen Plex-Beständen. Alles, was hier nicht steht, geht an /// VLCKit (oder ab Phase 2 an den Transcoder). public struct DeviceCapabilities: Sendable, Equatable { public var containers: Set public var videoCodecs: Set public var audioCodecs: Set public init(containers: Set, videoCodecs: Set, audioCodecs: Set) { self.containers = containers self.videoCodecs = videoCodecs self.audioCodecs = audioCodecs } /// Der Stand für iOS 26 auf allen Geräten, die diese Version tragen /// (A12 aufwärts). public static let avFoundation = DeviceCapabilities( // Kein `mkv`, kein `avi`, kein `ts`. Das ist keine Auslassung, sondern // der Kern des Problems: Matroska ist der übliche Container für // Remuxe, und AVFoundation öffnet ihn nicht. containers: ["mp4", "m4v", "mov", "qt"], // AV1 fehlt bewusst: Hardware-Dekodierung gibt es erst ab A17 Pro, und // Software-Dekodierung von 4K-AV1 bringt auch neue Geräte an die // Grenze. VLC macht das kontrollierter. videoCodecs: ["h264", "avc1", "hevc", "h265", "hvc1", "dvh1", "dvhe"], // DTS, TrueHD und Vorbis fehlen — die drei Gründe, warum ein sonst // tadelloser MP4-Film trotzdem stumm bliebe. audioCodecs: ["aac", "mp3", "ac3", "eac3", "alac", "pcm", "lpcm"] ) }