浏览代码

Merge pull request #2369 from MediaBrowser/dev

Dev
Luke 8 年之前
父节点
当前提交
bda4afeede

+ 12 - 0
Emby.Server.Implementations/Sync/SyncManager.cs

@@ -1030,6 +1030,18 @@ namespace Emby.Server.Implementations.Sync
                 {
                     await CancelJobItem(jobItem.Id).ConfigureAwait(false);
                 }
+
+                var syncJobResult = await GetJobs(new SyncJobQuery
+                {
+                    ItemId = item,
+                    TargetId = targetId
+
+                }).ConfigureAwait(false);
+
+                foreach (var job in syncJobResult.Items)
+                {
+                    await CancelJob(job.Id).ConfigureAwait(false);
+                }
             }
         }
 

+ 5 - 0
Emby.Server.Implementations/Sync/SyncRepository.cs

@@ -360,6 +360,11 @@ namespace Emby.Server.Implementations.Sync
                         whereClauses.Add("UserId=?");
                         paramList.Add(query.UserId);
                     }
+                    if (!string.IsNullOrWhiteSpace(query.ItemId))
+                    {
+                        whereClauses.Add("ItemIds like ?");
+                        paramList.Add("%" + query.ItemId + "%");
+                    }
                     if (query.SyncNewContent.HasValue)
                     {
                         whereClauses.Add("SyncNewContent=?");

+ 11 - 7
MediaBrowser.Api/Playback/BaseStreamingService.cs

@@ -1967,10 +1967,15 @@ namespace MediaBrowser.Api.Playback
                 state.OutputVideoCodec = state.VideoRequest.VideoCodec;
                 state.OutputVideoBitrate = GetVideoBitrateParamValue(state.VideoRequest, state.VideoStream, state.OutputVideoCodec);
 
-                if (state.OutputVideoBitrate.HasValue)
+                if (videoRequest != null)
+                {
+                    TryStreamCopy(state, videoRequest);
+                }
+
+                if (state.OutputVideoBitrate.HasValue && !string.Equals(state.OutputVideoCodec, "copy", StringComparison.OrdinalIgnoreCase))
                 {
                     var resolution = ResolutionNormalizer.Normalize(
-                        state.VideoStream == null ? (int?)null : state.VideoStream.BitRate,
+                        state.VideoStream == null ? (int?) null : state.VideoStream.BitRate,
                         state.OutputVideoBitrate.Value,
                         state.VideoStream == null ? null : state.VideoStream.Codec,
                         state.OutputVideoCodec,
@@ -1980,13 +1985,12 @@ namespace MediaBrowser.Api.Playback
                     videoRequest.MaxWidth = resolution.MaxWidth;
                     videoRequest.MaxHeight = resolution.MaxHeight;
                 }
-            }
 
-            ApplyDeviceProfileSettings(state);
-
-            if (videoRequest != null)
+                ApplyDeviceProfileSettings(state);
+            }
+            else
             {
-                TryStreamCopy(state, videoRequest);
+                ApplyDeviceProfileSettings(state);
             }
 
             state.OutputFilePath = GetOutputFilePath(state);

+ 1 - 0
MediaBrowser.Model/Sync/SyncJobQuery.cs

@@ -24,6 +24,7 @@ namespace MediaBrowser.Model.Sync
         /// <value>The user identifier.</value>
         public string UserId { get; set; }
         public string ExcludeTargetIds { get; set; }
+        public string ItemId { get; set; }
         /// <summary>
         /// Gets or sets the status.
         /// </summary>