Media (Intel® Video Processing Library, Intel Media SDK)
Access community support with transcoding, decoding, and encoding in applications using media tools like Intel® oneAPI Video Processing Library and Intel® Media SDK
Announcements
The Intel Media SDK project is no longer active. For continued support and access to new features, Intel Media SDK users are encouraged to read the transition guide on upgrading from Intel® Media SDK to Intel® Video Processing Library (VPL), and to move to VPL as soon as possible.
For more information, see the VPL website.

How to use OpenGL with media sdk server (Linux)

rshal2
New Contributor II
564 Views

Hi,

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 ?

Regards,

Ran

0 Kudos
7 Replies
Jeffrey_M_Intel1
Employee
564 Views

Hi Ran,

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.

Regards, Jeff

0 Kudos
rshal2
New Contributor II
564 Views

Hi Jeffrey,

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.

Thank you!

Ran

0 Kudos
Jeffrey_M_Intel1
Employee
564 Views

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!

 

0 Kudos
rshal2
New Contributor II
564 Views

Hi Jefferey,

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.

 

Thanks,

Ran

0 Kudos
Jeffrey_M_Intel1
Employee
564 Views

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.

Thanks!

0 Kudos
rshal2
New Contributor II
564 Views

[deleted]

 

0 Kudos
rshal2
New Contributor II
564 Views

Hi Jeffrey,

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 ?

Thanks,

Ran 

0 Kudos
Reply