[Bug 776927] gl: gldownload: convert GstGLMemory to GstDmaBuf

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Tue May 16 17:01:44 UTC 2017


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

--- Comment #24 from Matt Fischer <mattfischer84 at gmail.com> ---
(In reply to Nicolas Dufresne (stormer) from comment #23)
> Please use GST_CAPS_FEATURE_MEMORY_DMABUF, this way we are sure there is no
> typo.
> 
Will do.

> You need to check if downstream supports GstVideoMeta. If not, you may check
> (option) that the list os strides and offsets matches the default set to
> GstVideoInfo when doing gst_video_info_set_format(). If that does not match,
> dmabuf exportation is not possible, return NULL.
> 
How does one check if downstream supports a given meta?  I was under the
impression that you just attached whatever meta you wanted, and hoped that
downstream paid attention to it.  Since I am already relying on there being a
GstVideoMeta on the incoming buffer, I had thought that it would be safe to
assume that I could just create one on the outgoing buffer as well.

> I think it's a good case were using a goto would be more readable.
> 
Will do.

> We have function tables already, so you don't endup doing get_proc_address()
> every image plane.
> 
I'm not sure I understand what you're asking me to do here.  Can you clarify?

> Why ? What's the problem ? and why checking this so late ? We already
> support multiple FD when importing. I don't think this is very useful if you
> limit this to packed formats.
>
This is just a comment about multiple planes within the dmabuf export.  A
planar image will have multiple GstMemory objects, each of which will get its
own EGLImage and its own dmabuf.  See the loop in _try_export_dmabuf() to see
how it will loop for multiple planes.

As far as I understand, that will correctly handle the planar cases.  If we try
to handle the case where each of those individual EGLImages also exports
multiple dmabufs, I wasn't clear how we would handle the N * M dmabuf handles
that would result.  Can you comment on what we ought to do in that case?

-- 
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