|
@@ -1531,11 +1531,18 @@ namespace MediaBrowser.Controller.MediaEncoding
|
|
|
/// <returns>System.Int32.</returns>
|
|
|
public int GetNumberOfThreads(EncodingJobInfo state, EncodingOptions encodingOptions, bool isWebm)
|
|
|
{
|
|
|
- var threads = GetNumberOfThreadsInternal(state, encodingOptions, isWebm);
|
|
|
+ if (isWebm)
|
|
|
+ {
|
|
|
+ // Recommended per docs
|
|
|
+ return Math.Max(Environment.ProcessorCount - 1, 2);
|
|
|
+ }
|
|
|
+
|
|
|
+ var threads = state.BaseRequest.CpuCoreLimit ?? encodingOptions.EncodingThreadCount;
|
|
|
|
|
|
- if (state.BaseRequest.CpuCoreLimit.HasValue && state.BaseRequest.CpuCoreLimit.Value > 0)
|
|
|
+ // Automatic
|
|
|
+ if (threads <= 0 || threads >= Environment.ProcessorCount)
|
|
|
{
|
|
|
- threads = Math.Min(threads, state.BaseRequest.CpuCoreLimit.Value);
|
|
|
+ return 0;
|
|
|
}
|
|
|
|
|
|
return threads;
|
|
@@ -1957,29 +1964,6 @@ namespace MediaBrowser.Controller.MediaEncoding
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
- /// <summary>
|
|
|
- /// Gets the number of threads.
|
|
|
- /// </summary>
|
|
|
- /// <returns>System.Int32.</returns>
|
|
|
- private int GetNumberOfThreadsInternal(EncodingJobInfo state, EncodingOptions encodingOptions, bool isWebm)
|
|
|
- {
|
|
|
- var threads = encodingOptions.EncodingThreadCount;
|
|
|
-
|
|
|
- if (isWebm)
|
|
|
- {
|
|
|
- // Recommended per docs
|
|
|
- return Math.Max(Environment.ProcessorCount - 1, 2);
|
|
|
- }
|
|
|
-
|
|
|
- // Automatic
|
|
|
- if (threads == -1)
|
|
|
- {
|
|
|
- return 0;
|
|
|
- }
|
|
|
-
|
|
|
- return threads;
|
|
|
- }
|
|
|
-
|
|
|
public string GetSubtitleEmbedArguments(EncodingJobInfo state)
|
|
|
{
|
|
|
if (state.SubtitleStream == null || state.SubtitleDeliveryMethod != SubtitleDeliveryMethod.Embed)
|