From 617af2cd20b6846aaab5a762115b1d51367d9939 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Toni=20F=C3=B6rster?= Date: Fri, 30 Aug 2024 22:04:31 +0200 Subject: [PATCH] format ordering adapted MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - MP4 contains av1 encoded video which is not hardware accelerated. - MP4 format removed from AVPlayer Signed-off-by: Toni Förster --- Model/Player/Backends/AVPlayerBackend.swift | 2 +- Model/Player/PlayerModel.swift | 2 +- Model/QualityProfile.swift | 16 ++++++++-------- Shared/Settings/QualityProfileForm.swift | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Model/Player/Backends/AVPlayerBackend.swift b/Model/Player/Backends/AVPlayerBackend.swift index 89ccce7d..a26e65f9 100644 --- a/Model/Player/Backends/AVPlayerBackend.swift +++ b/Model/Player/Backends/AVPlayerBackend.swift @@ -122,7 +122,7 @@ final class AVPlayerBackend: PlayerBackend { } func canPlay(_ stream: Stream) -> Bool { - stream.kind == .hls || stream.kind == .stream || (stream.kind == .adaptive && stream.format == .mp4) + stream.kind == .hls || stream.kind == .stream } func playStream( diff --git a/Model/Player/PlayerModel.swift b/Model/Player/PlayerModel.swift index 3ca7cada..587f3d56 100644 --- a/Model/Player/PlayerModel.swift +++ b/Model/Player/PlayerModel.swift @@ -684,7 +684,7 @@ final class PlayerModel: ObservableObject { } // First, we need to create an array with supported formats. - let formatOrderPiP: [QualityProfile.Format] = [.hls, .stream, .mp4] + let formatOrderPiP: [QualityProfile.Format] = [.stream, .hls] guard let video = currentVideo else { return } guard let stream = avPlayerBackend.bestPlayable(availableStreams, maxResolution: .hd720p30, formatOrder: formatOrderPiP) else { return } diff --git a/Model/QualityProfile.swift b/Model/QualityProfile.swift index 3eac21a8..ea7e3fa3 100644 --- a/Model/QualityProfile.swift +++ b/Model/QualityProfile.swift @@ -7,10 +7,10 @@ struct QualityProfile: Hashable, Identifiable, Defaults.Serializable { enum Format: String, CaseIterable, Identifiable, Defaults.Serializable { case avc1 - case mp4 case stream - case av1 case webm + case mp4 + case av1 case hls var id: String { @@ -30,16 +30,16 @@ struct QualityProfile: Hashable, Identifiable, Defaults.Serializable { var streamFormat: Stream.Format? { switch self { - case .av1: - return .av1 - case .mp4: - return .mp4 - case .stream: - return nil case .avc1: return .avc1 + case .stream: + return nil case .webm: return .webm + case .mp4: + return .mp4 + case .av1: + return .av1 case .hls: return nil } diff --git a/Shared/Settings/QualityProfileForm.swift b/Shared/Settings/QualityProfileForm.swift index 7ce8c0b1..9bd7033b 100644 --- a/Shared/Settings/QualityProfileForm.swift +++ b/Shared/Settings/QualityProfileForm.swift @@ -301,7 +301,7 @@ struct QualityProfileForm: View { func isFormatDisabled(_ format: QualityProfile.Format) -> Bool { guard backend == .appleAVPlayer else { return false } - let avPlayerFormats = [.mp4, .stream, QualityProfile.Format.hls] + let avPlayerFormats = [.stream, QualityProfile.Format.hls] return !avPlayerFormats.contains(format) }