Community
cancel
Showing results for 
Search instead for 
Did you mean: 
sumit_j_1
Beginner
254 Views

Media SDK API vs direct call to VA-API

HI all,

I have one doubt regarding use of MEDIA SDK API and VA-API(libva). As per my basic understanding of MEDIA SDK, SDK application calls VA-API to use HW -decode/encode.AS follows-

{My application + MediaSDK Application} ---->VA-API --> Kernel--> Device Driver for HW DECODE/ENCODE.

Now if i use directly VA-API as follows-

My Application--->VA-API --> Kerenel--> Device Driver for HW DECODE/ENCODE.

i.e no Media SDK.

What will be pros and cons for this exercise.

My naive guess says that  it will give some benefits  by getting rid of Media SDK overhead. But at the same time one has write own  wrapper to use VA-API.So basically implementation of that wrapper will  decides which one is better.

Does libVA of MEDIA SDK package is better implementation of opensource VA -API libs ?

Regards,

Sumit Jha

 

0 Kudos
8 Replies
sumit_j_1
Beginner
254 Views

HI all,

I am modifying my previous doubt after going through some query and replies.

As per my basic understanding of MEDIA SDK-, SDK-API calls   VA-API to use HW -decode/encode.AS follows-

{ MediaSDK Application}-API ---->VA-API --> Kernel--> Device Driver for HW DECODE/ENCODE.

Now if i use directly VA-API as follows-

My Application--->VA-API --> Kerenel--> Device Driver for HW DECODE/ENCODE.

i.e no Media SDK-API

What will be pros and cons for this exercise.

My naive guess says that  it will give some benefits  by getting rid of Media SDK overhead. But at the same time one has write own  wrapper to use VA-API.So basically implementation of that wrapper will  decides which one is better.

Does libVA of MEDIA SDK package is better implementation of opensource VA -API libs ?

And, what extra media SDK gives apart from libVA (non-open source,)which comes with SDK package.

Regards,

Sumit Jha

Jiandong_Z_Intel
Employee
254 Views

Hi Sumit,

I think you can refer page 4 in Intel® Media SDK Dev Guide

1.7 Accelerating video operations with the Intel® Media Software Development Kit

On Linux MSDK call libva

On Windows MSDK call DXVA

They are similar. You can easily port your application between Windows and Linux

Thanks

Zachary

sumit_j_1
Beginner
254 Views

Hi Zachary,

Thank you supporting me in resolving my doubts. Actually my question was different. My question is as follows-

Say, i want to create a decoder/encoder application. I have two options-

> use media sdk exmaple and see how API is getting called and use same way in my application to get one decoder/encode

 My Application -->MediaSDK-API ---->VA-API --> Kernel--> Device Driver for HW DECODE/ENCODE.

 

> use only VA-API library NO intel Media SDK i.e in my application i will  use Vaapi function to do decode/encode instead SDK API.

My Application--->VA-API --> Kernel--> Device Driver for HW DECODE/ENCODE

no media SDK

Between these two options, what benefit i will get using media SDK compare to using VA-API only?

What media SDK gives  extra compare to VA-API for video decoder/encoder.

Regards,

Sumit Jha 

 

 

 

Robby_S
New Contributor I
254 Views

Good question. I am thinking along a similar line:

Technically, what are the differences between the Media Server Studio SDK, and VA API? What advantages does the former offer over the latter? I have to admit that I don't know much about VA API.

Thanks,

Robby

Bjoern_B_Intel
Employee
254 Views

Hi Sumit and Robby,

Working with Media SDK

The Intel® Media Software Development Kit (Intel® Media SDK) abstracts the complex task of interacting with Intel® HD Graphics media acceleration interfaces which is the main advantage for developers, developing applications cross platform, cross OS, and cross Intel processors. It provides a high level view of video elementary stream processing operations. Since the Intel® Media SDK  enables highly optimized access to specialized hardware, it can be very fast and efficient. The high-level design also means that very good performance can be maintained as new generations of Intel® architectures emerge with few code changes. A software-only implementation is available with the same interface to provide compatibility with the widest range of processors. In this way the Intel Media SDK provides a portable and high-performance solution for the most demanding video processing tasks. The Intel Media SDK optimized media libraries are built on top of Microsoft* DirectX*, DirectX Video Acceleration (DVXA) APIs, and platform graphics drivers. Intel Media SDK exposes the hardware acceleration features of Intel® Quick Sync Video built into 2nd, 3rd, 4th, 5th, and 6th generation Intel® Core™ processors.

Working directly with VA API for Linux*

The Intel® Media SDK takes also care of all memory and synchronization related operations in VA API. However, in some cases your application may need to extend the SDK functionality by working directly with VA API for Linux*. For example, to implement customized external allocator or USER functions (also known as “plug-in”). The Media SDK API Reference Manual provides more information in appendix E.

Best Regards,

Bjoern

sumit_j_1
Beginner
254 Views

Hi Bjoern, Thank you for your support. I am learning vaapi based applications. I need some sample code for vaapi based decoder for an h264 stream. Plz share some code if you have or some user guide link. Actually in the appendix E your document there are some code for generation of surfaces, creating configuration etc. But as such there is not any systematic flow of decode or encode code. I mean how one should decode frame by frame etc. Regard, Sumit
Bjoern_B_Intel
Employee
254 Views

Hi Sumit,

I think we closed on the original MediaSDK API vs. VA-API question.

Instead of moving on with next question, can we keep the structure and just open another thread?

Thanks,

Bjoern

sumit_j_1
Beginner
254 Views

Okay.