mirror of https://github.com/jellyfin/jellyfin.git
Backport pull request #9355 from jellyfin/release-10.8.z
Some VAAPI VPP and OpenCL fixes
Original-merge: c807712246
Merged-by: Bond-009 <bond.009@outlook.com>
Backported-by: crobibero <cody@robibe.ro>
This commit is contained in:
parent
65090ac817
commit
f6060bd14b
|
@ -3297,7 +3297,7 @@ namespace MediaBrowser.Controller.MediaEncoding
|
||||||
|
|
||||||
// OUTPUT nv12 surface(memory)
|
// OUTPUT nv12 surface(memory)
|
||||||
// prefer hwmap to hwdownload on opencl.
|
// prefer hwmap to hwdownload on opencl.
|
||||||
var hwTransferFilter = hasGraphicalSubs ? "hwdownload" : "hwmap";
|
var hwTransferFilter = hasGraphicalSubs ? "hwdownload" : "hwmap=mode=read";
|
||||||
mainFilters.Add(hwTransferFilter);
|
mainFilters.Add(hwTransferFilter);
|
||||||
mainFilters.Add("format=nv12");
|
mainFilters.Add("format=nv12");
|
||||||
}
|
}
|
||||||
|
@ -3540,7 +3540,7 @@ namespace MediaBrowser.Controller.MediaEncoding
|
||||||
// OUTPUT nv12 surface(memory)
|
// OUTPUT nv12 surface(memory)
|
||||||
// prefer hwmap to hwdownload on opencl.
|
// prefer hwmap to hwdownload on opencl.
|
||||||
// qsv hwmap is not fully implemented for the time being.
|
// qsv hwmap is not fully implemented for the time being.
|
||||||
mainFilters.Add(isHwmapUsable ? "hwmap" : "hwdownload");
|
mainFilters.Add(isHwmapUsable ? "hwmap=mode=read" : "hwdownload");
|
||||||
mainFilters.Add("format=nv12");
|
mainFilters.Add("format=nv12");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3698,6 +3698,13 @@ namespace MediaBrowser.Controller.MediaEncoding
|
||||||
|
|
||||||
var outFormat = doTonemap ? string.Empty : "nv12";
|
var outFormat = doTonemap ? string.Empty : "nv12";
|
||||||
var hwScaleFilter = GetHwScaleFilter(isVaapiDecoder ? "vaapi" : "qsv", outFormat, inW, inH, reqW, reqH, reqMaxW, reqMaxH);
|
var hwScaleFilter = GetHwScaleFilter(isVaapiDecoder ? "vaapi" : "qsv", outFormat, inW, inH, reqW, reqH, reqMaxW, reqMaxH);
|
||||||
|
|
||||||
|
// allocate extra pool sizes for vaapi vpp
|
||||||
|
if (!string.IsNullOrEmpty(hwScaleFilter) && isVaapiDecoder)
|
||||||
|
{
|
||||||
|
hwScaleFilter += ":extra_hw_frames=24";
|
||||||
|
}
|
||||||
|
|
||||||
// hw scale
|
// hw scale
|
||||||
mainFilters.Add(hwScaleFilter);
|
mainFilters.Add(hwScaleFilter);
|
||||||
}
|
}
|
||||||
|
@ -3744,7 +3751,7 @@ namespace MediaBrowser.Controller.MediaEncoding
|
||||||
// OUTPUT nv12 surface(memory)
|
// OUTPUT nv12 surface(memory)
|
||||||
// prefer hwmap to hwdownload on opencl/vaapi.
|
// prefer hwmap to hwdownload on opencl/vaapi.
|
||||||
// qsv hwmap is not fully implemented for the time being.
|
// qsv hwmap is not fully implemented for the time being.
|
||||||
mainFilters.Add(isHwmapUsable ? "hwmap" : "hwdownload");
|
mainFilters.Add(isHwmapUsable ? "hwmap=mode=read" : "hwdownload");
|
||||||
mainFilters.Add("format=nv12");
|
mainFilters.Add("format=nv12");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3973,6 +3980,13 @@ namespace MediaBrowser.Controller.MediaEncoding
|
||||||
|
|
||||||
var outFormat = doTonemap ? string.Empty : "nv12";
|
var outFormat = doTonemap ? string.Empty : "nv12";
|
||||||
var hwScaleFilter = GetHwScaleFilter("vaapi", outFormat, inW, inH, reqW, reqH, reqMaxW, reqMaxH);
|
var hwScaleFilter = GetHwScaleFilter("vaapi", outFormat, inW, inH, reqW, reqH, reqMaxW, reqMaxH);
|
||||||
|
|
||||||
|
// allocate extra pool sizes for vaapi vpp
|
||||||
|
if (!string.IsNullOrEmpty(hwScaleFilter))
|
||||||
|
{
|
||||||
|
hwScaleFilter += ":extra_hw_frames=24";
|
||||||
|
}
|
||||||
|
|
||||||
// hw scale
|
// hw scale
|
||||||
mainFilters.Add(hwScaleFilter);
|
mainFilters.Add(hwScaleFilter);
|
||||||
}
|
}
|
||||||
|
@ -4014,7 +4028,7 @@ namespace MediaBrowser.Controller.MediaEncoding
|
||||||
|
|
||||||
// OUTPUT nv12 surface(memory)
|
// OUTPUT nv12 surface(memory)
|
||||||
// prefer hwmap to hwdownload on opencl/vaapi.
|
// prefer hwmap to hwdownload on opencl/vaapi.
|
||||||
mainFilters.Add(isHwmapNotUsable ? "hwdownload" : "hwmap");
|
mainFilters.Add(isHwmapNotUsable ? "hwdownload" : "hwmap=mode=read");
|
||||||
mainFilters.Add("format=nv12");
|
mainFilters.Add("format=nv12");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4367,6 +4381,13 @@ namespace MediaBrowser.Controller.MediaEncoding
|
||||||
|
|
||||||
outFormat = doOclTonemap ? string.Empty : "nv12";
|
outFormat = doOclTonemap ? string.Empty : "nv12";
|
||||||
var hwScaleFilter = GetHwScaleFilter("vaapi", outFormat, inW, inH, reqW, reqH, reqMaxW, reqMaxH);
|
var hwScaleFilter = GetHwScaleFilter("vaapi", outFormat, inW, inH, reqW, reqH, reqMaxW, reqMaxH);
|
||||||
|
|
||||||
|
// allocate extra pool sizes for vaapi vpp
|
||||||
|
if (!string.IsNullOrEmpty(hwScaleFilter))
|
||||||
|
{
|
||||||
|
hwScaleFilter += ":extra_hw_frames=24";
|
||||||
|
}
|
||||||
|
|
||||||
// hw scale
|
// hw scale
|
||||||
mainFilters.Add(hwScaleFilter);
|
mainFilters.Add(hwScaleFilter);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue