[Bug 779146] dmabuf: be able to negotiate tiled surfaces

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Wed Mar 15 17:53:25 UTC 2017


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

--- Comment #31 from Nicolas Dufresne (stormer) <nicolas at ndufresne.ca> ---

(In reply to Scott D Phillips from comment #28)
> (In reply to Nicolas Dufresne (stormer) from comment #26)
> > Review of attachment 347945 [details] [review] [review]:
> > 
> > ::: gst-libs/gst/allocators/gstdmabufmeta.c
> > @@ +25,3 @@
> > + *
> > + * #GstDmabufMeta carries metadata that goes along with
> > + * dmabuf memory in the buffer, like drm modifier.
> > 
> > Document the negotiation process.
> > 
> > @@ +133,3 @@
> > +
> > +void
> > +gst_query_add_allocation_dmabuf_meta (GstQuery * query, guint64
> > drm_modifier)
> > 
> > This is confusing name, does it add the allocation meta, or it add a
> > modifier. To be honnest, I have never see a meta working like this. Why not
> > simply pass an array of guint64 here ? Also, undocumented.
> 
> Sure, I can change it to an array. I suppose it will be a length and then an
> array pointer, because there is no possible sentinel value for the end of an
> array of modifiers (as zero is valid and not necessarily the last choice in
> everyone's preference list). But yes, I can see that being more ergonomic
> than what is there currently.

As I already mention, use GstStructure types, so you can then
gst_structure_intersect().

> 
> > ::: gst-libs/gst/allocators/gstdmabufmeta.h
> > @@ +41,3 @@
> > +  GstMeta parent;
> > +
> > +  guint64 drm_modifier;
> > 
> > Modifiers are applied per plane in other API. This must be incorrect.
> 
> Which API? There is just a single modifier with ADDFB2. From drm_mode.h:

Modifiers are per-plane, as per the Kernel API. This also need to be reflected
in the negotiations stuff (you'll notice the value 4, but in gst use
GST_VIDEO_MAX_PLANES).

http://lxr.free-electrons.com/source/include/uapi/drm/drm_mode.h#L426

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