[Bug 727886] New: GstVideoGLTextureUploadMeta assumes no color conversion is done during upload
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Wed Apr 9 03:38:29 PDT 2014
https://bugzilla.gnome.org/show_bug.cgi?id=727886
GStreamer | gst-plugins-base | git
Summary: GstVideoGLTextureUploadMeta assumes no color
conversion is done during upload
Classification: Platform
Product: GStreamer
Version: git
OS/Version: Linux
Status: UNCONFIRMED
Severity: normal
Priority: Normal
Component: gst-plugins-base
AssignedTo: gstreamer-bugs at lists.freedesktop.org
ReportedBy: kiagiadakis.george at gmail.com
QAContact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
GstVideoGLTextureUploadMeta has a design issue regarding what happens to the
buffer after it is uploaded to the texture(s).
On some hardware, using some hardware-specific method to upload the buffer to
the GPU leaves the data in its original format. It looks like
GstVideoGLTextureUploadMeta has been designed with that case in mind, so for
example eglglessink when it sees that the negotiated format is I420, it expects
the UploadMeta to upload 3 textures (one for each plane) and uses a shader to
convert the colorspace.
However, one some other hardware (like for example imx6), the hardware-specific
method for uploading a buffer from the VPU directly to the GPU also internally
does colorspace conversion and gives only 1 texture as an output, even if the
buffer is YUV. In that case, the sink needs to treat the result as RGB and use
a dummy shader with 1 texture.
Unfortunately, there is no way to negotiate this properly. We could set the
format in the caps to be RGB, but that is wrong because if you map the buffer
before uploading it, the data is not necessarily RGB. Another way would be a
flag in the UploadMeta, but 1) there is no padding to add that in the structure
and 2) the sink should ideally know this information early (during caps
negotiation probably) in order to initialize its internal state before the
first buffer arrives. Maybe the best would be a field in the caps... something
like "uploaded-format=(string)xRGB" ?
Suggestions? Comments?
--
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