|
|
|
@ -1606,42 +1606,48 @@ namespace MediaBrowser.Controller.MediaEncoding
|
|
|
|
|
{
|
|
|
|
|
outputSizeParam = GetOutputSizeParam(state, options, outputVideoCodec).TrimEnd('"');
|
|
|
|
|
|
|
|
|
|
var index = outputSizeParam.IndexOf("hwdownload", StringComparison.OrdinalIgnoreCase);
|
|
|
|
|
// hwupload=extra_hw_frames=64,vpp_qsv (for overlay_qsv on linux)
|
|
|
|
|
var index = outputSizeParam.IndexOf("hwupload=extra_hw_frames", StringComparison.OrdinalIgnoreCase);
|
|
|
|
|
if (index != -1)
|
|
|
|
|
{
|
|
|
|
|
outputSizeParam = outputSizeParam.Substring(index);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
index = outputSizeParam.IndexOf("hwupload=extra_hw_frames", StringComparison.OrdinalIgnoreCase);
|
|
|
|
|
// vpp_qsv
|
|
|
|
|
index = outputSizeParam.IndexOf("vpp", StringComparison.OrdinalIgnoreCase);
|
|
|
|
|
if (index != -1)
|
|
|
|
|
{
|
|
|
|
|
outputSizeParam = outputSizeParam.Substring(index);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
index = outputSizeParam.IndexOf("format", StringComparison.OrdinalIgnoreCase);
|
|
|
|
|
// hwdownload,format=p010le (hardware decode + software encode for vaapi)
|
|
|
|
|
index = outputSizeParam.IndexOf("hwdownload", StringComparison.OrdinalIgnoreCase);
|
|
|
|
|
if (index != -1)
|
|
|
|
|
{
|
|
|
|
|
outputSizeParam = outputSizeParam.Substring(index);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
index = outputSizeParam.IndexOf("yadif", StringComparison.OrdinalIgnoreCase);
|
|
|
|
|
// format=nv12|vaapi,hwupload,scale_vaapi
|
|
|
|
|
index = outputSizeParam.IndexOf("format", StringComparison.OrdinalIgnoreCase);
|
|
|
|
|
if (index != -1)
|
|
|
|
|
{
|
|
|
|
|
outputSizeParam = outputSizeParam.Substring(index);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
index = outputSizeParam.IndexOf("scale", StringComparison.OrdinalIgnoreCase);
|
|
|
|
|
// yadif,scale=expr
|
|
|
|
|
index = outputSizeParam.IndexOf("yadif", StringComparison.OrdinalIgnoreCase);
|
|
|
|
|
if (index != -1)
|
|
|
|
|
{
|
|
|
|
|
outputSizeParam = outputSizeParam.Substring(index);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
index = outputSizeParam.IndexOf("vpp", StringComparison.OrdinalIgnoreCase);
|
|
|
|
|
// scale=expr
|
|
|
|
|
index = outputSizeParam.IndexOf("scale", StringComparison.OrdinalIgnoreCase);
|
|
|
|
|
if (index != -1)
|
|
|
|
|
{
|
|
|
|
|
outputSizeParam = outputSizeParam.Substring(index);
|
|
|
|
|