mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-07-09 03:04:24 -04:00
add transcode temp path migration
This commit is contained in:
parent
97ae93fe5e
commit
98ae564226
@ -250,7 +250,7 @@ namespace MediaBrowser.Api.Playback
|
|||||||
|
|
||||||
protected EncodingQuality GetQualitySetting()
|
protected EncodingQuality GetQualitySetting()
|
||||||
{
|
{
|
||||||
var quality = ApiEntryPoint.Instance.GetEncodingOptions().MediaEncodingQuality;
|
var quality = ApiEntryPoint.Instance.GetEncodingOptions().EncodingQuality;
|
||||||
|
|
||||||
if (quality == EncodingQuality.Auto)
|
if (quality == EncodingQuality.Auto)
|
||||||
{
|
{
|
||||||
|
@ -105,7 +105,7 @@ namespace MediaBrowser.Common.Implementations.Configuration
|
|||||||
UpdateCachePath();
|
UpdateCachePath();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void AddParts(IEnumerable<IConfigurationFactory> factories)
|
public virtual void AddParts(IEnumerable<IConfigurationFactory> factories)
|
||||||
{
|
{
|
||||||
_configurationFactories = factories.ToArray();
|
_configurationFactories = factories.ToArray();
|
||||||
|
|
||||||
@ -266,6 +266,11 @@ namespace MediaBrowser.Common.Implementations.Configuration
|
|||||||
XmlSerializer.SerializeToFile(configuration, path);
|
XmlSerializer.SerializeToFile(configuration, path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
OnNamedConfigurationUpdated(key, configuration);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual void OnNamedConfigurationUpdated(string key, object configuration)
|
||||||
|
{
|
||||||
EventHelper.FireEventIfNotNull(NamedConfigurationUpdated, this, new ConfigurationUpdateEventArgs
|
EventHelper.FireEventIfNotNull(NamedConfigurationUpdated, this, new ConfigurationUpdateEventArgs
|
||||||
{
|
{
|
||||||
Key = key,
|
Key = key,
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using MediaBrowser.Common.Configuration;
|
using System.Collections.Generic;
|
||||||
|
using MediaBrowser.Common.Configuration;
|
||||||
using MediaBrowser.Common.Events;
|
using MediaBrowser.Common.Events;
|
||||||
using MediaBrowser.Common.Implementations.Configuration;
|
using MediaBrowser.Common.Implementations.Configuration;
|
||||||
using MediaBrowser.Controller;
|
using MediaBrowser.Controller;
|
||||||
@ -75,6 +76,13 @@ namespace MediaBrowser.Server.Implementations.Configuration
|
|||||||
base.OnConfigurationUpdated();
|
base.OnConfigurationUpdated();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override void AddParts(IEnumerable<IConfigurationFactory> factories)
|
||||||
|
{
|
||||||
|
base.AddParts(factories);
|
||||||
|
|
||||||
|
UpdateTranscodingTempPath();
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Updates the items by name path.
|
/// Updates the items by name path.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -95,6 +103,28 @@ namespace MediaBrowser.Server.Implementations.Configuration
|
|||||||
Configuration.MetadataPath;
|
Configuration.MetadataPath;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Updates the transcoding temporary path.
|
||||||
|
/// </summary>
|
||||||
|
private void UpdateTranscodingTempPath()
|
||||||
|
{
|
||||||
|
var encodingConfig = this.GetConfiguration<EncodingOptions>("encoding");
|
||||||
|
|
||||||
|
((ServerApplicationPaths)ApplicationPaths).TranscodingTempPath = string.IsNullOrEmpty(encodingConfig.TranscodingTempPath) ?
|
||||||
|
null :
|
||||||
|
encodingConfig.TranscodingTempPath;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnNamedConfigurationUpdated(string key, object configuration)
|
||||||
|
{
|
||||||
|
base.OnNamedConfigurationUpdated(key, configuration);
|
||||||
|
|
||||||
|
if (string.Equals(key, "encoding", StringComparison.OrdinalIgnoreCase))
|
||||||
|
{
|
||||||
|
UpdateTranscodingTempPath();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Replaces the configuration.
|
/// Replaces the configuration.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -238,12 +238,12 @@ namespace MediaBrowser.Server.Startup.Common
|
|||||||
/// <param name="remotePackageName">Name of the remote package.</param>
|
/// <param name="remotePackageName">Name of the remote package.</param>
|
||||||
/// <param name="supportsNativeWebSocket">if set to <c>true</c> [supports native web socket].</param>
|
/// <param name="supportsNativeWebSocket">if set to <c>true</c> [supports native web socket].</param>
|
||||||
/// <param name="nativeApp">The native application.</param>
|
/// <param name="nativeApp">The native application.</param>
|
||||||
public ApplicationHost(ServerApplicationPaths applicationPaths,
|
public ApplicationHost(ServerApplicationPaths applicationPaths,
|
||||||
ILogManager logManager,
|
ILogManager logManager,
|
||||||
StartupOptions options,
|
StartupOptions options,
|
||||||
IFileSystem fileSystem,
|
IFileSystem fileSystem,
|
||||||
string remotePackageName,
|
string remotePackageName,
|
||||||
bool supportsNativeWebSocket,
|
bool supportsNativeWebSocket,
|
||||||
INativeApp nativeApp)
|
INativeApp nativeApp)
|
||||||
: base(applicationPaths, logManager, fileSystem)
|
: base(applicationPaths, logManager, fileSystem)
|
||||||
{
|
{
|
||||||
@ -353,12 +353,14 @@ namespace MediaBrowser.Server.Startup.Common
|
|||||||
|
|
||||||
public override async Task Init(IProgress<double> progress)
|
public override async Task Init(IProgress<double> progress)
|
||||||
{
|
{
|
||||||
PerformVersionMigration();
|
PerformPreInitMigrations();
|
||||||
|
|
||||||
await base.Init(progress).ConfigureAwait(false);
|
await base.Init(progress).ConfigureAwait(false);
|
||||||
|
|
||||||
|
PerformPostInitMigrations();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void PerformVersionMigration()
|
private void PerformPreInitMigrations()
|
||||||
{
|
{
|
||||||
var migrations = new List<IVersionMigration>
|
var migrations = new List<IVersionMigration>
|
||||||
{
|
{
|
||||||
@ -375,6 +377,19 @@ namespace MediaBrowser.Server.Startup.Common
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void PerformPostInitMigrations()
|
||||||
|
{
|
||||||
|
var migrations = new List<IVersionMigration>
|
||||||
|
{
|
||||||
|
new MigrateTranscodingPath(ServerConfigurationManager)
|
||||||
|
};
|
||||||
|
|
||||||
|
foreach (var task in migrations)
|
||||||
|
{
|
||||||
|
task.Run();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Registers resources that classes will depend on
|
/// Registers resources that classes will depend on
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -383,7 +398,7 @@ namespace MediaBrowser.Server.Startup.Common
|
|||||||
{
|
{
|
||||||
await base.RegisterResources(progress).ConfigureAwait(false);
|
await base.RegisterResources(progress).ConfigureAwait(false);
|
||||||
|
|
||||||
RegisterSingleInstance<IHttpResultFactory>(new HttpResultFactory(LogManager, FileSystemManager, JsonSerializer));
|
RegisterSingleInstance<IHttpResultFactory>(new HttpResultFactory(LogManager, FileSystemManager, JsonSerializer));
|
||||||
|
|
||||||
RegisterSingleInstance<IServerApplicationHost>(this);
|
RegisterSingleInstance<IServerApplicationHost>(this);
|
||||||
RegisterSingleInstance<IServerApplicationPaths>(ApplicationPaths);
|
RegisterSingleInstance<IServerApplicationPaths>(ApplicationPaths);
|
||||||
@ -398,7 +413,7 @@ namespace MediaBrowser.Server.Startup.Common
|
|||||||
UserDataManager = new UserDataManager(LogManager);
|
UserDataManager = new UserDataManager(LogManager);
|
||||||
RegisterSingleInstance(UserDataManager);
|
RegisterSingleInstance(UserDataManager);
|
||||||
|
|
||||||
UserRepository = await GetUserRepository().ConfigureAwait(false);
|
UserRepository = await GetUserRepository().ConfigureAwait(false);
|
||||||
RegisterSingleInstance(UserRepository);
|
RegisterSingleInstance(UserRepository);
|
||||||
|
|
||||||
DisplayPreferencesRepository = new SqliteDisplayPreferencesRepository(ApplicationPaths, JsonSerializer, LogManager);
|
DisplayPreferencesRepository = new SqliteDisplayPreferencesRepository(ApplicationPaths, JsonSerializer, LogManager);
|
||||||
@ -439,7 +454,7 @@ namespace MediaBrowser.Server.Startup.Common
|
|||||||
|
|
||||||
RegisterSingleInstance<ISearchEngine>(() => new SearchEngine(LogManager, LibraryManager, UserManager));
|
RegisterSingleInstance<ISearchEngine>(() => new SearchEngine(LogManager, LibraryManager, UserManager));
|
||||||
|
|
||||||
HttpServer = ServerFactory.CreateServer(this, LogManager, "Media Browser", WebApplicationName, "dashboard/index.html", _supportsNativeWebSocket);
|
HttpServer = ServerFactory.CreateServer(this, LogManager, "Media Browser", WebApplicationName, "dashboard/index.html", _supportsNativeWebSocket);
|
||||||
RegisterSingleInstance(HttpServer, false);
|
RegisterSingleInstance(HttpServer, false);
|
||||||
progress.Report(10);
|
progress.Report(10);
|
||||||
|
|
||||||
@ -533,12 +548,12 @@ namespace MediaBrowser.Server.Startup.Common
|
|||||||
RegisterSingleInstance<ISessionContext>(new SessionContext(UserManager, authContext, SessionManager));
|
RegisterSingleInstance<ISessionContext>(new SessionContext(UserManager, authContext, SessionManager));
|
||||||
RegisterSingleInstance<IAuthService>(new AuthService(UserManager, authContext, ServerConfigurationManager, ConnectManager, SessionManager));
|
RegisterSingleInstance<IAuthService>(new AuthService(UserManager, authContext, ServerConfigurationManager, ConnectManager, SessionManager));
|
||||||
|
|
||||||
RegisterSingleInstance<ISubtitleEncoder>(new SubtitleEncoder(LibraryManager, LogManager.GetLogger("SubtitleEncoder"), ApplicationPaths, FileSystemManager, MediaEncoder, JsonSerializer));
|
RegisterSingleInstance<ISubtitleEncoder>(new SubtitleEncoder(LibraryManager, LogManager.GetLogger("SubtitleEncoder"), ApplicationPaths, FileSystemManager, MediaEncoder, JsonSerializer));
|
||||||
|
|
||||||
await ConfigureDisplayPreferencesRepositories().ConfigureAwait(false);
|
await ConfigureDisplayPreferencesRepositories().ConfigureAwait(false);
|
||||||
await ConfigureItemRepositories().ConfigureAwait(false);
|
await ConfigureItemRepositories().ConfigureAwait(false);
|
||||||
await ConfigureUserDataRepositories().ConfigureAwait(false);
|
await ConfigureUserDataRepositories().ConfigureAwait(false);
|
||||||
await ConfigureNotificationsRepository().ConfigureAwait(false);
|
await ConfigureNotificationsRepository().ConfigureAwait(false);
|
||||||
progress.Report(100);
|
progress.Report(100);
|
||||||
|
|
||||||
SetStaticProperties();
|
SetStaticProperties();
|
||||||
|
@ -66,6 +66,7 @@
|
|||||||
<Compile Include="Migrations\DeleteDlnaProfiles.cs" />
|
<Compile Include="Migrations\DeleteDlnaProfiles.cs" />
|
||||||
<Compile Include="Migrations\DeprecatePlugins.cs" />
|
<Compile Include="Migrations\DeprecatePlugins.cs" />
|
||||||
<Compile Include="Migrations\IVersionMigration.cs" />
|
<Compile Include="Migrations\IVersionMigration.cs" />
|
||||||
|
<Compile Include="Migrations\MigrateTranscodingPath.cs" />
|
||||||
<Compile Include="Migrations\MigrateUserFolders.cs" />
|
<Compile Include="Migrations\MigrateUserFolders.cs" />
|
||||||
<Compile Include="Migrations\RenameXbmcOptions.cs" />
|
<Compile Include="Migrations\RenameXbmcOptions.cs" />
|
||||||
<Compile Include="Migrations\RenameXmlOptions.cs" />
|
<Compile Include="Migrations\RenameXmlOptions.cs" />
|
||||||
|
@ -0,0 +1,30 @@
|
|||||||
|
using MediaBrowser.Common.Configuration;
|
||||||
|
using MediaBrowser.Controller.Configuration;
|
||||||
|
using MediaBrowser.Model.Configuration;
|
||||||
|
|
||||||
|
namespace MediaBrowser.Server.Startup.Common.Migrations
|
||||||
|
{
|
||||||
|
public class MigrateTranscodingPath : IVersionMigration
|
||||||
|
{
|
||||||
|
private readonly IServerConfigurationManager _config;
|
||||||
|
|
||||||
|
public MigrateTranscodingPath(IServerConfigurationManager config)
|
||||||
|
{
|
||||||
|
_config = config;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Run()
|
||||||
|
{
|
||||||
|
if (!string.IsNullOrWhiteSpace(_config.Configuration.TranscodingTempPath))
|
||||||
|
{
|
||||||
|
var newConfig = _config.GetConfiguration<EncodingOptions>("encoding");
|
||||||
|
|
||||||
|
newConfig.TranscodingTempPath = _config.Configuration.TranscodingTempPath;
|
||||||
|
_config.SaveConfiguration("encoding", newConfig);
|
||||||
|
|
||||||
|
_config.Configuration.TranscodingTempPath = null;
|
||||||
|
_config.SaveConfiguration();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user