aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs')
-rw-r--r--MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs27
1 files changed, 18 insertions, 9 deletions
diff --git a/MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs b/MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs
index b09bfe91f..698806d09 100644
--- a/MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs
+++ b/MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs
@@ -340,16 +340,17 @@ namespace MediaBrowser.Server.Implementations.Sync
var innerProgress = new ActionableProgress<double>();
- await ProcessJobItem(item, innerProgress, cancellationToken).ConfigureAwait(false);
-
var job = _syncRepo.GetJob(item.JobId);
+ await ProcessJobItem(job, item, innerProgress, cancellationToken).ConfigureAwait(false);
+
+ job = _syncRepo.GetJob(item.JobId);
await UpdateJobStatus(job).ConfigureAwait(false);
index++;
}
}
- private async Task ProcessJobItem(SyncJobItem jobItem, IProgress<double> progress, CancellationToken cancellationToken)
+ private async Task ProcessJobItem(SyncJob job, SyncJobItem jobItem, IProgress<double> progress, CancellationToken cancellationToken)
{
var item = _libraryManager.GetItemById(jobItem.ItemId);
if (item == null)
@@ -372,15 +373,17 @@ namespace MediaBrowser.Server.Implementations.Sync
jobItem.Progress = 0;
jobItem.Status = SyncJobItemStatus.Converting;
+ var user = _userManager.GetUserById(job.UserId);
+
var video = item as Video;
if (video != null)
{
- await Sync(jobItem, video, deviceProfile, progress, cancellationToken).ConfigureAwait(false);
+ await Sync(jobItem, video, user, deviceProfile, progress, cancellationToken).ConfigureAwait(false);
}
else if (item is Audio)
{
- await Sync(jobItem, (Audio)item, deviceProfile, progress, cancellationToken).ConfigureAwait(false);
+ await Sync(jobItem, (Audio)item, user, deviceProfile, progress, cancellationToken).ConfigureAwait(false);
}
else if (item is Photo)
@@ -394,7 +397,7 @@ namespace MediaBrowser.Server.Implementations.Sync
}
}
- private async Task Sync(SyncJobItem jobItem, Video item, DeviceProfile profile, IProgress<double> progress, CancellationToken cancellationToken)
+ private async Task Sync(SyncJobItem jobItem, Video item, User user, DeviceProfile profile, IProgress<double> progress, CancellationToken cancellationToken)
{
var options = new VideoOptions
{
@@ -402,7 +405,7 @@ namespace MediaBrowser.Server.Implementations.Sync
ItemId = item.Id.ToString("N"),
DeviceId = jobItem.TargetId,
Profile = profile,
- MediaSources = item.GetMediaSources(false).ToList()
+ MediaSources = item.GetMediaSources(false, user).ToList()
};
var streamInfo = new StreamBuilder().BuildVideoItem(options);
@@ -413,6 +416,7 @@ namespace MediaBrowser.Server.Implementations.Sync
if (streamInfo.PlayMethod == PlayMethod.Transcode)
{
jobItem.Status = SyncJobItemStatus.Converting;
+ jobItem.RequiresConversion = true;
await _syncRepo.Update(jobItem).ConfigureAwait(false);
try
@@ -438,6 +442,8 @@ namespace MediaBrowser.Server.Implementations.Sync
}
else
{
+ jobItem.RequiresConversion = false;
+
if (mediaSource.Protocol == MediaProtocol.File)
{
jobItem.OutputPath = mediaSource.Path;
@@ -457,7 +463,7 @@ namespace MediaBrowser.Server.Implementations.Sync
await _syncRepo.Update(jobItem).ConfigureAwait(false);
}
- private async Task Sync(SyncJobItem jobItem, Audio item, DeviceProfile profile, IProgress<double> progress, CancellationToken cancellationToken)
+ private async Task Sync(SyncJobItem jobItem, Audio item, User user, DeviceProfile profile, IProgress<double> progress, CancellationToken cancellationToken)
{
var options = new AudioOptions
{
@@ -465,7 +471,7 @@ namespace MediaBrowser.Server.Implementations.Sync
ItemId = item.Id.ToString("N"),
DeviceId = jobItem.TargetId,
Profile = profile,
- MediaSources = item.GetMediaSources(false).ToList()
+ MediaSources = item.GetMediaSources(false, user).ToList()
};
var streamInfo = new StreamBuilder().BuildAudioItem(options);
@@ -476,6 +482,7 @@ namespace MediaBrowser.Server.Implementations.Sync
if (streamInfo.PlayMethod == PlayMethod.Transcode)
{
jobItem.Status = SyncJobItemStatus.Converting;
+ jobItem.RequiresConversion = true;
await _syncRepo.Update(jobItem).ConfigureAwait(false);
try
@@ -500,6 +507,8 @@ namespace MediaBrowser.Server.Implementations.Sync
}
else
{
+ jobItem.RequiresConversion = false;
+
if (mediaSource.Protocol == MediaProtocol.File)
{
jobItem.OutputPath = mediaSource.Path;