[Bug 712798] add GstVideoGLTextureUploadMeta buffer pool option

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Mon Nov 25 06:16:00 PST 2013


https://bugzilla.gnome.org/show_bug.cgi?id=712798
  GStreamer | gst-plugins-base | git

--- Comment #5 from Matthew Waters <ystreet00 at gmail.com> 2013-11-25 14:15:55 UTC ---
vaapi already does use its own bufferpool based on vasurfaces and rejects our
glbufferpool in the vaapidecode ! glimagesink case.  Currently in that case,
adding the texture upload meta in the decoder results in a huge performance
loss due to vaapitexture creation/deletion resulting in *MakeCurrent being
called at least twice every frame.  Bug #712558 is about trying to add the meta
inside a vaapi buffer pool (the current one or a new gl texture buffer pool
they might decide to create).

So the problem is that the buffer pool needs to know if it needs to add texture
upload meta (if the bufferpool supports it).  Whether that is by capsfeatures
or the above buffer pool option was discussed on irc.  

It was argued that capsfeatures were used for negotiation and the bufferpool
option falls under the category of configuring the allocation which apparently
are seperate concepts.
Adding the bufferpool option falls more in line with the other videometa's
(crop, alignment) which have their own bufferpool options and so has appeal
from a consistency standpoint.
Also, an element might use a gst library (of a possible multiple) that provides
a bufferpool (or multiple) with (or without) support for the upload meta for
whatever reason.  With the bufferpool option, the element can check at runtime
whether the bufferpool supports the upload meta or whether the element needs to
add the meta itself because it might have more information than the bufferpool.
 Total pie in the sky concept however the concept remains.  Choosing between
multiple bufferpools.  e.g. EGLImage vs GL texture.
Another also, there's the option of selectively enabling the upload meta based
on other parameters such as whether the OpenGL context's (or other
hw-specific/API data) are (not) shared between the elements.

In short, the element knows better, let it decide.

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- 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