I've started a new thread, after the old threads not been resolved yet.
We develop application which does the following:
1. Encode multiple video streams
2. Deliver graphic images from multiple streams --> fpga --> display (from fpga)
3. Using media sdk server on Linux
The 2nd above need to support OpenGL.
As far as I understand to support OpenGL we must use the GPU.
I would plea like to know:
1. Is it possible to implement these requirements with media sdk server ?
2. Is OpenGL supported with media sdk server ? If not - do I need to use VAAPI instead ? If VA-API should be used: Is it possible to use both VAAPI (for graphic) and media sdk server (for encode/decode video) or is it too difficult to mix between these two mechanism on same application which use media sdk server ?
3. What is the format of the OpenGL output buffer ? Is it simple RGB format ? Where can IO understand more about OpenGL support with media sdk server ?
You should not be completely blocked from implementing the pipelines you've described. However, since Linux doesn't have the same range of sharing functions your app may have to do additional copies.
I'm still in the process of finding more details on OpenGL surface formats and options for libva/opengl interoperability. Will post more as the info comes in, hopefully within the next few days.
We got some general idea how to do the above.
We are using the gold version, So we can achieve it as following
1. application over media sdk will do the video issues(encode/decode) using media sdk server APIs (it will utilize the GPU)
and in concurrency:
2. Qt application on CentOS, will create graphic images (also expected to utilize the GPU)
I hope it is a good method in preformance terms, and in terms of utilizing the gpu for both encode/decode and graphics.
If you have any more feedback please tell me.
Hi Ran, just want to make sure I understand your architecture. You've described 2 apps. Are they on the same machine or 2 different machines? Is application #1 media sdk only (no OpenGL)? Is application 2 decode->render (OpenGL?) or something else?
Thanks for your reply.
This is the architecture:
1. we use single processor IntelCore ( a single machine). On this processor we shall run 2 processes:
a. Qt application which will create graphic images (in runtime). OpenGl is expected in this process (Quick project in Qt project always use OpenGL)
b. media sdk server application which only do 5 encode and one decode (into files). No openGl in this process.
You've got everything you need for application b, right?
For application a, is the pipeline decode->opengl render, opengl->encode, or something else? This will help to narrow down the information needed.
Yes, I think I got everything I need for both a and b.
As far as I understand, Qt application (quick project to be more specific) use by default GPU and OpenGL, i.e. it won't run if the OS does not provide it.
When I tried to run Qt application on the IntelCore with CentOs 7.1 it seems to run without any issues.
I guess it means that it uses GPU resources for OpenGl support.
What do you think ?