Merge pull request #2054 from MediaBrowser/dev

Dev
This commit is contained in:
Luke 2016-08-14 01:54:45 -04:00 committed by GitHub
commit 7b354c63d2
8 changed files with 53 additions and 11 deletions

View File

@ -11,6 +11,7 @@ using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using CommonIO; using CommonIO;
using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Configuration;
namespace MediaBrowser.Api.Library namespace MediaBrowser.Api.Library
@ -140,6 +141,14 @@ namespace MediaBrowser.Api.Library
public bool RefreshLibrary { get; set; } public bool RefreshLibrary { get; set; }
} }
[Route("/Library/VirtualFolders/LibraryOptions", "POST")]
public class UpdateLibraryOptions : IReturnVoid
{
public string Id { get; set; }
public LibraryOptions LibraryOptions { get; set; }
}
/// <summary> /// <summary>
/// Class LibraryStructureService /// Class LibraryStructureService
/// </summary> /// </summary>
@ -188,6 +197,13 @@ namespace MediaBrowser.Api.Library
return ToOptimizedSerializedResultUsingCache(result); return ToOptimizedSerializedResultUsingCache(result);
} }
public void Post(UpdateLibraryOptions request)
{
var collectionFolder = (CollectionFolder)_libraryManager.GetItemById(request.Id);
collectionFolder.UpdateLibraryOptions(request.LibraryOptions);
}
/// <summary> /// <summary>
/// Posts the specified request. /// Posts the specified request.
/// </summary> /// </summary>

View File

@ -284,6 +284,13 @@ namespace MediaBrowser.Api.Playback
options.ForceDirectPlay = true; options.ForceDirectPlay = true;
} }
} }
else if (item is Video)
{
if (!user.Policy.EnableAudioPlaybackTranscoding && !user.Policy.EnableVideoPlaybackTranscoding && !user.Policy.EnablePlaybackRemuxing)
{
options.ForceDirectPlay = true;
}
}
// The MediaSource supports direct stream, now test to see if the client supports it // The MediaSource supports direct stream, now test to see if the client supports it
var streamInfo = string.Equals(item.MediaType, MediaType.Audio, StringComparison.OrdinalIgnoreCase) ? var streamInfo = string.Equals(item.MediaType, MediaType.Audio, StringComparison.OrdinalIgnoreCase) ?
@ -315,6 +322,13 @@ namespace MediaBrowser.Api.Playback
options.ForceDirectStream = true; options.ForceDirectStream = true;
} }
} }
else if (item is Video)
{
if (!user.Policy.EnableAudioPlaybackTranscoding && !user.Policy.EnableVideoPlaybackTranscoding && !user.Policy.EnablePlaybackRemuxing)
{
options.ForceDirectStream = true;
}
}
// The MediaSource supports direct stream, now test to see if the client supports it // The MediaSource supports direct stream, now test to see if the client supports it
var streamInfo = string.Equals(item.MediaType, MediaType.Audio, StringComparison.OrdinalIgnoreCase) ? var streamInfo = string.Equals(item.MediaType, MediaType.Audio, StringComparison.OrdinalIgnoreCase) ?

View File

@ -95,10 +95,20 @@ namespace MediaBrowser.Controller.Entities
return System.IO.Path.Combine(path, "options.xml"); return System.IO.Path.Combine(path, "options.xml");
} }
public void UpdateLibraryOptions(LibraryOptions options)
{
SaveLibraryOptions(Path, options);
}
public static void SaveLibraryOptions(string path, LibraryOptions options) public static void SaveLibraryOptions(string path, LibraryOptions options)
{ {
lock (LibraryOptions)
{
LibraryOptions[path] = options;
XmlSerializer.SerializeToFile(options, GetLibraryOptionsPath(path)); XmlSerializer.SerializeToFile(options, GetLibraryOptionsPath(path));
} }
}
/// <summary> /// <summary>
/// Allow different display preferences for each collection folder /// Allow different display preferences for each collection folder

View File

@ -110,8 +110,7 @@ namespace MediaBrowser.Controller.Entities.Movies
{ {
get get
{ {
// TODO return !FileSystem.ContainsSubPath(ConfigurationManager.ApplicationPaths.DataPath, Path);
return false;
} }
} }

View File

@ -1,5 +1,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using MediaBrowser.Model.Extensions;
namespace MediaBrowser.Model.Dlna namespace MediaBrowser.Model.Dlna
{ {
@ -59,8 +60,8 @@ namespace MediaBrowser.Model.Dlna
private static double GetVideoBitrateScaleFactor(string codec) private static double GetVideoBitrateScaleFactor(string codec)
{ {
if (string.Equals(codec, "h265", StringComparison.OrdinalIgnoreCase) || if (StringHelper.EqualsIgnoreCase(codec, "h265") ||
string.Equals(codec, "hevc", StringComparison.OrdinalIgnoreCase)) StringHelper.EqualsIgnoreCase(codec, "hevc"))
{ {
return .5; return .5;
} }

View File

@ -41,6 +41,7 @@ namespace MediaBrowser.Model.Users
public bool EnableMediaPlayback { get; set; } public bool EnableMediaPlayback { get; set; }
public bool EnableAudioPlaybackTranscoding { get; set; } public bool EnableAudioPlaybackTranscoding { get; set; }
public bool EnableVideoPlaybackTranscoding { get; set; } public bool EnableVideoPlaybackTranscoding { get; set; }
public bool EnablePlaybackRemuxing { get; set; }
public bool EnableContentDeletion { get; set; } public bool EnableContentDeletion { get; set; }
public bool EnableContentDownloading { get; set; } public bool EnableContentDownloading { get; set; }
@ -76,6 +77,7 @@ namespace MediaBrowser.Model.Users
EnableMediaPlayback = true; EnableMediaPlayback = true;
EnableAudioPlaybackTranscoding = true; EnableAudioPlaybackTranscoding = true;
EnableVideoPlaybackTranscoding = true; EnableVideoPlaybackTranscoding = true;
EnablePlaybackRemuxing = true;
EnableLiveTvManagement = true; EnableLiveTvManagement = true;
EnableLiveTvAccess = true; EnableLiveTvAccess = true;

View File

@ -8,7 +8,7 @@ namespace MediaBrowser.Server.Implementations.Collections
public class CollectionsDynamicFolder : IVirtualFolderCreator public class CollectionsDynamicFolder : IVirtualFolderCreator
{ {
private readonly IApplicationPaths _appPaths; private readonly IApplicationPaths _appPaths;
private IFileSystem _fileSystem; private readonly IFileSystem _fileSystem;
public CollectionsDynamicFolder(IApplicationPaths appPaths, IFileSystem fileSystem) public CollectionsDynamicFolder(IApplicationPaths appPaths, IFileSystem fileSystem)
{ {

View File

@ -534,7 +534,7 @@ namespace MediaBrowser.Server.Implementations.HttpServer
if (lastDateModified.HasValue && (string.IsNullOrEmpty(cacheKey) || cacheDuration.HasValue)) if (lastDateModified.HasValue && (string.IsNullOrEmpty(cacheKey) || cacheDuration.HasValue))
{ {
AddAgeHeader(responseHeaders, lastDateModified); AddAgeHeader(responseHeaders, lastDateModified);
responseHeaders["LastModified"] = lastDateModified.Value.ToString("r"); responseHeaders["Last-Modified"] = lastDateModified.Value.ToString("r");
} }
if (cacheDuration.HasValue) if (cacheDuration.HasValue)