[Bug 711155] wayland: add wl_drm support to wayland sink

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Thu Sep 15 14:25:50 UTC 2016


https://bugzilla.gnome.org/show_bug.cgi?id=711155

Nicolas Dufresne (stormer) <nicolas at ndufresne.ca> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 Attachment #333064|none                        |needs-work
             status|                            |

--- Comment #80 from Nicolas Dufresne (stormer) <nicolas at ndufresne.ca> ---
Review of attachment 333064:
 --> (https://bugzilla.gnome.org/review?bug=711155&attachment=333064)

I think I covered all I could find.

::: ext/wayland/gstwaylandsink.c
@@ +660,3 @@
       wbuf = gst_wl_shm_memory_construct_wl_buffer (mem, sink->display,
           &sink->video_info);
+    else if (gst_is_dmabuf_memory (mem))

As you added NV* support, you may have two DMA-Buf FDs. This check need to be a
look (or followed by a loop), and gst_wl_linux_dmabuf_construct_wl_buffer()
need work.

@@ +662,3 @@
+    else if (gst_is_dmabuf_memory (mem))
+      wbuf = gst_wl_linux_dmabuf_construct_wl_buffer (buffer, sink->display,
+          &sink->video_info);

Need to check the the dmabuf interface is present, will cause an assertion
inside that function if missing in the compositor.

@@ +670,3 @@
       GstMapInfo src;
       /* we don't know how to create a wl_buffer directly from the provided
+       * memory, so we have to copy the data to shm memory that we know how

This is sub-optimal if the incoming buffer is a DMA-Buf that failed to import
but is in one of the supported shm formats. A method to wrap the DMA-Buf fs as
being shm should be added (quite trivial).

@@ +738,2 @@
   {
     GST_ERROR_OBJECT (sink, "could not create wl_buffer out of wl_shm
memory");

An error should be posted on the bus, see GST_ELEMENT_ERROR(). Also, we should
add some logic to clarify. We may have a dmabuf that failed to import and was
of a format unsupported by SHM. There no clear error for that atm,

@@ +743,3 @@
+no_wl_buffer:
+  {
+    GST_ERROR_OBJECT (sink, "buffer %p cannot have a wl_buffer", buffer);

GST_ELEMENT_ERROR().

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list