aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBond-009 <bond.009@outlook.com>2025-06-19 11:26:37 +0200
committerGitHub <noreply@github.com>2025-06-19 11:26:37 +0200
commit6996c8a1defbc8f5eeec03a291246e2c8cb457fe (patch)
tree5f1c448df8639b2a300c12dcc319207ef1f9a51f
parentf9766300035de70a8b709641fd4a3e3e7964dceb (diff)
parente8291fc856bcc5f18e4ed6538a841642bb29f6b2 (diff)
Merge pull request #14330 from jellyfin/qsv-dx11-static-pool
Fix QSV "static surface pool size exceeded" on Windows
-rw-r--r--MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs7
1 files changed, 7 insertions, 0 deletions
diff --git a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs
index 26d4c4fcf..a1fafb024 100644
--- a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs
+++ b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs
@@ -4442,6 +4442,13 @@ namespace MediaBrowser.Controller.MediaEncoding
var swapOutputWandH = doVppTranspose && swapWAndH;
var hwScaleFilter = GetHwScaleFilter("vpp", "qsv", outFormat, swapOutputWandH, swpInW, swpInH, reqW, reqH, reqMaxW, reqMaxH);
+ // d3d11va doesn't support dynamic pool size, use vpp filter ctx to relay
+ // to prevent encoder async and bframes from exhausting the decoder pool.
+ if (!string.IsNullOrEmpty(hwScaleFilter) && isD3d11vaDecoder)
+ {
+ hwScaleFilter += ":passthrough=0";
+ }
+
if (!string.IsNullOrEmpty(hwScaleFilter) && doVppTranspose)
{
hwScaleFilter += $":transpose={transposeDir}";