[Bug 755072] vaapi: expose memory:DMABuf capsfeature
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Fri Feb 3 18:23:16 UTC 2017
https://bugzilla.gnome.org/show_bug.cgi?id=755072
--- Comment #64 from Víctor Manuel Jáquez Leal <vjaquez at igalia.com> ---
I have pushed these commits
commit b0016e336bba268e4eb9968ff7847932711e07db
Author: Víctor Manuel Jáquez Leal <victorx.jaquez at intel.com>
Date: Sun Oct 16 01:04:09 2016 +0100
vaapidecode: don't GLTextureUpload if dmabuf
Do not add the meta:GstVideoGLTextureUploadMeta feature if the render
element can handle dmabuf-based buffers, avoiding its negotiation.
commit 25e8309567167321b1a596235f1114bc4a9da960
Author: Julien Isorce <j.isorce at samsung.com>
Date: Wed Oct 19 16:21:21 2016 +0100
vaapidecode: make pool to export decoder's surface
Use new -base API gst_video_decoder_allocate_output_frame_full() to
pass the current proxy/surface to the pool.
The pool will will export thins given surface instead of exporting a
brand new surface that will never be filled in with meaningfull data.
https://bugzilla.gnome.org/show_bug.cgi?id=755072
commit 50242eaaf7a14abfa4f62308a808b9d7e7950b1d
Author: Víctor Manuel Jáquez Leal <victorx.jaquez at intel.com>
Date: Fri Feb 3 17:06:29 2017 +0100
plugins: decoder can negotiate dmabuf downstream
commit 9ed73e76afba6b88ca50b0b8c94cfecf6995f35e
Author: Julien Isorce <j.isorce at samsung.com>
Date: Wed Oct 19 16:07:07 2016 +0100
vaapivideobufferpool: override acquire_buffer()
Overriding the vmethod acquire_buffer() it is possible to attach the
right GstMemory to the current acquired buffer.
As a matter of fact, this acquired buffer may contain any instantiated
GstFdmemory, since this buffer have been popped out from the buffer
pool, which is a FIFO queue. So there is no garantee that this buffer
matches with the current processed surface. Evenmore, the VA driver
might not use a FIFO queue. Therefore, it is no way to guess on the
ordering.
In short, acquire_buffer on the VA driver and on the buffer pool return
none matching data, we have to manually attach the right GstFdMemory to
the acquired GstBuffer. The right GstMemory is the one associated with
the current surface.
https://bugzilla.gnome.org/show_bug.cgi?id=755072
commit 6a0375d96eae0378d19f5c450a278516e5d16305
Author: Julien Isorce <j.isorce at samsung.com>
Date: Wed Oct 19 16:05:04 2016 +0100
vaapivideomemory: export surface if it is provided
gst_vaapi_dmabuf_memory_new() always exports a surface. Previously, it
had to create that surface. Now it can also export an already provided
surface. It is useful to export decoder's surfaces (from VA context).
https://bugzilla.gnome.org/show_bug.cgi?id=755072
commit 9132510ce090f1a6e7279f19c230fdea8aae0b4c
Author: Julien Isorce <j.isorce at samsung.com>
Date: Wed Oct 19 15:55:27 2016 +0100
vaapivideobufferpool: add GstVaapiVideoBufferPoolAcquireParams
Useful to let the pool know the current surface proxy when calling
gst_buffer_pool_alloc_buffer() / gst_buffer_pool_acquire_buffer()
https://bugzilla.gnome.org/show_bug.cgi?id=755072
commit 4f037a036bf138607df201e73ff3ff0f8fa449b4
Author: Julien Isorce <j.isorce at samsung.com>
Date: Wed Oct 19 15:09:34 2016 +0100
libs: surface: add gst_vaapi_surface_{set,peek}_buffer_proxy()
These functions are useful when a dmabuf-based memory is instantiated in
order to relate the generated buffer @proxy with the processed @surface.
https://bugzilla.gnome.org/show_bug.cgi?id=755072
commit 7fc1b70ff65bc5a78181e1faa23b4e5e510f8c3b
Author: Julien Isorce <j.isorce at samsung.com>
Date: Wed Oct 19 15:07:31 2016 +0100
libs: bufferproxy: gst_vaapi_buffer_proxy_{set,peek}_mem()
This patch adds a GstMemory as a variable member of the buffer proxy,
because we will need to associate the buffer proxy with the memory
which exposes it. Later, we will know which memory, in the video buffer
pool, is attached to the processed surface.
https://bugzilla.gnome.org/show_bug.cgi?id=755072
commit bc97987ffb5a5d5699fcb53a9413f9e8b4e525f2
Author: Julien Isorce <j.isorce at samsung.com>
Date: Wed Oct 19 15:33:41 2016 +0100
vaapipostproc: don't GLTextureUpload if dmabuf
Do not add the meta:GstVideoGLTextureUploadMeta feature if the render
element can handle dmabuf-based buffers, avoiding its negotiation.
Similar as "vaapidecode: do not add meta:GstVideoGLTextureUploadMeta
feature if can dmabuf"
https://bugzilla.gnome.org/show_bug.cgi?id=755072
commit aa20508bcfd1109b1fd522b0fba0f5f7f48a1d73
Author: Víctor Manuel Jáquez Leal <victorx.jaquez at intel.com>
Date: Fri Dec 16 14:12:30 2016 +0100
plugins: enable DMAbuf allocator to downstream
If the negotiated caps are raw caps and downstream supports the
EGL_EXT_image_dma_buf_import extension, then the created allocator
is the DMAbuf, configured to downstream.
At this moment, the only element which can push dmabuf-based buffers
to downstream, is vaapipostproc.
commit 37b774393413aec9c444bc45f08be2bf385e3be2
Author: Víctor Manuel Jáquez Leal <victorx.jaquez at intel.com>
Date: Thu Jun 2 22:13:51 2016 +0200
plugins: check if negotiate dmabuf with downstream
In order to enable, in the future, dmabuf-based buffers, the vaapi base
plugin needs to check if downstream can import dmabuf buffers.
This patch checks if downstream can handle dmabuf, by introspecting the
shared GL context. If the GL context is EGL/GLES2 and have the extension
EGL_EXT_image_dma_buf_import, then dmabuf can be negotiated.
Original-patch-by: Julien Isorce <j.isorce at samsung.com>
commit 33af1fc5786a179a22ecb9c43021ddd24c382263
Author: Julien Isorce <j.isorce at samsung.com>
Date: Wed Oct 19 15:37:04 2016 +0100
vaapivideomemory: release proxy's data if downstream
The surface created for downstream is going to be filled by VAAPI
elements. So, the driver needs write access on that surface.
This patch releases the derived image held by the proxy, thus the
surface is unmarked as busy.
This is how it has to be done as discussed on libva mailing list.
https://bugzilla.gnome.org/show_bug.cgi?id=755072
commit 69a2406a20335ce045c4c67a9ff98e2c96d143c9
Author: Julien Isorce <j.isorce at samsung.com>
Date: Wed Oct 19 15:01:04 2016 +0100
libs: bufferproxy: add gst_vaapi_buffer_proxy_release_data()
Adds an API to request the user's data release in the buffer proxy.
https://bugzilla.gnome.org/show_bug.cgi?id=755072
commit fbed3c3366da9a544069d2d472949d5f31b63e5d
Author: Julien Isorce <j.isorce at samsung.com>
Date: Wed Oct 19 15:27:03 2016 +0100
vaapivideomemory: add direction to dmabuf allocator
Add GstPadDirection param to gst_vaapi_dmabuf_allocator_new(), thus
we later could do different thing when the allocated memory is for
upstream or dowstream, as required by VA-API.
https://bugzilla.gnome.org/show_bug.cgi?id=755072
--
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