From bfab93dabedcc7b2a40b7265d53e52856656550e Mon Sep 17 00:00:00 2001 From: Matthew Waters Date: Mon, 8 Feb 2016 14:32:10 +1100 Subject: [PATCH] vulkan: move instance_open into the utility ensure_element_data So callers don't have to perform it themselves. --- ext/vulkan/vksink.c | 6 ------ ext/vulkan/vkutils.c | 8 ++++++++ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/ext/vulkan/vksink.c b/ext/vulkan/vksink.c index 901f05dd04..5ac7dd292f 100644 --- a/ext/vulkan/vksink.c +++ b/ext/vulkan/vksink.c @@ -252,12 +252,6 @@ gst_vulkan_sink_change_state (GstElement * element, GstStateChange transition) return GST_STATE_CHANGE_FAILURE; } - if (!gst_vulkan_instance_open (vk_sink->instance, &error)) { - GST_ELEMENT_ERROR (vk_sink, RESOURCE, NOT_FOUND, - ("Failed to create vulkan instance"), ("%s", error->message)); - return GST_STATE_CHANGE_FAILURE; - } - if (!(vk_sink->device = gst_vulkan_instance_create_device (vk_sink->instance, &error))) { GST_ELEMENT_ERROR (vk_sink, RESOURCE, NOT_FOUND, diff --git a/ext/vulkan/vkutils.c b/ext/vulkan/vkutils.c index c9652be59d..c2148d9ca8 100644 --- a/ext/vulkan/vkutils.c +++ b/ext/vulkan/vkutils.c @@ -195,6 +195,8 @@ gst_vulkan_ensure_element_data (gpointer element, * type. */ if (!*instance_ptr) { + GError *error = NULL; + _vk_gst_context_query (element, GST_VULKAN_INSTANCE_CONTEXT_TYPE_STR); /* Neighbour found and it updated the display */ @@ -209,6 +211,12 @@ gst_vulkan_ensure_element_data (gpointer element, _vk_context_propagate (element, context); } + + if (!gst_vulkan_instance_open (*instance_ptr, &error)) { + GST_ELEMENT_ERROR (element, RESOURCE, NOT_FOUND, + ("Failed to create vulkan instance"), ("%s", error->message)); + return FALSE; + } } if (!*display_ptr) {