From 875588676123d9976ba8824ced006fcebbcad284 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Fri, 21 Apr 2017 16:03:07 -0400 Subject: switch to hwaccel auto --- Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs | 2 +- .../LiveTv/EmbyTV/EncodedRecorder.cs | 19 +++++++++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) (limited to 'Emby.Server.Implementations') diff --git a/Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs b/Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs index 666c1fdcd4..5082f1b044 100644 --- a/Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs +++ b/Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs @@ -1765,7 +1765,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV if (regInfo.IsValid) { - return new EncodedRecorder(_logger, _fileSystem, _mediaEncoder, _config.ApplicationPaths, _jsonSerializer, config, _httpClient, _processFactory); + return new EncodedRecorder(_logger, _fileSystem, _mediaEncoder, _config.ApplicationPaths, _jsonSerializer, config, _httpClient, _processFactory, _config); } } diff --git a/Emby.Server.Implementations/LiveTv/EmbyTV/EncodedRecorder.cs b/Emby.Server.Implementations/LiveTv/EmbyTV/EncodedRecorder.cs index 6cc5b69208..8ee3d71b5e 100644 --- a/Emby.Server.Implementations/LiveTv/EmbyTV/EncodedRecorder.cs +++ b/Emby.Server.Implementations/LiveTv/EmbyTV/EncodedRecorder.cs @@ -11,14 +11,16 @@ using MediaBrowser.Model.IO; using MediaBrowser.Common.IO; using MediaBrowser.Common.Net; using MediaBrowser.Controller; -using MediaBrowser.Controller.IO; +using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.MediaEncoding; +using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Diagnostics; using MediaBrowser.Model.Dto; using MediaBrowser.Model.Entities; using MediaBrowser.Model.LiveTv; using MediaBrowser.Model.Logging; using MediaBrowser.Model.Serialization; +using MediaBrowser.Common.Configuration; namespace Emby.Server.Implementations.LiveTv.EmbyTV { @@ -37,8 +39,9 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV private readonly IProcessFactory _processFactory; private readonly IJsonSerializer _json; private readonly TaskCompletionSource _taskCompletionSource = new TaskCompletionSource(); + private readonly IServerConfigurationManager _config; - public EncodedRecorder(ILogger logger, IFileSystem fileSystem, IMediaEncoder mediaEncoder, IServerApplicationPaths appPaths, IJsonSerializer json, LiveTvOptions liveTvOptions, IHttpClient httpClient, IProcessFactory processFactory) + public EncodedRecorder(ILogger logger, IFileSystem fileSystem, IMediaEncoder mediaEncoder, IServerApplicationPaths appPaths, IJsonSerializer json, LiveTvOptions liveTvOptions, IHttpClient httpClient, IProcessFactory processFactory, IServerConfigurationManager config) { _logger = logger; _fileSystem = fileSystem; @@ -48,6 +51,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV _liveTvOptions = liveTvOptions; _httpClient = httpClient; _processFactory = processFactory; + _config = config; } private string OutputFormat @@ -89,6 +93,11 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV _logger.Info("Recording completed to file {0}", targetFile); } + private EncodingOptions GetEncodingOptions() + { + return _config.GetConfiguration("encoding"); + } + private Task RecordFromFile(MediaSourceInfo mediaSource, string inputFile, string targetFile, TimeSpan duration, Action onStarted, CancellationToken cancellationToken) { _targetPath = targetFile; @@ -163,6 +172,12 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV var durationParam = " -t " + _mediaEncoder.GetTimeParameter(duration.Ticks); var inputModifiers = "-fflags +genpts -async 1 -vsync -1"; + + if (!string.IsNullOrWhiteSpace(GetEncodingOptions().HardwareAccelerationType)) + { + inputModifiers += " -hwaccel auto"; + } + var commandLineArgs = "-i \"{0}\"{5} {2} -map_metadata -1 -threads 0 {3}{4}{6} -y \"{1}\""; long startTimeTicks = 0; -- cgit v1.2.3 From 491886632dc33e735b0e5f7c88d109eab1eb2a37 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Tue, 25 Apr 2017 14:23:20 -0400 Subject: update remote control responses --- Emby.Server.Implementations/Dto/DtoService.cs | 2 +- Emby.Server.Implementations/Library/UserManager.cs | 3 ++- Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs | 2 +- Emby.Server.Implementations/Session/SessionManager.cs | 3 ++- MediaBrowser.Controller/Library/PlaybackProgressEventArgs.cs | 1 + MediaBrowser.Model/Session/GeneralCommandType.cs | 3 ++- MediaBrowser.Model/Users/UserPolicy.cs | 2 -- 7 files changed, 9 insertions(+), 7 deletions(-) (limited to 'Emby.Server.Implementations') diff --git a/Emby.Server.Implementations/Dto/DtoService.cs b/Emby.Server.Implementations/Dto/DtoService.cs index 7c0baf9c25..43a1e6e694 100644 --- a/Emby.Server.Implementations/Dto/DtoService.cs +++ b/Emby.Server.Implementations/Dto/DtoService.cs @@ -499,7 +499,7 @@ namespace Emby.Server.Implementations.Dto if (fields.Contains(ItemFields.BasicSyncInfo) || fields.Contains(ItemFields.SyncInfo)) { - var userCanSync = user != null && user.Policy.EnableSync; + var userCanSync = user != null && user.Policy.EnableContentDownloading; if (userCanSync && _syncManager.SupportsSync(item)) { dto.SupportsSync = true; diff --git a/Emby.Server.Implementations/Library/UserManager.cs b/Emby.Server.Implementations/Library/UserManager.cs index 89b7198ca2..c2ab0427d3 100644 --- a/Emby.Server.Implementations/Library/UserManager.cs +++ b/Emby.Server.Implementations/Library/UserManager.cs @@ -942,7 +942,8 @@ namespace Emby.Server.Implementations.Library { return new UserPolicy { - EnableSync = true + EnableContentDownloading = true, + EnableSyncTranscoding = true }; } diff --git a/Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs b/Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs index 5082f1b044..2fb35155d1 100644 --- a/Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs +++ b/Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs @@ -422,7 +422,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV { if (!string.IsNullOrWhiteSpace(epgChannel.Name)) { - tunerChannel.Name = epgChannel.Name; + //tunerChannel.Name = epgChannel.Name; } if (!string.IsNullOrWhiteSpace(epgChannel.ImageUrl)) { diff --git a/Emby.Server.Implementations/Session/SessionManager.cs b/Emby.Server.Implementations/Session/SessionManager.cs index 0a2312735f..de00cf2391 100644 --- a/Emby.Server.Implementations/Session/SessionManager.cs +++ b/Emby.Server.Implementations/Session/SessionManager.cs @@ -715,7 +715,8 @@ namespace Emby.Server.Implementations.Session ClientName = session.Client, DeviceId = session.DeviceId, IsPaused = info.IsPaused, - PlaySessionId = info.PlaySessionId + PlaySessionId = info.PlaySessionId, + IsAutomated = isAutomated }, _logger); diff --git a/MediaBrowser.Controller/Library/PlaybackProgressEventArgs.cs b/MediaBrowser.Controller/Library/PlaybackProgressEventArgs.cs index bcf39558e1..0644719b64 100644 --- a/MediaBrowser.Controller/Library/PlaybackProgressEventArgs.cs +++ b/MediaBrowser.Controller/Library/PlaybackProgressEventArgs.cs @@ -16,6 +16,7 @@ namespace MediaBrowser.Controller.Library public BaseItemInfo MediaInfo { get; set; } public string MediaSourceId { get; set; } public bool IsPaused { get; set; } + public bool IsAutomated { get; set; } public string DeviceId { get; set; } public string DeviceName { get; set; } diff --git a/MediaBrowser.Model/Session/GeneralCommandType.cs b/MediaBrowser.Model/Session/GeneralCommandType.cs index 6cceb162a4..1a96515599 100644 --- a/MediaBrowser.Model/Session/GeneralCommandType.cs +++ b/MediaBrowser.Model/Session/GeneralCommandType.cs @@ -37,6 +37,7 @@ SetRepeatMode = 29, ChannelUp = 30, ChannelDown = 31, - SetMaxStreamingBitrate = 31 + SetMaxStreamingBitrate = 31, + Guide = 32 } } \ No newline at end of file diff --git a/MediaBrowser.Model/Users/UserPolicy.cs b/MediaBrowser.Model/Users/UserPolicy.cs index 3917b1662d..2a987ceb14 100644 --- a/MediaBrowser.Model/Users/UserPolicy.cs +++ b/MediaBrowser.Model/Users/UserPolicy.cs @@ -50,7 +50,6 @@ namespace MediaBrowser.Model.Users /// Gets or sets a value indicating whether [enable synchronize]. /// /// true if [enable synchronize]; otherwise, false. - public bool EnableSync { get; set; } public bool EnableSyncTranscoding { get; set; } public string[] EnabledDevices { get; set; } @@ -71,7 +70,6 @@ namespace MediaBrowser.Model.Users public UserPolicy() { - EnableSync = true; EnableSyncTranscoding = true; EnableMediaPlayback = true; -- cgit v1.2.3 From ffb935700cc2d9ac47a81e43cf2187ff8c78957a Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Thu, 27 Apr 2017 14:11:56 -0400 Subject: update mono unhandled exception handler --- Emby.Server.Implementations/Logging/UnhandledExceptionWriter.cs | 6 ++++-- MediaBrowser.Server.Mono/Program.cs | 7 ++++++- MediaBrowser.Server.Mono/app.config | 2 ++ 3 files changed, 12 insertions(+), 3 deletions(-) (limited to 'Emby.Server.Implementations') diff --git a/Emby.Server.Implementations/Logging/UnhandledExceptionWriter.cs b/Emby.Server.Implementations/Logging/UnhandledExceptionWriter.cs index 5183f3a0b6..6e96d83fd3 100644 --- a/Emby.Server.Implementations/Logging/UnhandledExceptionWriter.cs +++ b/Emby.Server.Implementations/Logging/UnhandledExceptionWriter.cs @@ -35,9 +35,11 @@ namespace Emby.Server.Implementations.Logging // Write to console just in case file logging fails _console.WriteLine("UnhandledException"); - _console.WriteLine(builder.ToString()); - _fileSystem.WriteAllText(path, builder.ToString()); + var logMessage = builder.ToString(); + _console.WriteLine(logMessage); + + _fileSystem.WriteAllText(path, logMessage); } } } diff --git a/MediaBrowser.Server.Mono/Program.cs b/MediaBrowser.Server.Mono/Program.cs index 66851f7e94..dcd2dcaa67 100644 --- a/MediaBrowser.Server.Mono/Program.cs +++ b/MediaBrowser.Server.Mono/Program.cs @@ -258,7 +258,12 @@ namespace MediaBrowser.Server.Mono if (!Debugger.IsAttached) { - Environment.Exit(System.Runtime.InteropServices.Marshal.GetHRForException(exception)); + var message = LogHelper.GetLogMessage(exception).ToString(); + + if (message.IndexOf("InotifyWatcher", StringComparison.OrdinalIgnoreCase) == -1) + { + Environment.Exit(System.Runtime.InteropServices.Marshal.GetHRForException(exception)); + } } } diff --git a/MediaBrowser.Server.Mono/app.config b/MediaBrowser.Server.Mono/app.config index 07c113f3e1..8f21d4a67f 100644 --- a/MediaBrowser.Server.Mono/app.config +++ b/MediaBrowser.Server.Mono/app.config @@ -11,6 +11,8 @@ + + -- cgit v1.2.3 From da39d9a5bf9656f35501c5e11982240192ce34a2 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Thu, 27 Apr 2017 14:12:44 -0400 Subject: update folder queries --- .../FileOrganization/EpisodeFileOrganizer.cs | 2 +- .../Library/MusicManager.cs | 79 ++++++++-------------- .../Entities/Audio/MusicGenre.cs | 2 +- MediaBrowser.Controller/Entities/GameGenre.cs | 2 +- MediaBrowser.Controller/Entities/Genre.cs | 2 +- MediaBrowser.Controller/Entities/Movies/BoxSet.cs | 4 +- .../Entities/UserViewBuilder.cs | 29 ++------ MediaBrowser.Controller/Playlists/Playlist.cs | 29 +++----- MediaBrowser.MediaEncoding/Encoder/EncodingJob.cs | 2 - .../Music/AlbumImageFromSongProvider.cs | 3 +- MediaBrowser.Providers/TV/DummySeasonProvider.cs | 4 +- .../TV/MissingEpisodeProvider.cs | 19 +++--- 12 files changed, 66 insertions(+), 111 deletions(-) (limited to 'Emby.Server.Implementations') diff --git a/Emby.Server.Implementations/FileOrganization/EpisodeFileOrganizer.cs b/Emby.Server.Implementations/FileOrganization/EpisodeFileOrganizer.cs index 0a9c67285b..7b64c582a7 100644 --- a/Emby.Server.Implementations/FileOrganization/EpisodeFileOrganizer.cs +++ b/Emby.Server.Implementations/FileOrganization/EpisodeFileOrganizer.cs @@ -470,7 +470,7 @@ namespace Emby.Server.Implementations.FileOrganization return new List(); } - var episodePaths = series.GetRecursiveChildren() + var episodePaths = series.GetRecursiveChildren(i => i is Episode) .OfType() .Where(i => { diff --git a/Emby.Server.Implementations/Library/MusicManager.cs b/Emby.Server.Implementations/Library/MusicManager.cs index 9d07837c69..b15c011254 100644 --- a/Emby.Server.Implementations/Library/MusicManager.cs +++ b/Emby.Server.Implementations/Library/MusicManager.cs @@ -5,6 +5,7 @@ using MediaBrowser.Controller.Playlists; using System; using System.Collections.Generic; using System.Linq; +using MediaBrowser.Model.Querying; namespace Emby.Server.Implementations.Library { @@ -27,35 +28,14 @@ namespace Emby.Server.Implementations.Library return list.Concat(GetInstantMixFromGenres(item.Genres, user)); } - public IEnumerable