Browse Source

Fix encoding profile handling for vaapi

Mathieu Velten 6 years ago
parent
commit
060eb98cc5
1 changed files with 8 additions and 4 deletions
  1. 8 4
      MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs

+ 8 - 4
MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs

@@ -760,14 +760,18 @@ namespace MediaBrowser.Controller.MediaEncoding
 
             var request = state.BaseRequest;
             var profile = state.GetRequestedProfiles(targetVideoCodec).FirstOrDefault();
-            if (string.Equals(videoEncoder, "h264_vaapi", StringComparison.OrdinalIgnoreCase))
+
+            // vaapi does not support Baseline profile, force Constrained Baseline in this case,
+            // which is compatible (and ugly)
+            if (string.Equals(videoEncoder, "h264_vaapi", StringComparison.OrdinalIgnoreCase) &&
+                profile != null && profile.ToLower().Contains("baseline"))
             {
-                param += " -profile:v 578";
+                    profile = "constrained_baseline";
             }
-            else if (!string.IsNullOrEmpty(profile))
+
+            if (!string.IsNullOrEmpty(profile))
             {
                 if (!string.Equals(videoEncoder, "h264_omx", StringComparison.OrdinalIgnoreCase) &&
-                    !string.Equals(videoEncoder, "h264_vaapi", StringComparison.OrdinalIgnoreCase) &&
                     !string.Equals(videoEncoder, "h264_v4l2m2m", StringComparison.OrdinalIgnoreCase))
                 {
                     // not supported by h264_omx