diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-03-15 15:10:27 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-03-15 15:10:27 -0400 |
| commit | 280ab32ec1da02afeadd0ef8cc6ac41fa618d74c (patch) | |
| tree | 511efb5c4c4edfd6e3d4b8e0773831632b887c8c /MediaBrowser.Server.Implementations/Sync/SyncManager.cs | |
| parent | 72a5383c703b86286cf61decb92b987b48b50d3c (diff) | |
sync updates
Diffstat (limited to 'MediaBrowser.Server.Implementations/Sync/SyncManager.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Sync/SyncManager.cs | 67 |
1 files changed, 35 insertions, 32 deletions
diff --git a/MediaBrowser.Server.Implementations/Sync/SyncManager.cs b/MediaBrowser.Server.Implementations/Sync/SyncManager.cs index 0ec05a0aa..59ecf1c98 100644 --- a/MediaBrowser.Server.Implementations/Sync/SyncManager.cs +++ b/MediaBrowser.Server.Implementations/Sync/SyncManager.cs @@ -160,7 +160,8 @@ namespace MediaBrowser.Server.Implementations.Sync Category = request.Category, ParentId = request.ParentId, Quality = request.Quality, - Profile = request.Profile + Profile = request.Profile, + Bitrate = request.Bitrate }; if (!request.Category.HasValue && request.ItemIds != null) @@ -982,38 +983,31 @@ namespace MediaBrowser.Server.Implementations.Sync return _repo.GetLibraryItemIds(query); } - private bool IsOriginalQuality(SyncJob job) + public SyncJobOptions GetAudioOptions(SyncJobItem jobItem, SyncJob job) { - return string.IsNullOrWhiteSpace(job.Quality) || - string.Equals(job.Quality, "original", StringComparison.OrdinalIgnoreCase) || - string.Equals(job.Profile, "original", StringComparison.OrdinalIgnoreCase); - } - - public SyncJobOptions<AudioOptions> GetAudioOptions(SyncJobItem jobItem, SyncJob job) - { - return new SyncJobOptions<AudioOptions> + var options = GetSyncJobOptions(jobItem.TargetId, null, null); + + if (job.Bitrate.HasValue) { - ConversionOptions = new AudioOptions - { - Profile = GetDeviceProfile(jobItem.TargetId, null, null) - }, - IsConverting = !IsOriginalQuality(job) - }; + options.DeviceProfile.MaxStaticBitrate = job.Bitrate.Value; + } + + return options; } - public SyncJobOptions<VideoOptions> GetVideoOptions(SyncJobItem jobItem, SyncJob job) + public SyncJobOptions GetVideoOptions(SyncJobItem jobItem, SyncJob job) { - return new SyncJobOptions<VideoOptions> + var options = GetSyncJobOptions(jobItem.TargetId, job.Profile, job.Quality); + + if (job.Bitrate.HasValue) { - ConversionOptions = new VideoOptions - { - Profile = GetDeviceProfile(jobItem.TargetId, job.Profile, job.Quality) - }, - IsConverting = !IsOriginalQuality(job) - }; + options.DeviceProfile.MaxStaticBitrate = job.Bitrate.Value; + } + + return options; } - private DeviceProfile GetDeviceProfile(string targetId, string profile, string quality) + private SyncJobOptions GetSyncJobOptions(string targetId, string profile, string quality) { foreach (var provider in _providers) { @@ -1021,32 +1015,41 @@ namespace MediaBrowser.Server.Implementations.Sync { if (string.Equals(target.Id, targetId, StringComparison.OrdinalIgnoreCase)) { - return GetDeviceProfile(provider, target, profile, quality); + return GetSyncJobOptions(provider, target, profile, quality); } } } - return null; + return GetDefaultSyncJobOptions(profile, quality); } - private DeviceProfile GetDeviceProfile(ISyncProvider provider, SyncTarget target, string profile, string quality) + private SyncJobOptions GetSyncJobOptions(ISyncProvider provider, SyncTarget target, string profile, string quality) { var hasProfile = provider as IHasSyncQuality; if (hasProfile != null) { - return hasProfile.GetDeviceProfile(target, profile, quality); + return hasProfile.GetSyncJobOptions(target, profile, quality); } - return GetDeviceProfile(profile, quality); + return GetDefaultSyncJobOptions(profile, quality); } - private DeviceProfile GetDeviceProfile(string profile, string quality) + private SyncJobOptions GetDefaultSyncJobOptions(string profile, string quality) { var deviceProfile = new CloudSyncProfile(true, false); deviceProfile.MaxStaticBitrate = SyncHelper.AdjustBitrate(deviceProfile.MaxStaticBitrate, quality); - return deviceProfile; + return new SyncJobOptions + { + DeviceProfile = deviceProfile, + IsConverting = IsConverting(profile, quality) + }; + } + + private bool IsConverting(string profile, string quality) + { + return !string.Equals(profile, "original", StringComparison.OrdinalIgnoreCase); } public IEnumerable<SyncQualityOption> GetQualityOptions(string targetId) |
