diff options
author | Seungha Yang <seungha@centricular.com> | 2020-06-12 19:07:07 +0900 |
---|---|---|
committer | GStreamer Merge Bot <gitlab-merge-bot@gstreamer-foundation.org> | 2020-06-16 10:49:02 +0000 |
commit | d12c0c4c7b0026633ae3966492be2daf3f497151 (patch) | |
tree | 6a24a7b8f3f7eff90ed544ac72dfaf8134d7cd82 /sys | |
parent | b5c8889d4f8a64b1cd22786b4228304c9c0f93d4 (diff) | |
download | gstreamer-plugins-bad-d12c0c4c7b0026633ae3966492be2daf3f497151.tar.gz |
d3d11utils: Add a helper method for checking Xbox device
Required for some cases to work around device specific issue
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1339>
Diffstat (limited to 'sys')
-rw-r--r-- | sys/d3d11/gstd3d11utils.c | 21 | ||||
-rw-r--r-- | sys/d3d11/gstd3d11utils.h | 2 |
2 files changed, 23 insertions, 0 deletions
diff --git a/sys/d3d11/gstd3d11utils.c b/sys/d3d11/gstd3d11utils.c index 32a701828..7d33048d1 100644 --- a/sys/d3d11/gstd3d11utils.c +++ b/sys/d3d11/gstd3d11utils.c @@ -342,6 +342,27 @@ gst_d3d11_is_windows_8_or_greater (void) return ret; } +gboolean +gst_d3d11_is_xbox_device (GstD3D11Device * device) +{ + guint device_id = 0; + guint vendor_id = 0; + gchar *desc = NULL; + gboolean ret = FALSE; + + g_return_val_if_fail (GST_IS_D3D11_DEVICE (device), FALSE); + + g_object_get (device, "device-id", &device_id, "vendor-id", &vendor_id, + "description", &desc, NULL); + + if (device_id == 0 && vendor_id == 0 && desc && g_strrstr (desc, "SraKmd")) + ret = TRUE; + + g_free (desc); + + return ret; +} + static gchar * gst_d3d11_hres_to_string (HRESULT hr) { diff --git a/sys/d3d11/gstd3d11utils.h b/sys/d3d11/gstd3d11utils.h index eb02945a8..ab3618f3c 100644 --- a/sys/d3d11/gstd3d11utils.h +++ b/sys/d3d11/gstd3d11utils.h @@ -42,6 +42,8 @@ gboolean gst_d3d11_ensure_element_data (GstElement * element, gboolean gst_d3d11_is_windows_8_or_greater (void); +gboolean gst_d3d11_is_xbox_device (GstD3D11Device * device); + gboolean _gst_d3d11_result (HRESULT hr, GstD3D11Device * device, GstDebugCategory * cat, |