Vaapi. The ability to add input types to the decoders plugin: GstVideoGLTextureMeta and DMABuf

Víctor Jáquez vjaquez at igalia.com
Wed Aug 22 11:23:40 UTC 2018


On Wed, 22 Aug 2018 at 14:03, Alexander Yanin wrote:
> > I guess you could use glsrcbin or gldownload to convert a GLMemory based buffer
> > (with a texture inside) into a dmabuf-based buffer and vaapipostproc would
> > upload it into a VA surface and then encoding it.
> 
> In 1.14 vaapipostproc only has 'video/x-raw(memory:VASurface)' and
> 'video/x-raw' sink pads, so there is no DMAbuf. Was it added in later
> versions of gstreamer?
> In case of DMAbuf input, does DMAbuf -> vaapi conversion implies copy operation?
> Is there any sense in adding DMAbuf sink pad directly to vaapi encoder
> base class?

Adding memory:DMABuf caps feature in vaapipostproc sink pad is not
implemented. BUT, dmabuf-based buffers don't need to use that caps feature
*if they are mappable to user-space*.

gldownload can pass dmabuf-based buffers without memory:DMABuf caps feature, as
far as I understand. And vaapipostproc can detect if that buffer is dmabuf-based
and upload it onto a VA surface (no copy is involved).

There is no need to duplicate the code in vaapipostroc in the encoders, when you
can just prepend vaapiproc in the pipeline.

vmjl


More information about the gstreamer-devel mailing list