update image magick encoder

This commit is contained in:
Luke Pulverenti 2017-06-21 10:51:11 -04:00
parent 7815d65e5c
commit 98ee28bda4
5 changed files with 31 additions and 13 deletions

View File

@ -9,6 +9,7 @@ using System;
using System.IO;
using System.Linq;
using MediaBrowser.Model.IO;
using MediaBrowser.Model.System;
namespace Emby.Drawing.ImageMagick
{
@ -18,13 +19,15 @@ namespace Emby.Drawing.ImageMagick
private readonly IApplicationPaths _appPaths;
private readonly Func<IHttpClient> _httpClientFactory;
private readonly IFileSystem _fileSystem;
private readonly IEnvironmentInfo _environment;
public ImageMagickEncoder(ILogger logger, IApplicationPaths appPaths, Func<IHttpClient> httpClientFactory, IFileSystem fileSystem)
public ImageMagickEncoder(ILogger logger, IApplicationPaths appPaths, Func<IHttpClient> httpClientFactory, IFileSystem fileSystem, IEnvironmentInfo environment)
{
_logger = logger;
_appPaths = appPaths;
_httpClientFactory = httpClientFactory;
_fileSystem = fileSystem;
_environment = environment;
LogVersion();
}
@ -337,7 +340,17 @@ namespace Emby.Drawing.ImageMagick
public bool SupportsImageCollageCreation
{
get { return true; }
get
{
// too heavy. seeing crashes on RPI.
if (_environment.SystemArchitecture == Architecture.Arm ||
_environment.SystemArchitecture == Architecture.Arm64)
{
return false;
}
return true;
}
}
public bool SupportsImageEncoding

View File

@ -237,8 +237,7 @@ namespace Emby.Server.Implementations.LiveTv.Listings
private bool IsMovie(ScheduleDirect.ProgramDetails programInfo)
{
var showType = programInfo.showType ?? string.Empty;
return showType.IndexOf("movie", StringComparison.OrdinalIgnoreCase) != -1 || showType.IndexOf("film", StringComparison.OrdinalIgnoreCase) != -1;
return string.Equals(programInfo.entityType, "movie", StringComparison.OrdinalIgnoreCase);
}
private ProgramInfo GetProgram(string channelId, ScheduleDirect.Program programInfo, ScheduleDirect.ProgramDetails details)
@ -280,8 +279,6 @@ namespace Emby.Server.Implementations.LiveTv.Listings
episodeTitle = details.episodeTitle150;
}
var showType = details.showType ?? string.Empty;
var info = new ProgramInfo
{
ChannelId = channelId,
@ -294,11 +291,11 @@ namespace Emby.Server.Implementations.LiveTv.Listings
EpisodeTitle = episodeTitle,
Audio = audioType,
IsRepeat = repeat,
IsSeries = showType.IndexOf("series", StringComparison.OrdinalIgnoreCase) != -1,
IsSeries = string.Equals(details.entityType, "episode", StringComparison.OrdinalIgnoreCase),
ImageUrl = details.primaryImage,
ThumbImageUrl = details.thumbImage,
IsKids = string.Equals(details.audience, "children", StringComparison.OrdinalIgnoreCase),
IsSports = showType.IndexOf("sports", StringComparison.OrdinalIgnoreCase) != -1,
IsSports = string.Equals(details.entityType, "sports", StringComparison.OrdinalIgnoreCase),
IsMovie = IsMovie(details),
Etag = programInfo.md5
};
@ -882,7 +879,7 @@ namespace Emby.Server.Implementations.LiveTv.Listings
foreach (ScheduleDirect.Map map in root.map)
{
var channelNumber = GetChannelNumber(map);
var station = allStations.FirstOrDefault(item => string.Equals(item.stationID, map.stationID, StringComparison.OrdinalIgnoreCase));
if (station == null)
{
@ -906,7 +903,7 @@ namespace Emby.Server.Implementations.LiveTv.Listings
{
channelInfo.Name = station.name;
}
channelInfo.Id = station.stationID;
channelInfo.CallSign = station.callsign;
@ -1199,6 +1196,7 @@ namespace Emby.Server.Implementations.LiveTv.Listings
public List<ContentRating> contentRating { get; set; }
public List<Cast> cast { get; set; }
public List<Crew> crew { get; set; }
public string entityType { get; set; }
public string showType { get; set; }
public bool hasImageArtwork { get; set; }
public string primaryImage { get; set; }

View File

@ -742,7 +742,7 @@ namespace Emby.Server.Implementations.LiveTv
else
{
// Increment this whenver some internal change deems it necessary
var etag = info.Etag + "5";
var etag = info.Etag + "6";
if (!string.Equals(etag, item.ExternalEtag, StringComparison.OrdinalIgnoreCase))
{

View File

@ -118,6 +118,11 @@ namespace MediaBrowser.Controller.Entities.Movies
{
get
{
if (string.IsNullOrWhiteSpace(Path))
{
return false;
}
return !FileSystem.ContainsSubPath(ConfigurationManager.ApplicationPaths.DataPath, Path);
}
}

View File

@ -9,6 +9,7 @@ using MediaBrowser.Controller.Drawing;
using MediaBrowser.Model.IO;
using MediaBrowser.Model.Logging;
using Emby.Drawing.Skia;
using MediaBrowser.Model.System;
namespace MediaBrowser.Server.Startup.Common
{
@ -19,7 +20,8 @@ namespace MediaBrowser.Server.Startup.Common
IFileSystem fileSystem,
StartupOptions startupOptions,
Func<IHttpClient> httpClient,
IApplicationPaths appPaths)
IApplicationPaths appPaths,
IEnvironmentInfo environment)
{
if (!startupOptions.ContainsOption("-enablegdi"))
{
@ -34,7 +36,7 @@ namespace MediaBrowser.Server.Startup.Common
try
{
return new ImageMagickEncoder(logManager.GetLogger("ImageMagick"), appPaths, httpClient, fileSystem);
return new ImageMagickEncoder(logManager.GetLogger("ImageMagick"), appPaths, httpClient, fileSystem, environment);
}
catch
{