aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2015-02-09 15:54:04 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2015-02-09 15:54:04 -0500
commit6f55ff220a891fd63f6da7e329d8f4765341bdf3 (patch)
treef7b9cfaa914669c5a668a3b4b2d8224452a5c312
parent4d6c37f1169e14f3ce0194f33c347ef79927a2c3 (diff)
added sync original quality
-rw-r--r--MediaBrowser.Model/Sync/SyncQuality.cs6
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json3
-rw-r--r--MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs9
-rw-r--r--MediaBrowser.Server.Implementations/Sync/SyncManager.cs20
4 files changed, 32 insertions, 6 deletions
diff --git a/MediaBrowser.Model/Sync/SyncQuality.cs b/MediaBrowser.Model/Sync/SyncQuality.cs
index d34ad22c2..27ee756a3 100644
--- a/MediaBrowser.Model/Sync/SyncQuality.cs
+++ b/MediaBrowser.Model/Sync/SyncQuality.cs
@@ -16,6 +16,10 @@ namespace MediaBrowser.Model.Sync
/// <summary>
/// The best
/// </summary>
- High = 2
+ High = 2,
+ /// <summary>
+ /// The original
+ /// </summary>
+ Original = 3
}
}
diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json
index 9d2c98c83..d5958358d 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json
@@ -97,7 +97,7 @@
"HeaderSelectSubtitles": "Select Subtitles",
"ButtonMarkForRemoval": "Remove from device",
"ButtonUnmarkForRemoval": "Cancel removal from device",
- "LabelSyncQualityHelp": "Use high quality for the maximum supported quality by the device. Medium and low quality will reduce the allowed bitrate.",
+ "LabelSyncQualityHelp": "Use high quality for the maximum supported quality by the device. Medium and low quality will reduce the allowed bitrate. Original will sync the original file, regardless of whether the device is capable of playing it or not.",
"LabelDefaultStream": "(Default)",
"LabelForcedStream": "(Forced)",
"LabelDefaultForcedStream": "(Default/Forced)",
@@ -708,6 +708,7 @@
"LabelSyncTo": "Sync to:",
"LabelSyncJobName": "Sync job name:",
"LabelQuality": "Quality:",
+ "OptionOriginal": "Original",
"OptionHigh": "High",
"OptionMedium": "Medium",
"OptionLow": "Low",
diff --git a/MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs b/MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs
index e9d9dc46f..a254d862c 100644
--- a/MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs
+++ b/MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs
@@ -486,7 +486,8 @@ namespace MediaBrowser.Server.Implementations.Sync
streamInfo.GetExternalSubtitles("dummy", false);
// Mark as requiring conversion if transcoding the video, or if any subtitles need to be extracted
- var requiresConversion = streamInfo.PlayMethod == PlayMethod.Transcode || externalSubs.Any(i => RequiresExtraction(i, mediaSource));
+ var requiresVideoTranscoding = streamInfo.PlayMethod == PlayMethod.Transcode && job.Quality != SyncQuality.Original;
+ var requiresConversion = requiresVideoTranscoding || externalSubs.Any(i => RequiresExtraction(i, mediaSource));
if (requiresConversion && !enableConversion)
{
@@ -501,7 +502,7 @@ namespace MediaBrowser.Server.Implementations.Sync
jobItem.Status = SyncJobItemStatus.Converting;
}
- if (streamInfo.PlayMethod == PlayMethod.Transcode)
+ if (requiresVideoTranscoding)
{
// Save the job item now since conversion could take a while
await _syncManager.UpdateSyncJobItemInternal(jobItem).ConfigureAwait(false);
@@ -673,7 +674,7 @@ namespace MediaBrowser.Server.Implementations.Sync
jobItem.MediaSourceId = streamInfo.MediaSourceId;
jobItem.TemporaryPath = GetTemporaryPath(jobItem);
- if (streamInfo.PlayMethod == PlayMethod.Transcode)
+ if (streamInfo.PlayMethod == PlayMethod.Transcode && job.Quality != SyncQuality.Original)
{
if (!enableConversion)
{
@@ -760,7 +761,7 @@ namespace MediaBrowser.Server.Implementations.Sync
private async Task SyncGeneric(SyncJobItem jobItem, BaseItem item, CancellationToken cancellationToken)
{
jobItem.OutputPath = item.Path;
-
+
jobItem.Progress = 50;
jobItem.Status = SyncJobItemStatus.ReadyToTransfer;
await _syncManager.UpdateSyncJobItemInternal(jobItem).ConfigureAwait(false);
diff --git a/MediaBrowser.Server.Implementations/Sync/SyncManager.cs b/MediaBrowser.Server.Implementations/Sync/SyncManager.cs
index 0114d734a..098e2b095 100644
--- a/MediaBrowser.Server.Implementations/Sync/SyncManager.cs
+++ b/MediaBrowser.Server.Implementations/Sync/SyncManager.cs
@@ -457,10 +457,30 @@ namespace MediaBrowser.Server.Implementations.Sync
return false;
}
+ if (video.VideoType == VideoType.BluRay || video.VideoType == VideoType.Dvd || video.VideoType == VideoType.HdDvd)
+ {
+ return false;
+ }
+
+ if (video.IsPlaceHolder)
+ {
+ return false;
+ }
+
+ if (video.IsArchive)
+ {
+ return false;
+ }
+
if (video.IsStacked)
{
return false;
}
+
+ if (video.IsShortcut)
+ {
+ return false;
+ }
}
var game = item as Game;