diff --git a/MediaBrowser.Server.Implementations/Sync/AppSyncProvider.cs b/MediaBrowser.Server.Implementations/Sync/AppSyncProvider.cs
index e6af28c7dd..c86549cb3d 100644
--- a/MediaBrowser.Server.Implementations/Sync/AppSyncProvider.cs
+++ b/MediaBrowser.Server.Implementations/Sync/AppSyncProvider.cs
@@ -3,6 +3,7 @@ using MediaBrowser.Controller.Sync;
using MediaBrowser.Model.Devices;
using MediaBrowser.Model.Dlna;
using MediaBrowser.Model.Sync;
+using System;
using System.Collections.Generic;
using System.Linq;
@@ -31,11 +32,28 @@ namespace MediaBrowser.Server.Implementations.Sync
});
}
- public DeviceProfile GetDeviceProfile(SyncTarget target)
+ public DeviceProfile GetDeviceProfile(SyncTarget target, string quality)
{
var caps = _deviceManager.GetCapabilities(target.Id);
- return caps == null || caps.DeviceProfile == null ? new DeviceProfile() : caps.DeviceProfile;
+ var profile = caps == null || caps.DeviceProfile == null ? new DeviceProfile() : caps.DeviceProfile;
+ var maxBitrate = profile.MaxStaticBitrate;
+
+ if (maxBitrate.HasValue)
+ {
+ if (string.Equals(quality, "medium", StringComparison.OrdinalIgnoreCase))
+ {
+ maxBitrate = Convert.ToInt32(maxBitrate.Value * .75);
+ }
+ else if (string.Equals(quality, "low", StringComparison.OrdinalIgnoreCase))
+ {
+ maxBitrate = Convert.ToInt32(maxBitrate.Value * .5);
+ }
+
+ profile.MaxStaticBitrate = maxBitrate;
+ }
+
+ return profile;
}
public string Name
diff --git a/MediaBrowser.Server.Implementations/Sync/IHasSyncQuality.cs b/MediaBrowser.Server.Implementations/Sync/IHasSyncQuality.cs
index 9b45e66e12..fa73a1cac3 100644
--- a/MediaBrowser.Server.Implementations/Sync/IHasSyncQuality.cs
+++ b/MediaBrowser.Server.Implementations/Sync/IHasSyncQuality.cs
@@ -10,9 +10,10 @@ namespace MediaBrowser.Server.Implementations.Sync
/// Gets the device profile.
///
/// The target.
+ /// The quality.
/// DeviceProfile.
- DeviceProfile GetDeviceProfile(SyncTarget target);
-
+ DeviceProfile GetDeviceProfile(SyncTarget target, string quality);
+
///
/// Gets the quality options.
///
diff --git a/MediaBrowser.Server.Implementations/Sync/SyncManager.cs b/MediaBrowser.Server.Implementations/Sync/SyncManager.cs
index c02a54f901..0051447c0b 100644
--- a/MediaBrowser.Server.Implementations/Sync/SyncManager.cs
+++ b/MediaBrowser.Server.Implementations/Sync/SyncManager.cs
@@ -974,7 +974,7 @@ namespace MediaBrowser.Server.Implementations.Sync
public AudioOptions GetAudioOptions(SyncJobItem jobItem, SyncJob job)
{
- var profile = GetDeviceProfile(jobItem.TargetId, job.Quality);
+ var profile = GetDeviceProfile(jobItem.TargetId, null);
return new AudioOptions
{
@@ -985,24 +985,10 @@ namespace MediaBrowser.Server.Implementations.Sync
public VideoOptions GetVideoOptions(SyncJobItem jobItem, SyncJob job)
{
var profile = GetDeviceProfile(jobItem.TargetId, job.Quality);
- var maxBitrate = profile.MaxStaticBitrate;
-
- if (maxBitrate.HasValue)
- {
- if (string.Equals(job.Quality, "medium", StringComparison.OrdinalIgnoreCase))
- {
- maxBitrate = Convert.ToInt32(maxBitrate.Value * .75);
- }
- else if (string.Equals(job.Quality, "low", StringComparison.OrdinalIgnoreCase))
- {
- maxBitrate = Convert.ToInt32(maxBitrate.Value * .5);
- }
- }
return new VideoOptions
{
- Profile = profile,
- MaxBitrate = maxBitrate
+ Profile = profile
};
}
@@ -1028,7 +1014,7 @@ namespace MediaBrowser.Server.Implementations.Sync
if (hasProfile != null)
{
- return hasProfile.GetDeviceProfile(target);
+ return hasProfile.GetDeviceProfile(target, quality);
}
return new CloudSyncProfile(true, false);