Browse Source

Fix ffprobe -user_agent parameter

The PR #10448 was doing it wrong and actually did not work. Even its unit testing was testing for a wrong output.

Signed-off-by: gnattu <gnattuoc@me.com>
gnattu 1 year ago
parent
commit
d07ec4ad0f

+ 2 - 2
MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs

@@ -456,9 +456,9 @@ namespace MediaBrowser.MediaEncoding.Encoder
                 extraArgs += " -probesize " + ffmpegProbeSize;
             }
 
-            if (request.MediaSource.RequiredHttpHeaders.TryGetValue("user_agent", out var userAgent))
+            if (request.MediaSource.RequiredHttpHeaders.TryGetValue("User-Agent", out var userAgent))
             {
-                extraArgs += " -user_agent " + userAgent;
+                extraArgs += $" -user_agent \"{userAgent}\"";
             }
 
             if (request.MediaSource.Protocol == MediaProtocol.Rtsp)

+ 2 - 2
tests/Jellyfin.MediaEncoding.Tests/Probing/ProbeExternalSourcesTests.cs

@@ -35,7 +35,7 @@ namespace Jellyfin.MediaEncoding.Tests.Probing
                     Protocol = MediaProtocol.Http,
                     RequiredHttpHeaders = new Dictionary<string, string>()
                     {
-                        { "user_agent", userAgent },
+                        { "User-Agent", userAgent },
                     }
                 },
                 ExtractChapters = false,
@@ -44,7 +44,7 @@ namespace Jellyfin.MediaEncoding.Tests.Probing
 
             var extraArg = encoder.GetExtraArguments(req);
 
-            Assert.Contains(userAgent, extraArg, StringComparison.InvariantCulture);
+            Assert.Contains($"-user_agent \"{userAgent}\"", extraArg, StringComparison.InvariantCulture);
         }
     }
 }