[Bug 790752] msdk: supports bufferpool

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Tue Dec 12 13:54:36 UTC 2017


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

Ishmael Visayana Sameen <ishmael1985 at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ishmael1985 at gmail.com

--- Comment #52 from Ishmael Visayana Sameen <ishmael1985 at gmail.com> ---
I think it's extremely important to note that the management of VASurfaces /
D3D11 surfaces is taken care of by the MFX frame allocation mechanism, which
means you will have to design and implement your bufferpool around the MSDK
framework. The MFX frame allocator can be only initialized after the MFX task
is instantiated, thus making it awkward to fit within the GStreamer bufferpool
design, since it is not within GStreamer's control regarding the allocation,
freeing, locking and unlocking of the video memory surfaces by the MFX
allocator.
You should also note that you can only decide the final number of surfaces to
be shared between tasks when you have determined the properties of each task,
such as whether one of the joined tasks can only utilize system memory based on
platform support or when using a MFX SW plugin in the downstream element, or in
the case of the VPP, the input / output memory combination can be supported
(video memory in / system memory out is not well supported). There are also a
few other quirks to worry about, but just worry about video memory support in a
separate branch first.
Indeed, imo the way this is going, quite a big re-write on this would need to
be done with the introduction of video memory support.
In GST-MFX, we couldn't deal with this cleanly as well due to the
above-mentioned constraint, but nevertheless we handled all the quirks well
enough. It will be interesting how some fundamental design changes could be
done on the GStreamer framework to deal with the abovementioned constraint
cleanly.
I suggest you guys deal with the video memory aspect first before anything
else, a good start would be to refer to this:

https://github.com/ishmael1985/gstreamer-media-SDK/blob/master/gst-libs/mfx/gstmfxallocator_vaapi.c

Please feel free to re-write in a much cleaner way in your version of the
gst-msdk plugin :)

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