Merge pull request #2807 from MediaBrowser/dev

expand on hardware decoding options
pull/1154/head
Luke 7 years ago committed by GitHub
commit b0271c44c1

@ -1590,14 +1590,10 @@ namespace Emby.Server.Implementations
/// <returns>Task{CheckForUpdateResult}.</returns> /// <returns>Task{CheckForUpdateResult}.</returns>
public override async Task<CheckForUpdateResult> CheckForApplicationUpdate(CancellationToken cancellationToken, IProgress<double> progress) public override async Task<CheckForUpdateResult> CheckForApplicationUpdate(CancellationToken cancellationToken, IProgress<double> progress)
{ {
var cacheLength = TimeSpan.FromHours(3); var cacheLength = TimeSpan.FromHours(1);
var updateLevel = SystemUpdateLevel; var updateLevel = SystemUpdateLevel;
if (updateLevel == PackageVersionClass.Beta) if (updateLevel != PackageVersionClass.Release)
{
cacheLength = TimeSpan.FromHours(1);
}
else if (updateLevel == PackageVersionClass.Dev)
{ {
cacheLength = TimeSpan.FromMinutes(5); cacheLength = TimeSpan.FromMinutes(5);
} }

@ -11,9 +11,6 @@ using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using MediaBrowser.Common.Configuration; using MediaBrowser.Common.Configuration;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;
using MediaBrowser.Controller.Channels;
using MediaBrowser.Controller.Entities.Audio;
using MediaBrowser.Model.Tasks;
namespace Emby.Server.Implementations.Data namespace Emby.Server.Implementations.Data
{ {
@ -34,31 +31,9 @@ namespace Emby.Server.Implementations.Data
_appPaths = appPaths; _appPaths = appPaths;
} }
public string Name public Task Run(IProgress<double> progress, CancellationToken cancellationToken)
{ {
get { return "Clean Database"; } return CleanDeadItems(cancellationToken, progress);
}
public string Description
{
get { return "Deletes obsolete content from the database."; }
}
public string Category
{
get { return "Library"; }
}
public async Task Run(IProgress<double> progress, CancellationToken cancellationToken)
{
// Ensure these objects are lazy loaded.
// Without this there is a deadlock that will need to be investigated
var rootChildren = _libraryManager.RootFolder.Children.ToList();
rootChildren = _libraryManager.GetUserRootFolder().Children.ToList();
await CleanDeadItems(cancellationToken, progress).ConfigureAwait(false);
//await _itemRepo.UpdateInheritedValues(cancellationToken).ConfigureAwait(false);
} }
private async Task CleanDeadItems(CancellationToken cancellationToken, IProgress<double> progress) private async Task CleanDeadItems(CancellationToken cancellationToken, IProgress<double> progress)
@ -98,23 +73,5 @@ namespace Emby.Server.Implementations.Data
progress.Report(100); progress.Report(100);
} }
/// <summary>
/// Creates the triggers that define when the task will run
/// </summary>
/// <returns>IEnumerable{BaseTaskTrigger}.</returns>
public IEnumerable<TaskTriggerInfo> GetDefaultTriggers()
{
return new[] {
// Every so often
new TaskTriggerInfo { Type = TaskTriggerInfo.TriggerInterval, IntervalTicks = TimeSpan.FromHours(24).Ticks}
};
}
public string Key
{
get { return "CleanDatabase"; }
}
} }
} }

@ -116,7 +116,7 @@ namespace MediaBrowser.Controller.Entities.Movies
{ {
if (IsLegacyBoxSet) if (IsLegacyBoxSet)
{ {
return true; return false;
} }
return false; return false;

@ -1788,8 +1788,7 @@ namespace MediaBrowser.Controller.MediaEncoding
if (videoStream != null && if (videoStream != null &&
!string.IsNullOrWhiteSpace(videoStream.Codec) && !string.IsNullOrWhiteSpace(videoStream.Codec) &&
!string.IsNullOrWhiteSpace(encodingOptions.HardwareAccelerationType) && !string.IsNullOrWhiteSpace(encodingOptions.HardwareAccelerationType))
encodingOptions.EnableHardwareDecoding)
{ {
if (string.Equals(encodingOptions.HardwareAccelerationType, "qsv", StringComparison.OrdinalIgnoreCase)) if (string.Equals(encodingOptions.HardwareAccelerationType, "qsv", StringComparison.OrdinalIgnoreCase))
{ {
@ -1797,7 +1796,7 @@ namespace MediaBrowser.Controller.MediaEncoding
{ {
case "avc": case "avc":
case "h264": case "h264":
if (_mediaEncoder.SupportsDecoder("h264_qsv")) if (_mediaEncoder.SupportsDecoder("h264_qsv") && encodingOptions.HardwareDecodingCodecs.Contains("h264", StringComparer.OrdinalIgnoreCase))
{ {
// qsv decoder does not support 10-bit input // qsv decoder does not support 10-bit input
if ((videoStream.BitDepth ?? 8) > 8) if ((videoStream.BitDepth ?? 8) > 8)
@ -1807,21 +1806,21 @@ namespace MediaBrowser.Controller.MediaEncoding
return "-c:v h264_qsv "; return "-c:v h264_qsv ";
} }
break; break;
//case "hevc": case "hevc":
//case "h265": case "h265":
// if (_mediaEncoder.SupportsDecoder("hevc_qsv")) if (_mediaEncoder.SupportsDecoder("hevc_qsv") && encodingOptions.HardwareDecodingCodecs.Contains("hevc", StringComparer.OrdinalIgnoreCase))
// { {
// return "-c:v hevc_qsv "; return "-c:v hevc_qsv ";
// } }
// break; break;
case "mpeg2video": case "mpeg2video":
if (_mediaEncoder.SupportsDecoder("mpeg2_qsv")) if (_mediaEncoder.SupportsDecoder("mpeg2_qsv") && encodingOptions.HardwareDecodingCodecs.Contains("mpeg2video", StringComparer.OrdinalIgnoreCase))
{ {
return "-c:v mpeg2_qsv "; return "-c:v mpeg2_qsv ";
} }
break; break;
case "vc1": case "vc1":
if (_mediaEncoder.SupportsDecoder("vc1_qsv")) if (_mediaEncoder.SupportsDecoder("vc1_qsv") && encodingOptions.HardwareDecodingCodecs.Contains("vc1", StringComparer.OrdinalIgnoreCase))
{ {
return "-c:v vc1_qsv "; return "-c:v vc1_qsv ";
} }
@ -1835,14 +1834,14 @@ namespace MediaBrowser.Controller.MediaEncoding
{ {
case "avc": case "avc":
case "h264": case "h264":
if (_mediaEncoder.SupportsDecoder("h264_cuvid")) if (_mediaEncoder.SupportsDecoder("h264_cuvid") && encodingOptions.HardwareDecodingCodecs.Contains("h264", StringComparer.OrdinalIgnoreCase))
{ {
return "-c:v h264_cuvid "; return "-c:v h264_cuvid ";
} }
break; break;
case "hevc": case "hevc":
case "h265": case "h265":
if (_mediaEncoder.SupportsDecoder("hevc_cuvid")) if (_mediaEncoder.SupportsDecoder("hevc_cuvid") && encodingOptions.HardwareDecodingCodecs.Contains("hevc", StringComparer.OrdinalIgnoreCase))
{ {
return "-c:v hevc_cuvid "; return "-c:v hevc_cuvid ";
} }

@ -13,9 +13,10 @@ namespace MediaBrowser.Model.Configuration
public string VaapiDevice { get; set; } public string VaapiDevice { get; set; }
public int H264Crf { get; set; } public int H264Crf { get; set; }
public string H264Preset { get; set; } public string H264Preset { get; set; }
public bool EnableHardwareDecoding { get; set; }
public bool EnableHardwareEncoding { get; set; } public bool EnableHardwareEncoding { get; set; }
public string[] HardwareDecodingCodecs { get; set; }
public EncodingOptions() public EncodingOptions()
{ {
DownMixAudioBoost = 2; DownMixAudioBoost = 2;
@ -24,8 +25,9 @@ namespace MediaBrowser.Model.Configuration
EncodingThreadCount = -1; EncodingThreadCount = -1;
VaapiDevice = "/dev/dri/card0"; VaapiDevice = "/dev/dri/card0";
H264Crf = 23; H264Crf = 23;
EnableHardwareDecoding = true;
EnableHardwareEncoding = true; EnableHardwareEncoding = true;
HardwareDecodingCodecs = new string[] { "h264", "mpeg2video", "vc1" };
} }
} }
} }

@ -105,12 +105,9 @@ namespace MediaBrowser.Model.Sync
public string PrimaryImageItemId { get; set; } public string PrimaryImageItemId { get; set; }
public string PrimaryImageTag { get; set; } public string PrimaryImageTag { get; set; }
public bool EnableAutomaticResync { get; set; }
public SyncJob() public SyncJob()
{ {
RequestedItemIds = new List<string>(); RequestedItemIds = new List<string>();
EnableAutomaticResync = true;
} }
} }
} }

@ -1,3 +1,3 @@
using System.Reflection; using System.Reflection;
[assembly: AssemblyVersion("3.2.26.22")] [assembly: AssemblyVersion("3.2.26.23")]

Loading…
Cancel
Save