Merge pull request #2095 from MediaBrowser/dev

Dev
This commit is contained in:
Luke 2016-08-24 11:49:22 -04:00 committed by GitHub
commit 20c400fee3
17 changed files with 52 additions and 86 deletions

View File

@ -298,7 +298,8 @@ namespace MediaBrowser.Api.Playback
// Since transcoding of folder rips is expiremental anyway, it's not worth adding additional variables such as this. // Since transcoding of folder rips is expiremental anyway, it's not worth adding additional variables such as this.
if (state.VideoType == VideoType.VideoFile) if (state.VideoType == VideoType.VideoFile)
{ {
var hwType = ApiEntryPoint.Instance.GetEncodingOptions().HardwareAccelerationType; var encodingOptions = ApiEntryPoint.Instance.GetEncodingOptions();
var hwType = encodingOptions.HardwareAccelerationType;
if (string.Equals(hwType, "qsv", StringComparison.OrdinalIgnoreCase) || if (string.Equals(hwType, "qsv", StringComparison.OrdinalIgnoreCase) ||
string.Equals(hwType, "h264_qsv", StringComparison.OrdinalIgnoreCase)) string.Equals(hwType, "h264_qsv", StringComparison.OrdinalIgnoreCase))
@ -314,7 +315,7 @@ namespace MediaBrowser.Api.Playback
{ {
return GetAvailableEncoder("h264_omx", defaultEncoder); return GetAvailableEncoder("h264_omx", defaultEncoder);
} }
if (string.Equals(hwType, "vaapi", StringComparison.OrdinalIgnoreCase)) if (string.Equals(hwType, "vaapi", StringComparison.OrdinalIgnoreCase) && !string.IsNullOrWhiteSpace(encodingOptions.VaapiDevice))
{ {
return GetAvailableEncoder("h264_vaapi", defaultEncoder); return GetAvailableEncoder("h264_vaapi", defaultEncoder);
} }
@ -988,6 +989,8 @@ namespace MediaBrowser.Api.Playback
} }
} }
arg += string.Format(" -ss {0}", MediaEncoder.GetTimeParameter(TimeSpan.FromSeconds(1).Ticks));
return arg.Trim(); return arg.Trim();
} }
@ -2289,7 +2292,7 @@ namespace MediaBrowser.Api.Playback
return Task.FromResult(true); return Task.FromResult(true);
} }
if (!string.Equals(MediaEncoder.EncoderLocationType, "Default", StringComparison.OrdinalIgnoreCase)) if (!MediaEncoder.IsDefaultEncoderPath)
{ {
return Task.FromResult(true); return Task.FromResult(true);
} }

View File

@ -281,6 +281,20 @@ namespace MediaBrowser.Controller.Entities
} }
} }
public Task UpdateIsOffline(bool newValue)
{
var item = this;
if (item.IsOffline != newValue)
{
item.IsOffline = newValue;
// this is creating too many repeated db updates
//return item.UpdateToRepository(ItemUpdateType.None, CancellationToken.None);
}
return Task.FromResult(true);
}
/// <summary> /// <summary>
/// Gets or sets the type of the location. /// Gets or sets the type of the location.
/// </summary> /// </summary>
@ -290,10 +304,10 @@ namespace MediaBrowser.Controller.Entities
{ {
get get
{ {
if (IsOffline) //if (IsOffline)
{ //{
return LocationType.Offline; // return LocationType.Offline;
} //}
if (string.IsNullOrWhiteSpace(Path)) if (string.IsNullOrWhiteSpace(Path))
{ {

View File

@ -375,7 +375,7 @@ namespace MediaBrowser.Controller.Entities
if (currentChildren.TryGetValue(child.Id, out currentChild) && IsValidFromResolver(currentChild, child)) if (currentChildren.TryGetValue(child.Id, out currentChild) && IsValidFromResolver(currentChild, child))
{ {
await UpdateIsOffline(currentChild, false).ConfigureAwait(false); await currentChild.UpdateIsOffline(false).ConfigureAwait(false);
validChildren.Add(currentChild); validChildren.Add(currentChild);
continue; continue;
@ -404,7 +404,7 @@ namespace MediaBrowser.Controller.Entities
else if (!string.IsNullOrEmpty(item.Path) && IsPathOffline(item.Path)) else if (!string.IsNullOrEmpty(item.Path) && IsPathOffline(item.Path))
{ {
await UpdateIsOffline(item, true).ConfigureAwait(false); await item.UpdateIsOffline(true).ConfigureAwait(false);
} }
else else
{ {
@ -461,17 +461,6 @@ namespace MediaBrowser.Controller.Entities
progress.Report(100); progress.Report(100);
} }
private Task UpdateIsOffline(BaseItem item, bool newValue)
{
if (item.IsOffline != newValue)
{
item.IsOffline = newValue;
return item.UpdateToRepository(ItemUpdateType.None, CancellationToken.None);
}
return Task.FromResult(true);
}
private async Task RefreshMetadataRecursive(MetadataRefreshOptions refreshOptions, bool recursive, IProgress<double> progress, CancellationToken cancellationToken) private async Task RefreshMetadataRecursive(MetadataRefreshOptions refreshOptions, bool recursive, IProgress<double> progress, CancellationToken cancellationToken)
{ {
var children = ActualChildren.ToList(); var children = ActualChildren.ToList();

View File

@ -134,5 +134,6 @@ namespace MediaBrowser.Controller.MediaEncoding
Task UpdateEncoderPath(string path, string pathType); Task UpdateEncoderPath(string path, string pathType);
bool SupportsEncoder(string encoder); bool SupportsEncoder(string encoder);
bool IsDefaultEncoderPath { get; }
} }
} }

View File

@ -586,7 +586,7 @@ namespace MediaBrowser.MediaEncoding.Encoder
{ {
return GetAvailableEncoder(mediaEncoder, "h264_omx", defaultEncoder); return GetAvailableEncoder(mediaEncoder, "h264_omx", defaultEncoder);
} }
if (string.Equals(hwType, "vaapi", StringComparison.OrdinalIgnoreCase)) if (string.Equals(hwType, "vaapi", StringComparison.OrdinalIgnoreCase) && !string.IsNullOrWhiteSpace(options.VaapiDevice))
{ {
return GetAvailableEncoder(mediaEncoder, "h264_vaapi", defaultEncoder); return GetAvailableEncoder(mediaEncoder, "h264_vaapi", defaultEncoder);
} }

View File

@ -123,20 +123,20 @@ namespace MediaBrowser.MediaEncoding.Encoder
return "System"; return "System";
} }
if (IsDefaultPath(FFMpegPath))
{
return "Default";
}
return "Custom"; return "Custom";
} }
} }
private bool IsDefaultPath(string path) public bool IsDefaultEncoderPath
{ {
var parentPath = Path.Combine(ConfigurationManager.ApplicationPaths.ProgramDataPath, "ffmpeg", "20160410"); get
{
var path = FFMpegPath;
return FileSystem.ContainsSubPath(parentPath, path); var parentPath = Path.Combine(ConfigurationManager.ApplicationPaths.ProgramDataPath, "ffmpeg", "20160410");
return FileSystem.ContainsSubPath(parentPath, path);
}
} }
private bool IsSystemInstalledPath(string path) private bool IsSystemInstalledPath(string path)

View File

@ -48,7 +48,6 @@ namespace MediaBrowser.Model.Configuration
public bool RememberAudioSelections { get; set; } public bool RememberAudioSelections { get; set; }
public bool RememberSubtitleSelections { get; set; } public bool RememberSubtitleSelections { get; set; }
public bool EnableNextEpisodeAutoPlay { get; set; } public bool EnableNextEpisodeAutoPlay { get; set; }
public bool DisplayFoldersView { get; set; }
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="UserConfiguration" /> class. /// Initializes a new instance of the <see cref="UserConfiguration" /> class.

View File

@ -241,7 +241,7 @@ namespace MediaBrowser.Model.Net
} }
if (StringHelper.EqualsIgnoreCase(ext, ".opus")) if (StringHelper.EqualsIgnoreCase(ext, ".opus"))
{ {
return "audio/opus"; return "audio/ogg";
} }
// Playlists // Playlists

View File

@ -167,10 +167,13 @@ namespace MediaBrowser.Providers.MediaInfo
public bool HasChanged(IHasMetadata item, IDirectoryService directoryService) public bool HasChanged(IHasMetadata item, IDirectoryService directoryService)
{ {
var file = directoryService.GetFile(item.Path); if (item.EnableRefreshOnDateModifiedChange && !string.IsNullOrWhiteSpace(item.Path) && item.LocationType == LocationType.FileSystem)
if (file != null && file.LastWriteTimeUtc != item.DateModified)
{ {
return true; var file = directoryService.GetFile(item.Path);
if (file != null && file.LastWriteTimeUtc != item.DateModified)
{
return true;
}
} }
return false; return false;

View File

@ -171,7 +171,7 @@ namespace MediaBrowser.Providers.MediaInfo
public bool HasChanged(IHasMetadata item, IDirectoryService directoryService) public bool HasChanged(IHasMetadata item, IDirectoryService directoryService)
{ {
if (item.EnableRefreshOnDateModifiedChange && !string.IsNullOrWhiteSpace(item.Path)) if (item.EnableRefreshOnDateModifiedChange && !string.IsNullOrWhiteSpace(item.Path) && item.LocationType == LocationType.FileSystem)
{ {
var file = directoryService.GetFile(item.Path); var file = directoryService.GetFile(item.Path);
if (file != null && file.LastWriteTimeUtc != item.DateModified) if (file != null && file.LastWriteTimeUtc != item.DateModified)

View File

@ -194,7 +194,7 @@ namespace MediaBrowser.Providers.MediaInfo
public bool HasChanged(IHasMetadata item, IDirectoryService directoryService) public bool HasChanged(IHasMetadata item, IDirectoryService directoryService)
{ {
if (item.EnableRefreshOnDateModifiedChange) if (item.EnableRefreshOnDateModifiedChange && !string.IsNullOrWhiteSpace(item.Path) && item.LocationType == LocationType.FileSystem)
{ {
var file = directoryService.GetFile(item.Path); var file = directoryService.GetFile(item.Path);
if (file != null && file.LastWriteTimeUtc != item.DateModified) if (file != null && file.LastWriteTimeUtc != item.DateModified)

View File

@ -154,10 +154,13 @@ namespace MediaBrowser.Providers.Photos
public bool HasChanged(IHasMetadata item, IDirectoryService directoryService) public bool HasChanged(IHasMetadata item, IDirectoryService directoryService)
{ {
var file = directoryService.GetFile(item.Path); if (item.EnableRefreshOnDateModifiedChange && !string.IsNullOrWhiteSpace(item.Path) && item.LocationType == LocationType.FileSystem)
if (file != null && file.LastWriteTimeUtc != item.DateModified)
{ {
return true; var file = directoryService.GetFile(item.Path);
if (file != null && file.LastWriteTimeUtc != item.DateModified)
{
return true;
}
} }
return false; return false;

View File

@ -313,8 +313,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
if (Folder.IsPathOffline(path)) if (Folder.IsPathOffline(path))
{ {
libraryItem.IsOffline = true; await libraryItem.UpdateIsOffline(true).ConfigureAwait(false);
await libraryItem.UpdateToRepository(ItemUpdateType.None, cancellationToken).ConfigureAwait(false);
continue; continue;
} }

View File

@ -211,7 +211,6 @@ namespace MediaBrowser.Server.Implementations.Persistence
_connection.AddColumn(Logger, "TypedBaseItems", "ProductionYear", "INT"); _connection.AddColumn(Logger, "TypedBaseItems", "ProductionYear", "INT");
_connection.AddColumn(Logger, "TypedBaseItems", "ParentId", "GUID"); _connection.AddColumn(Logger, "TypedBaseItems", "ParentId", "GUID");
_connection.AddColumn(Logger, "TypedBaseItems", "Genres", "Text"); _connection.AddColumn(Logger, "TypedBaseItems", "Genres", "Text");
_connection.AddColumn(Logger, "TypedBaseItems", "ParentalRatingValue", "INT");
_connection.AddColumn(Logger, "TypedBaseItems", "SchemaVersion", "INT"); _connection.AddColumn(Logger, "TypedBaseItems", "SchemaVersion", "INT");
_connection.AddColumn(Logger, "TypedBaseItems", "SortName", "Text"); _connection.AddColumn(Logger, "TypedBaseItems", "SortName", "Text");
_connection.AddColumn(Logger, "TypedBaseItems", "RunTimeTicks", "BIGINT"); _connection.AddColumn(Logger, "TypedBaseItems", "RunTimeTicks", "BIGINT");
@ -488,7 +487,6 @@ namespace MediaBrowser.Server.Implementations.Persistence
"ProductionYear", "ProductionYear",
"ParentId", "ParentId",
"Genres", "Genres",
"ParentalRatingValue",
"InheritedParentalRatingValue", "InheritedParentalRatingValue",
"SchemaVersion", "SchemaVersion",
"SortName", "SortName",
@ -795,7 +793,6 @@ namespace MediaBrowser.Server.Implementations.Persistence
} }
_saveItemCommand.GetParameter(index++).Value = string.Join("|", item.Genres.ToArray()); _saveItemCommand.GetParameter(index++).Value = string.Join("|", item.Genres.ToArray());
_saveItemCommand.GetParameter(index++).Value = item.GetParentalRatingValue() ?? 0;
_saveItemCommand.GetParameter(index++).Value = item.GetInheritedParentalRatingValue() ?? 0; _saveItemCommand.GetParameter(index++).Value = item.GetInheritedParentalRatingValue() ?? 0;
_saveItemCommand.GetParameter(index++).Value = LatestSchemaVersion; _saveItemCommand.GetParameter(index++).Value = LatestSchemaVersion;

View File

@ -386,7 +386,6 @@ namespace MediaBrowser.Server.Startup.Common
new MovieDbEpisodeProviderMigration(ServerConfigurationManager), new MovieDbEpisodeProviderMigration(ServerConfigurationManager),
new DbMigration(ServerConfigurationManager, TaskManager), new DbMigration(ServerConfigurationManager, TaskManager),
new UpdateLevelMigration(ServerConfigurationManager, this, HttpClient, JsonSerializer, _releaseAssetFilename), new UpdateLevelMigration(ServerConfigurationManager, this, HttpClient, JsonSerializer, _releaseAssetFilename),
new FolderViewSettingMigration(ServerConfigurationManager, UserManager),
new CollectionGroupingMigration(ServerConfigurationManager, UserManager), new CollectionGroupingMigration(ServerConfigurationManager, UserManager),
new CollectionsViewMigration(ServerConfigurationManager, UserManager) new CollectionsViewMigration(ServerConfigurationManager, UserManager)
}; };

View File

@ -72,7 +72,6 @@
<Compile Include="MbLinkShortcutHandler.cs" /> <Compile Include="MbLinkShortcutHandler.cs" />
<Compile Include="Migrations\CollectionGroupingMigration.cs" /> <Compile Include="Migrations\CollectionGroupingMigration.cs" />
<Compile Include="Migrations\CollectionsViewMigration.cs" /> <Compile Include="Migrations\CollectionsViewMigration.cs" />
<Compile Include="Migrations\FolderViewSettingMigration.cs" />
<Compile Include="Migrations\IVersionMigration.cs" /> <Compile Include="Migrations\IVersionMigration.cs" />
<Compile Include="Migrations\DbMigration.cs" /> <Compile Include="Migrations\DbMigration.cs" />
<Compile Include="Migrations\MovieDbEpisodeProviderMigration.cs" /> <Compile Include="Migrations\MovieDbEpisodeProviderMigration.cs" />

View File

@ -1,40 +0,0 @@
using System.Linq;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Library;
namespace MediaBrowser.Server.Startup.Common.Migrations
{
public class FolderViewSettingMigration : IVersionMigration
{
private readonly IServerConfigurationManager _config;
private readonly IUserManager _userManager;
public FolderViewSettingMigration(IServerConfigurationManager config, IUserManager userManager)
{
_config = config;
_userManager = userManager;
}
public void Run()
{
var migrationKey = this.GetType().Name;
var migrationKeyList = _config.Configuration.Migrations.ToList();
if (!migrationKeyList.Contains(migrationKey))
{
if (_config.Configuration.IsStartupWizardCompleted)
{
if (_userManager.Users.Any(i => i.Configuration.DisplayFoldersView))
{
_config.Configuration.EnableFolderView = true;
}
}
migrationKeyList.Add(migrationKey);
_config.Configuration.Migrations = migrationKeyList.ToArray();
_config.SaveConfiguration();
}
}
}
}