libs: va: Add API to peek the va buffer's display.
authorHe Junyan <junyan.he@intel.com>
Fri, 4 Nov 2022 12:28:34 +0000 (20:28 +0800)
committerHe Junyan <junyan.he@intel.com>
Sat, 5 Nov 2022 05:39:34 +0000 (13:39 +0800)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3322>

subprojects/gst-plugins-bad/gst-libs/gst/va/gstvaallocator.c
subprojects/gst-plugins-bad/gst-libs/gst/va/gstvaallocator.h

index 8879b4c..401936f 100644 (file)
@@ -2127,3 +2127,28 @@ gst_va_buffer_get_aux_surface (GstBuffer * buffer)
 
   return surface_buffer->surface;
 }
+
+/**
+ * gst_va_buffer_peek_display:
+ * @buffer: a #GstBuffer
+ *
+ * Returns: (type #GstVaDisplay) (transfer none): the display which this
+ *     @buffer belongs to. The reference of the display is unchanged.
+ *
+ * Since: 1.22
+ */
+GstVaDisplay *
+gst_va_buffer_peek_display (GstBuffer * buffer)
+{
+  GstMemory *mem;
+
+  if (!buffer)
+    return NULL;
+
+  mem = gst_buffer_peek_memory (buffer, 0);
+  /* Buffer without mem, not VA kind memory. */
+  if (!mem)
+    return NULL;
+
+  return gst_va_memory_peek_display (mem);
+}
index b046abf..f0ee50a 100644 (file)
@@ -132,5 +132,7 @@ GST_VA_API
 gboolean              gst_va_buffer_create_aux_surface    (GstBuffer * buffer);
 GST_VA_API
 VASurfaceID           gst_va_buffer_get_aux_surface       (GstBuffer * buffer);
+GST_VA_API
+GstVaDisplay *        gst_va_buffer_peek_display          (GstBuffer * buffer);
 
 G_END_DECLS