From af9da4bba9f3e91f38beaa0d92db4a3c6c3dfa09 Mon Sep 17 00:00:00 2001 From: kingslay Date: Mon, 13 Nov 2023 22:12:29 +0800 Subject: [PATCH] add video type #528 --- FFmpegKit | 2 +- Sources/KSPlayer/AVPlayer/PlayerDefines.swift | 15 +++++++++++++++ Sources/KSPlayer/MEPlayer/MEPlayerItem.swift | 2 +- Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift | 3 ++- 4 files changed, 19 insertions(+), 3 deletions(-) diff --git a/FFmpegKit b/FFmpegKit index 4e0f718da..c8efc4124 160000 --- a/FFmpegKit +++ b/FFmpegKit @@ -1 +1 @@ -Subproject commit 4e0f718dab5267e30b3f3a5b7d29c2254c9dd629 +Subproject commit c8efc41248a111b5a57ee85256da93f502c200b9 diff --git a/Sources/KSPlayer/AVPlayer/PlayerDefines.swift b/Sources/KSPlayer/AVPlayer/PlayerDefines.swift index f47d83662..a081739f8 100644 --- a/Sources/KSPlayer/AVPlayer/PlayerDefines.swift +++ b/Sources/KSPlayer/AVPlayer/PlayerDefines.swift @@ -62,6 +62,21 @@ public enum DynamicRange: Int32 { #endif } +extension DynamicRange: CustomStringConvertible { + public var description: String { + switch self { + case .sdr: + return "SDR" + case .hdr10: + return "HDR10" + case .hlg: + return "HDR" + case .dolbyVision: + return "Dolby Vision" + } + } +} + extension DynamicRange { var colorPrimaries: CFString { switch self { diff --git a/Sources/KSPlayer/MEPlayer/MEPlayerItem.swift b/Sources/KSPlayer/MEPlayer/MEPlayerItem.swift index fb3134c99..d1edc186f 100644 --- a/Sources/KSPlayer/MEPlayer/MEPlayerItem.swift +++ b/Sources/KSPlayer/MEPlayer/MEPlayerItem.swift @@ -82,7 +82,7 @@ final class MEPlayerItem { lazy var dynamicInfo = DynamicInfo { [weak self] in toDictionary(self?.formatCtx?.pointee.metadata) } bytesRead: { [weak self] in - self?.formatCtx?.pointee.pb.pointee.bytes_read ?? 0 + self?.formatCtx?.pointee.pb?.pointee.bytes_read ?? 0 } audioBitrate: { [weak self] in Int(8 * (self?.audioTrack?.bitrate ?? 0)) } videoBitrate: { [weak self] in diff --git a/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift b/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift index de67eccdd..d62926356 100644 --- a/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift +++ b/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift @@ -503,8 +503,9 @@ struct VideoSettingView: View { Text(track.description).tag(track.trackID as Int32?) } } label: { - Label("Video track", systemImage: "video.fill") + Label("Video Track", systemImage: "video.fill") } + LabeledContent("Video Type", value: (videoTracks.first { $0.isEnabled }?.dynamicRange ?? .sdr).description) } Picker(selection: Binding { subtitleModel.selectedSubtitleInfo?.subtitleID