|
|
@ -1531,11 +1531,18 @@ namespace MediaBrowser.Controller.MediaEncoding
|
|
|
|
/// <returns>System.Int32.</returns>
|
|
|
|
/// <returns>System.Int32.</returns>
|
|
|
|
public int GetNumberOfThreads(EncodingJobInfo state, EncodingOptions encodingOptions, bool isWebm)
|
|
|
|
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;
|
|
|
|
return threads;
|
|
|
@ -1957,29 +1964,6 @@ namespace MediaBrowser.Controller.MediaEncoding
|
|
|
|
return null;
|
|
|
|
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)
|
|
|
|
public string GetSubtitleEmbedArguments(EncodingJobInfo state)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (state.SubtitleStream == null || state.SubtitleDeliveryMethod != SubtitleDeliveryMethod.Embed)
|
|
|
|
if (state.SubtitleStream == null || state.SubtitleDeliveryMethod != SubtitleDeliveryMethod.Embed)
|
|
|
|