From ad026cecc128f100ee508c3898d0464ecc274fa9 Mon Sep 17 00:00:00 2001 From: edde746 <86283021+edde746@users.noreply.github.com> Date: Sat, 29 Aug 2026 17:39:35 +0200 Subject: [PATCH] fix(player): keep hardware decoding after a transient VideoToolbox failure Some HEVC files carry a frame Apple's hardware decoder refuses to decode (kVTVideoDecoderBadDataErr on an otherwise conformant P-frame). mpv fell back to software decoding for the rest of the file after the first error, and 4K HEVC software decode drops frames every few minutes on Apple TV. MPVKit b8b922ec carries an mpv vd_lavc patch that keeps the configured fast fallback while probing but lets a hardware decoder that has already delivered frames ride out a mid-stream error burst: the burst one undecodable frame causes ends at the next keyframe by construction, so fallback now requires errors to survive two keyframe intervals. Verified against the reporter's sample: playback logs "Hardware decoding recovered after 90 errored frames" and stays on VideoToolbox instead of switching to software. close #2167 --- ios/Runner.xcodeproj/project.pbxproj | 2 +- .../project.xcworkspace/xcshareddata/swiftpm/Package.resolved | 2 +- ios/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved | 2 +- macos/Runner.xcodeproj/project.pbxproj | 2 +- .../project.xcworkspace/xcshareddata/swiftpm/Package.resolved | 2 +- macos/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved | 2 +- tvos/Runner.xcodeproj/project.pbxproj | 2 +- .../project.xcworkspace/xcshareddata/swiftpm/Package.resolved | 2 +- tvos/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 190884399..9f0398a27 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -802,7 +802,7 @@ repositoryURL = "https://github.com/edde746/MPVKit"; requirement = { kind = revision; - revision = 0097fea015fe9b59bcfed866e61acb5896454bd4; + revision = b8b922ec74b84ac3a496e29e226a3a3e91491045; }; }; /* End XCRemoteSwiftPackageReference section */ diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 7904f3955..753ae7fee 100644 --- a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -32,7 +32,7 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/edde746/MPVKit", "state" : { - "revision" : "0097fea015fe9b59bcfed866e61acb5896454bd4" + "revision" : "b8b922ec74b84ac3a496e29e226a3a3e91491045" } }, { diff --git a/ios/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved b/ios/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved index 7904f3955..753ae7fee 100644 --- a/ios/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/ios/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -32,7 +32,7 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/edde746/MPVKit", "state" : { - "revision" : "0097fea015fe9b59bcfed866e61acb5896454bd4" + "revision" : "b8b922ec74b84ac3a496e29e226a3a3e91491045" } }, { diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj index d87731232..fd190ecda 100644 --- a/macos/Runner.xcodeproj/project.pbxproj +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -895,7 +895,7 @@ repositoryURL = "https://github.com/edde746/MPVKit"; requirement = { kind = revision; - revision = 0097fea015fe9b59bcfed866e61acb5896454bd4; + revision = b8b922ec74b84ac3a496e29e226a3a3e91491045; }; }; /* End XCRemoteSwiftPackageReference section */ diff --git a/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index f852d37b0..01fc288b4 100644 --- a/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -5,7 +5,7 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/edde746/MPVKit", "state" : { - "revision" : "0097fea015fe9b59bcfed866e61acb5896454bd4" + "revision" : "b8b922ec74b84ac3a496e29e226a3a3e91491045" } }, { diff --git a/macos/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved b/macos/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved index f852d37b0..01fc288b4 100644 --- a/macos/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/macos/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -5,7 +5,7 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/edde746/MPVKit", "state" : { - "revision" : "0097fea015fe9b59bcfed866e61acb5896454bd4" + "revision" : "b8b922ec74b84ac3a496e29e226a3a3e91491045" } }, { diff --git a/tvos/Runner.xcodeproj/project.pbxproj b/tvos/Runner.xcodeproj/project.pbxproj index 3d56bbc2c..a7daa8875 100644 --- a/tvos/Runner.xcodeproj/project.pbxproj +++ b/tvos/Runner.xcodeproj/project.pbxproj @@ -1165,7 +1165,7 @@ repositoryURL = "https://github.com/edde746/MPVKit"; requirement = { kind = revision; - revision = 0097fea015fe9b59bcfed866e61acb5896454bd4; + revision = b8b922ec74b84ac3a496e29e226a3a3e91491045; }; }; /* End XCRemoteSwiftPackageReference section */ diff --git a/tvos/Runner.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/tvos/Runner.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index ee1e8b33e..1a4d479df 100644 --- a/tvos/Runner.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/tvos/Runner.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -6,7 +6,7 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/edde746/MPVKit", "state" : { - "revision" : "0097fea015fe9b59bcfed866e61acb5896454bd4" + "revision" : "b8b922ec74b84ac3a496e29e226a3a3e91491045" } } ], diff --git a/tvos/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved b/tvos/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved index ee1e8b33e..1a4d479df 100644 --- a/tvos/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/tvos/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -6,7 +6,7 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/edde746/MPVKit", "state" : { - "revision" : "0097fea015fe9b59bcfed866e61acb5896454bd4" + "revision" : "b8b922ec74b84ac3a496e29e226a3a3e91491045" } } ],