Sending back in text mode so that people on the kernel mailing list can read, they have a spam filter that hides anything that may have an HTML tag in it.
Le ven. 15 févr. 2019 à 21:42, Nicolas Dufresne <nico...@ndufresne.ca> a écrit : > > > > Le ven. 15 févr. 2019 19 h 16, Tim Harvey <thar...@gateworks.com> a écrit : >> >> Greetings, >> >> What is needed to be able to take advantage of hardware video >> composing capabilities and make them available in something like >> GStreamer? > > > Veolab wrote one already for the IMX.6 hardware (mainline kernel), it worked > for them, but it's missing some polishing prior to go upstream. Would be nice > since it could work with other drivers too, rockchip and Samsung Exynos have > similar IP with partial drivers. And I'm sure a lot of HW exist. > > https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/308 > > I worked with them for the design, they added a new helper to make it easy to > handle the internal m2m nodes which seems like a good idea, and we could > simplify some more code with it. The design is to cascade the blitters, so > you can compose as many layers as you want. It's base on aggregator class. > >> >> Philipp's mem2mem driver [1] exposes the IMX IC and GStreamer's >> v4l2convert element uses this nicely for hardware accelerated >> scaling/csc/flip/rotate but what I'm looking for is something that >> extends that concept and allows for composing frames from multiple >> video capture devices into a single memory buffer which could then be >> encoded as a single stream. >> >> This was made possible by Carlo's gstreamer-imx [2] GStreamer plugins >> paired with the Freescale kernel that had some non-mainlined API's to >> the IMX IPU and GPU. We have used this to take for example 8x analog >> capture inputs, compose them into a single frame then H264 encode and >> stream it. The gstreamer-imx elements used fairly compatible >> properties as the GstCompositorPad element to provide a destination >> rect within the compose output buffer as well as rotation/flip, alpha >> blending and the ability to specify background fill. >> >> Is it possible that some of this capability might be available today >> with the opengl GStreamer elements? > > > You could do it in GLES2, but it's not very fast compared to the 2D blitter. > Depending on the variant, the GPU might not be able to reuse its own output, > which kills the performance with how the GST GL elements are designed. > >> >> Best Regards, >> >> Tim >> >> [1] https://patchwork.kernel.org/patch/10768463/ >> [2] https://github.com/Freescale/gstreamer-imx