Browse Source

Fix regression

Bond_009 1 year ago
parent
commit
35d63ec540
1 changed files with 9 additions and 11 deletions
  1. 9 11
      Jellyfin.Api/Helpers/StreamingHelpers.cs

+ 9 - 11
Jellyfin.Api/Helpers/StreamingHelpers.cs

@@ -421,13 +421,12 @@ public static class StreamingHelpers
     /// <param name="state">The state.</param>
     /// <param name="mediaSource">The mediaSource.</param>
     /// <returns>System.String.</returns>
-    private static string? GetOutputFileExtension(StreamState state, MediaSourceInfo? mediaSource)
+    private static string GetOutputFileExtension(StreamState state, MediaSourceInfo? mediaSource)
     {
-        var ext = Path.GetExtension(state.RequestedUrl.AsSpan());
-
-        if (ext.IsEmpty)
+        var ext = Path.GetExtension(state.RequestedUrl);
+        if (!string.IsNullOrEmpty(ext))
         {
-            return null;
+            return ext;
         }
 
         // Try to infer based on the desired video codec
@@ -463,10 +462,9 @@ public static class StreamingHelpers
                 return ".asf";
             }
         }
-
-        // Try to infer based on the desired audio codec
-        if (!state.IsVideoRequest)
+        else
         {
+            // Try to infer based on the desired audio codec
             var audioCodec = state.Request.AudioCodec;
 
             if (string.Equals("aac", audioCodec, StringComparison.OrdinalIgnoreCase))
@@ -497,7 +495,7 @@ public static class StreamingHelpers
             return '.' + (idx == -1 ? mediaSource.Container : mediaSource.Container[..idx]).Trim();
         }
 
-        return null;
+        throw new InvalidOperationException("Failed to find an appropriate file extension");
     }
 
     /// <summary>
@@ -509,12 +507,12 @@ public static class StreamingHelpers
     /// <param name="deviceId">The device id.</param>
     /// <param name="playSessionId">The play session id.</param>
     /// <returns>The complete file path, including the folder, for the transcoding file.</returns>
-    private static string GetOutputFilePath(StreamState state, string? outputFileExtension, IServerConfigurationManager serverConfigurationManager, string? deviceId, string? playSessionId)
+    private static string GetOutputFilePath(StreamState state, string outputFileExtension, IServerConfigurationManager serverConfigurationManager, string? deviceId, string? playSessionId)
     {
         var data = $"{state.MediaPath}-{state.UserAgent}-{deviceId!}-{playSessionId!}";
 
         var filename = data.GetMD5().ToString("N", CultureInfo.InvariantCulture);
-        var ext = outputFileExtension?.ToLowerInvariant();
+        var ext = outputFileExtension.ToLowerInvariant();
         var folder = serverConfigurationManager.GetTranscodePath();
 
         return Path.Combine(folder, filename + ext);