vkswapper: don't output duplicate formats
authorMatthew Waters <matthew@centricular.com>
Wed, 10 Apr 2019 01:56:59 +0000 (11:56 +1000)
committerMatthew Waters <matthew@centricular.com>
Tue, 4 Jun 2019 09:03:44 +0000 (09:03 +0000)
ext/vulkan/vkswapper.c

index afbaf1dd138b3e5a25bd775b65e763bcbfdfc01f..eb7286be3f3a306817912a00c911d96a6e06fa18 100644 (file)
@@ -156,17 +156,20 @@ static void
 _add_vk_format_to_list (GValue * list, VkFormat format)
 {
   GstVideoFormat v_format;
-  const gchar *format_str;
 
   v_format = _vk_format_to_video_format (format);
   if (v_format) {
+    const gchar *format_str = gst_video_format_to_string (v_format);
     GValue item = G_VALUE_INIT;
+    GValue new_list = G_VALUE_INIT;
 
     g_value_init (&item, G_TYPE_STRING);
-    format_str = gst_video_format_to_string (v_format);
     g_value_set_string (&item, format_str);
-    gst_value_list_append_value (list, &item);
+    gst_value_list_merge (&new_list, list, &item);
     g_value_unset (&item);
+
+    g_value_unset (list);
+    *list = new_list;
   }
 }