mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-06-23 15:30:56 -04:00
add quality methods
This commit is contained in:
parent
6384c5bab0
commit
1a81da5a8f
@ -3,6 +3,7 @@ using MediaBrowser.Controller.Sync;
|
|||||||
using MediaBrowser.Model.Devices;
|
using MediaBrowser.Model.Devices;
|
||||||
using MediaBrowser.Model.Dlna;
|
using MediaBrowser.Model.Dlna;
|
||||||
using MediaBrowser.Model.Sync;
|
using MediaBrowser.Model.Sync;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
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);
|
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
|
public string Name
|
||||||
|
@ -10,8 +10,9 @@ namespace MediaBrowser.Server.Implementations.Sync
|
|||||||
/// Gets the device profile.
|
/// Gets the device profile.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="target">The target.</param>
|
/// <param name="target">The target.</param>
|
||||||
|
/// <param name="quality">The quality.</param>
|
||||||
/// <returns>DeviceProfile.</returns>
|
/// <returns>DeviceProfile.</returns>
|
||||||
DeviceProfile GetDeviceProfile(SyncTarget target);
|
DeviceProfile GetDeviceProfile(SyncTarget target, string quality);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the quality options.
|
/// Gets the quality options.
|
||||||
|
@ -974,7 +974,7 @@ namespace MediaBrowser.Server.Implementations.Sync
|
|||||||
|
|
||||||
public AudioOptions GetAudioOptions(SyncJobItem jobItem, SyncJob job)
|
public AudioOptions GetAudioOptions(SyncJobItem jobItem, SyncJob job)
|
||||||
{
|
{
|
||||||
var profile = GetDeviceProfile(jobItem.TargetId, job.Quality);
|
var profile = GetDeviceProfile(jobItem.TargetId, null);
|
||||||
|
|
||||||
return new AudioOptions
|
return new AudioOptions
|
||||||
{
|
{
|
||||||
@ -985,24 +985,10 @@ namespace MediaBrowser.Server.Implementations.Sync
|
|||||||
public VideoOptions GetVideoOptions(SyncJobItem jobItem, SyncJob job)
|
public VideoOptions GetVideoOptions(SyncJobItem jobItem, SyncJob job)
|
||||||
{
|
{
|
||||||
var profile = GetDeviceProfile(jobItem.TargetId, job.Quality);
|
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
|
return new VideoOptions
|
||||||
{
|
{
|
||||||
Profile = profile,
|
Profile = profile
|
||||||
MaxBitrate = maxBitrate
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1028,7 +1014,7 @@ namespace MediaBrowser.Server.Implementations.Sync
|
|||||||
|
|
||||||
if (hasProfile != null)
|
if (hasProfile != null)
|
||||||
{
|
{
|
||||||
return hasProfile.GetDeviceProfile(target);
|
return hasProfile.GetDeviceProfile(target, quality);
|
||||||
}
|
}
|
||||||
|
|
||||||
return new CloudSyncProfile(true, false);
|
return new CloudSyncProfile(true, false);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user