Browse Source

Add HWA video transpose support (+-90/180)

Signed-off-by: nyanmisaka <nst799610810@gmail.com>
nyanmisaka 1 year ago
parent
commit
deb36eeeda

File diff suppressed because it is too large
+ 258 - 94
MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs


+ 6 - 1
MediaBrowser.Controller/MediaEncoding/FilterOptionType.cs

@@ -33,6 +33,11 @@ namespace MediaBrowser.Controller.MediaEncoding
         /// <summary>
         /// <summary>
         /// The overlay_vulkan_framesync.
         /// The overlay_vulkan_framesync.
         /// </summary>
         /// </summary>
-        OverlayVulkanFrameSync = 5
+        OverlayVulkanFrameSync = 5,
+
+        /// <summary>
+        /// The transpose_opencl_reversal.
+        /// </summary>
+        TransposeOpenclReversal = 6
     }
     }
 }
 }

+ 8 - 1
MediaBrowser.MediaEncoding/Encoder/EncoderValidator.cs

@@ -110,25 +110,31 @@ namespace MediaBrowser.MediaEncoding.Encoder
             "yadif_cuda",
             "yadif_cuda",
             "tonemap_cuda",
             "tonemap_cuda",
             "overlay_cuda",
             "overlay_cuda",
+            "transpose_cuda",
             "hwupload_cuda",
             "hwupload_cuda",
             // opencl
             // opencl
             "scale_opencl",
             "scale_opencl",
             "tonemap_opencl",
             "tonemap_opencl",
             "overlay_opencl",
             "overlay_opencl",
+            "transpose_opencl",
             // vaapi
             // vaapi
             "scale_vaapi",
             "scale_vaapi",
             "deinterlace_vaapi",
             "deinterlace_vaapi",
             "tonemap_vaapi",
             "tonemap_vaapi",
             "procamp_vaapi",
             "procamp_vaapi",
             "overlay_vaapi",
             "overlay_vaapi",
+            "transpose_vaapi",
             "hwupload_vaapi",
             "hwupload_vaapi",
             // vulkan
             // vulkan
             "libplacebo",
             "libplacebo",
             "scale_vulkan",
             "scale_vulkan",
             "overlay_vulkan",
             "overlay_vulkan",
+            "transpose_vulkan",
+            "flip_vulkan",
             // videotoolbox
             // videotoolbox
             "yadif_videotoolbox",
             "yadif_videotoolbox",
             "scale_vt",
             "scale_vt",
+            "transpose_vt",
             "overlay_videotoolbox",
             "overlay_videotoolbox",
             "tonemap_videotoolbox",
             "tonemap_videotoolbox",
             // rkrga
             // rkrga
@@ -144,7 +150,8 @@ namespace MediaBrowser.MediaEncoding.Encoder
             { 2, new string[] { "tonemap_opencl", "bt2390" } },
             { 2, new string[] { "tonemap_opencl", "bt2390" } },
             { 3, new string[] { "overlay_opencl", "Action to take when encountering EOF from secondary input" } },
             { 3, new string[] { "overlay_opencl", "Action to take when encountering EOF from secondary input" } },
             { 4, new string[] { "overlay_vaapi", "Action to take when encountering EOF from secondary input" } },
             { 4, new string[] { "overlay_vaapi", "Action to take when encountering EOF from secondary input" } },
-            { 5, new string[] { "overlay_vulkan", "Action to take when encountering EOF from secondary input" } }
+            { 5, new string[] { "overlay_vulkan", "Action to take when encountering EOF from secondary input" } },
+            { 6, new string[] { "transpose_opencl", "rotate by half-turn" } }
         };
         };
 
 
         // These are the library versions that corresponds to our minimum ffmpeg version 4.4 according to the version table below
         // These are the library versions that corresponds to our minimum ffmpeg version 4.4 according to the version table below

Some files were not shown because too many files changed in this diff