mirror of
https://github.com/yattee/yattee.git
synced 2026-08-06 07:11:28 +00:00
iOS invalidates VideoToolbox sessions when the app is backgrounded. FFmpeg's generic reconfig path restarts the session, but for AV1 every inter frame then errors until the next keyframe, so mpv counted 3 consecutive errors and permanently fell back to software decoding (heat/battery drain). The previous app-side polling recovery worked but each reinit caused a refresh seek (audio flush + time jump). The fork release (yattee/MPVKit 1.0.1, mpv v0.41.0 / FFmpeg n8.1.2) carries an FFmpeg patch that fixes this at the decoder layer: on session-level failure it keeps outputting the last successfully decoded frame instead of erroring, retries the session restart with a 30-frame backoff while backgrounded, and resumes live decode at the next keyframe. Audio never stops, no seek, hardware decoding recovers transparently - matching H.264/HEVC behavior. The app-side recovery machinery (runHwdecRecoveryCheck) is no longer needed and has been removed.
34 lines
894 B
Plaintext
34 lines
894 B
Plaintext
{
|
|
"originHash" : "3936a4172c132dff2ced455a1771e12f4759645440fa59d5b93f5a78b68d3ee4",
|
|
"pins" : [
|
|
{
|
|
"identity" : "mpvkit",
|
|
"kind" : "remoteSourceControl",
|
|
"location" : "https://github.com/yattee/MPVKit.git",
|
|
"state" : {
|
|
"revision" : "671d3484b00f438407564573a4e188631d81bc90",
|
|
"version" : "1.0.1"
|
|
}
|
|
},
|
|
{
|
|
"identity" : "nuke",
|
|
"kind" : "remoteSourceControl",
|
|
"location" : "https://github.com/kean/Nuke",
|
|
"state" : {
|
|
"revision" : "83e19143355b02e9261edb2323b3e1e93287ebb9",
|
|
"version" : "12.9.0"
|
|
}
|
|
},
|
|
{
|
|
"identity" : "sparkle",
|
|
"kind" : "remoteSourceControl",
|
|
"location" : "https://github.com/sparkle-project/Sparkle",
|
|
"state" : {
|
|
"revision" : "b6496a74a087257ef5e6da1c5b29a447a60f5bd7",
|
|
"version" : "2.9.4"
|
|
}
|
|
}
|
|
],
|
|
"version" : 3
|
|
}
|