From f618270c59a5cabcc52290b090d6a3792f12f8fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Cerveau?= Date: Thu, 12 Dec 2024 14:40:55 +0100 Subject: [PATCH] vkdecoder: init debug category earlier The decoder has not been created if the codec is not supported by the hardware, so the GST_WARNING_OBJECT will fail to find a suitable category. Part-of: --- .../gst-libs/gst/vulkan/gstvkdecoder-private.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdecoder-private.c b/subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdecoder-private.c index 9d68bc924d..8374840f9a 100644 --- a/subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdecoder-private.c +++ b/subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdecoder-private.c @@ -66,9 +66,7 @@ GST_DEBUG_CATEGORY (GST_CAT_DEFAULT); #define gst_vulkan_decoder_parent_class parent_class G_DEFINE_TYPE_WITH_CODE (GstVulkanDecoder, gst_vulkan_decoder, - GST_TYPE_OBJECT, G_ADD_PRIVATE (GstVulkanDecoder) - GST_DEBUG_CATEGORY_INIT (gst_vulkan_decoder_debug, - "vulkandecoder", 0, "Vulkan device decoder")); + GST_TYPE_OBJECT, G_ADD_PRIVATE (GstVulkanDecoder)); static GstVulkanHandle *gst_vulkan_decoder_new_video_session_parameters (GstVulkanDecoder * self, GstVulkanDecoderParameters * params, @@ -1301,6 +1299,7 @@ gst_vulkan_decoder_new_from_queue (GstVulkanQueue * queue, guint codec) GstVulkanDecoder *decoder; guint flags, expected_flag, supported_video_ops; const char *extension; + static gsize cat_gonce = 0; g_return_val_if_fail (GST_IS_VULKAN_QUEUE (queue), NULL); @@ -1309,6 +1308,12 @@ gst_vulkan_decoder_new_from_queue (GstVulkanQueue * queue, guint codec) flags = device->queue_family_props[queue->family].queueFlags; supported_video_ops = device->queue_family_ops[queue->family].video; + if (g_once_init_enter (&cat_gonce)) { + GST_DEBUG_CATEGORY_INIT (gst_vulkan_decoder_debug, + "vulkandecoder", 0, "Vulkan device decoder"); + g_once_init_leave (&cat_gonce, TRUE); + } + if (device->properties.apiVersion < VK_MAKE_VERSION (1, 3, 275)) { GST_WARNING_OBJECT (queue, "Driver API version [%d.%d.%d] doesn't support Video extensions",