Browse Source

Allow QSV to use the renderNodePath instead of defaulting to the first available device

Evan Jarrett 10 tháng trước cách đây
mục cha
commit
51433528a1

+ 3 - 3
MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs

@@ -891,13 +891,13 @@ namespace MediaBrowser.Controller.MediaEncoding
                 renderNodePath);
                 renderNodePath);
         }
         }
 
 
-        private string GetQsvDeviceArgs(string alias)
+        private string GetQsvDeviceArgs(string renderNodePath, string alias)
         {
         {
             var arg = " -init_hw_device qsv=" + (alias ?? QsvAlias);
             var arg = " -init_hw_device qsv=" + (alias ?? QsvAlias);
             if (OperatingSystem.IsLinux())
             if (OperatingSystem.IsLinux())
             {
             {
                 // derive qsv from vaapi device
                 // derive qsv from vaapi device
-                return GetVaapiDeviceArgs(null, "iHD", "i915", null, VaapiAlias) + arg + "@" + VaapiAlias;
+                return GetVaapiDeviceArgs(renderNodePath, "iHD", "i915", null, VaapiAlias) + arg + "@" + VaapiAlias;
             }
             }
 
 
             if (OperatingSystem.IsWindows())
             if (OperatingSystem.IsWindows())
@@ -1061,7 +1061,7 @@ namespace MediaBrowser.Controller.MediaEncoding
                     return string.Empty;
                     return string.Empty;
                 }
                 }
 
 
-                args.Append(GetQsvDeviceArgs(QsvAlias));
+                args.Append(GetQsvDeviceArgs(options.VaapiDevice, QsvAlias));
                 var filterDevArgs = GetFilterHwDeviceArgs(QsvAlias);
                 var filterDevArgs = GetFilterHwDeviceArgs(QsvAlias);
                 // child device used by qsv.
                 // child device used by qsv.
                 if (_mediaEncoder.SupportsHwaccel("vaapi") || _mediaEncoder.SupportsHwaccel("d3d11va"))
                 if (_mediaEncoder.SupportsHwaccel("vaapi") || _mediaEncoder.SupportsHwaccel("d3d11va"))