浏览代码

Make TrickplayManifest dictionary key a string rather than Guid

Nick 1 年之前
父节点
当前提交
5a860710a8

+ 1 - 5
Emby.Server.Implementations/Dto/DtoService.cs

@@ -1064,11 +1064,7 @@ namespace Emby.Server.Implementations.Dto
 
                 if (options.ContainsField(ItemFields.Trickplay))
                 {
-                    var manifest = _trickplayManager.GetTrickplayManifest(item).GetAwaiter().GetResult();
-
-                    // To stay consistent with other fields, this must go from a Guid to a non-dashed string.
-                    // This does not seem to occur automatically to dictionaries like it does with other Guid fields.
-                    dto.Trickplay = manifest.ToDictionary(x => x.Key.ToString("N", CultureInfo.InvariantCulture), y => y.Value);
+                    dto.Trickplay = _trickplayManager.GetTrickplayManifest(item).GetAwaiter().GetResult();
                 }
 
                 if (video.ExtraType.HasValue)

+ 3 - 3
Jellyfin.Server.Implementations/Trickplay/TrickplayManager.cs

@@ -349,9 +349,9 @@ public class TrickplayManager : ITrickplayManager
     }
 
     /// <inheritdoc />
-    public async Task<Dictionary<Guid, Dictionary<int, TrickplayInfo>>> GetTrickplayManifest(BaseItem item)
+    public async Task<Dictionary<string, Dictionary<int, TrickplayInfo>>> GetTrickplayManifest(BaseItem item)
     {
-        var trickplayManifest = new Dictionary<Guid, Dictionary<int, TrickplayInfo>>();
+        var trickplayManifest = new Dictionary<string, Dictionary<int, TrickplayInfo>>();
         foreach (var mediaSource in item.GetMediaSources(false))
         {
             var mediaSourceId = Guid.Parse(mediaSource.Id);
@@ -359,7 +359,7 @@ public class TrickplayManager : ITrickplayManager
 
             if (trickplayResolutions.Count > 0)
             {
-                trickplayManifest[mediaSourceId] = trickplayResolutions;
+                trickplayManifest[mediaSource.Id] = trickplayResolutions;
             }
         }
 

+ 1 - 1
MediaBrowser.Controller/Trickplay/ITrickplayManager.cs

@@ -54,7 +54,7 @@ public interface ITrickplayManager
     /// </summary>
     /// <param name="item">The item.</param>
     /// <returns>A map of media source id to a map of tile width to trickplay info.</returns>
-    Task<Dictionary<Guid, Dictionary<int, TrickplayInfo>>> GetTrickplayManifest(BaseItem item);
+    Task<Dictionary<string, Dictionary<int, TrickplayInfo>>> GetTrickplayManifest(BaseItem item);
 
     /// <summary>
     /// Gets the path to a trickplay tile image.