From f6327e25a7d122438274adcb77354856d72ce148 Mon Sep 17 00:00:00 2001 From: Seungha Yang Date: Sun, 13 Nov 2022 03:07:54 +0900 Subject: [PATCH] qsv: Promote encoder rank to PRIMARY on Windows QSV is very well integrated with GstD3D11 infrastructure on Windows, and this is the recommended H/W encoder element over the MediaFoundation plugins on Intel GPU system. Part-of: --- .../gst-plugins-bad/docs/plugins/gst_plugins_cache.json | 10 +++++----- subprojects/gst-plugins-bad/sys/qsv/plugin.cpp | 13 ++++++++----- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/subprojects/gst-plugins-bad/docs/plugins/gst_plugins_cache.json b/subprojects/gst-plugins-bad/docs/plugins/gst_plugins_cache.json index 30a8ccf..778557a 100644 --- a/subprojects/gst-plugins-bad/docs/plugins/gst_plugins_cache.json +++ b/subprojects/gst-plugins-bad/docs/plugins/gst_plugins_cache.json @@ -225364,7 +225364,7 @@ "writable": true } }, - "rank": "none" + "rank": "primary" }, "qsvh264dec": { "author": "Seungha Yang ", @@ -225763,7 +225763,7 @@ "writable": true } }, - "rank": "none" + "rank": "primary" }, "qsvh265dec": { "author": "Seungha Yang ", @@ -226096,7 +226096,7 @@ "writable": true } }, - "rank": "none" + "rank": "primary" }, "qsvjpegdec": { "author": "Seungha Yang ", @@ -226169,7 +226169,7 @@ "writable": true } }, - "rank": "none" + "rank": "primary" }, "qsvvp9dec": { "author": "Seungha Yang ", @@ -226338,7 +226338,7 @@ "writable": true } }, - "rank": "none" + "rank": "primary" } }, "filename": "gstqsv", diff --git a/subprojects/gst-plugins-bad/sys/qsv/plugin.cpp b/subprojects/gst-plugins-bad/sys/qsv/plugin.cpp index b71a01a..15887f8 100644 --- a/subprojects/gst-plugins-bad/sys/qsv/plugin.cpp +++ b/subprojects/gst-plugins-bad/sys/qsv/plugin.cpp @@ -209,12 +209,15 @@ plugin_init (GstPlugin * plugin) mfxLoader loader; guint i = 0; GList *platform_devices = nullptr; + GstRank enc_rank = GST_RANK_NONE; #ifdef G_OS_WIN32 /* D3D11 Video API is supported since Windows 8. * Do we want to support old OS (Windows 7 for example) with D3D9 ?? */ if (!IsWindows8OrGreater ()) return TRUE; + + enc_rank = GST_RANK_PRIMARY; #endif GST_DEBUG_CATEGORY_INIT (gst_qsv_debug, "qsv", 0, "Intel Quick Sync Video"); @@ -261,11 +264,11 @@ plugin_init (GstPlugin * plugin) gst_qsv_jpeg_dec_register (plugin, GST_RANK_SECONDARY, i, device, session); gst_qsv_vp9_dec_register (plugin, GST_RANK_MARGINAL, i, device, session); - gst_qsv_h264_enc_register (plugin, GST_RANK_NONE, i, device, session); - gst_qsv_h265_enc_register (plugin, GST_RANK_NONE, i, device, session); - gst_qsv_jpeg_enc_register (plugin, GST_RANK_NONE, i, device, session); - gst_qsv_vp9_enc_register (plugin, GST_RANK_NONE, i, device, session); - gst_qsv_av1_enc_register (plugin, GST_RANK_NONE, i, device, session); + gst_qsv_h264_enc_register (plugin, enc_rank, i, device, session); + gst_qsv_h265_enc_register (plugin, enc_rank, i, device, session); + gst_qsv_jpeg_enc_register (plugin, enc_rank, i, device, session); + gst_qsv_vp9_enc_register (plugin, enc_rank, i, device, session); + gst_qsv_av1_enc_register (plugin, enc_rank, i, device, session); next: MFXDispReleaseImplDescription (loader, desc); -- 2.7.4