vkswapper: keep a reference on the input buffer until present is finished
authorMatthew Waters <matthew@centricular.com>
Thu, 6 Feb 2020 05:39:06 +0000 (16:39 +1100)
committerMatthew Waters <matthew@centricular.com>
Tue, 18 Feb 2020 04:52:22 +0000 (15:52 +1100)
Otherwise, there may be a very small period of time where the buffer can
be freed while being presented.

gst-libs/gst/vulkan/gstvkswapper.c

index 9219819..64d6882 100644 (file)
@@ -1338,6 +1338,9 @@ reacquire:
 
     gst_vulkan_trash_list_add (priv->trash_list,
         gst_vulkan_trash_new_free_semaphore (fence, present_semaphore));
+    gst_vulkan_trash_list_add (priv->trash_list,
+        gst_vulkan_trash_new_mini_object_unref (fence,
+            (GstMiniObject *) gst_buffer_ref (buffer)));
     gst_vulkan_fence_unref (fence);
     fence = NULL;
   }