Our use case involves multiple RTSP stream to be decoded and displayed as a GRID window.
We are planning to use the Intel Media SDK components for the pipeline, and for the GUI having Grid view of the 12/25/36 number of video streams we plan to use QT.
What is the recommended way of passing the Render surface available in Intel Media SDK ( X11,DRM, Wayland handles ) to the QT window created. ? Which could be the possible approach for a zero copy rendering. ?
If this design is possible , Is there any reference example application code base for Intel media sdk Plus QT available ?
Decoding the stream using Intel Media SDK and then a zero-copy rendering to QT should be possible. However, we currently do not have any documentation or sample code for this workflow.
One good starting point would be to look at the rendering code under tools/legacy (https://github.com/oneapi-src/oneVPL/tree/master/tools/legacy/sample_misc/wayland) which uses Wayland.
Some other good code examples could be SDL2 rendering code (https://github.com/FFmpeg/FFmpeg/blob/master/libavdevice/sdl2.c) in FFmpeg. Intel Media SDK and oneVPL are enabled in FFmpeg. For more details: https://www.intel.com/content/www/us/en/developer/articles/technical/onevpl-in-ffmpeg-for-great-streaming-on-intel-gpus.html#gs.g2bfbb
One alternative is to use GStreamer rendering sinks which have Qt options available e.g. qtvideosink. Intel Media SDK has also been upstreamed to GStreamer. (https://www.intel.com/content/www/us/en/developer/articles/technical/media-framework-upstream-patches-2022q1.html)
Hope this clarify your query. If so, make sure to accept this as a solution. This would help others with similar issue.