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.

Software Fallback for Linux via Media SDK?

Anton_M_1
Beginner
835 Views

Hello

New user of Media SDK - trying to parse out available functionality on Linux.

Is software fallback available for Media SDK on Linux under either Gold or Generic software platforms? 

Thank you.

0 Kudos
7 Replies
Jiandong_Z_Intel
Employee
835 Views

Hi There,

Getting Started Guide - Linux* Installation  is a good start point.

There is uninstall_sdk_UMD_CentOS.sh in package for you remove Intel Media Server Studio on your system.

 

Thanks

Zachary

 

0 Kudos
Anton_M_1
Beginner
835 Views

 

Hi Zachary

I don't need or necessarily want to uninstall Media SDK.

I am just curious if hardware acceleration is not available, if Media SDK will fall back to software only encode and decode similar to Windows. I've only seen one mention of Software Fallback not being available under some circumstances. Just wanted to get specific information.

For example, 

vade@vRareVolumeDev:~/Downloads/mediasdk-tutorials-0.0.3/_build$ ./simple_decode .

libva info: VA-API version 0.99.0
libva info: va_getDriverName() returns -1
libva error: va_getDriverName() failed with unknown libva error,driver_name=(null)
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
Aborted (core dumped)

Which tells me there is no fallback to software decode if libVA doesnt have / find hardware acceleration.

Thank you.

 

 

0 Kudos
Alexander_K_5
Beginner
835 Views

Hi Anton

Try to run samples from /MediaSamples_Linux_2016/samples instead of mediasdk-tutorials-0.0.3

0 Kudos
Anton_M_1
Beginner
835 Views


If I have an application binary compiled that uses the Media SDK and I attempt to run it in a configuration where hardware acceleration isn't available, will the Media SDK on Linux fall back to software or not?

Thank you.

0 Kudos
Alexander_K_5
Beginner
835 Views

If MFXInit function is called with appropriate impl parameter, there will be able fallback mechanism.

You can refer to documentation:

The function MFXInit starts (initializes) an SDK session. MFXClose closes (de-initializes) the SDK session. To avoid memory leaks, always call MFXClose after MFXInit.
The application can initialize a session as a software-based session (MFX_IMPL_SOFTWARE) or a hardware-based session (MFX_IMPL_HARDARE,). In the former case, the SDK functions execute on a CPU, and in the latter case, the SDK functions use platform acceleration capabilities. For platforms that expose multiple graphic devices, the application can initialize the SDK session on any alternative graphic device (MFX_IMPL_HARDWARE1…MFX_IMPL_HARDWARE4).
The application can also initialize a session to be automatic (MFX_IMPL_AUTO or MFX_IMPL_AUTO_ANY), instructing the dispatcher library to detect the platform capabilities and choose the best SDK library available. After initialization, the SDK returns the actual implementation through the MFXQueryIMPL function.

0 Kudos
celli4
New Contributor I
835 Views

Is this actually true for Linux?, it was previously the case that this was not true.

Has something changed and now there is software encode/decode/transcode fallback for Linux???

Jeffrey McCallister said: "For Linux, fallback to SW can only happen if the HW implementation can start -- there isn't a general purpose SW implementation.  If general portability is a concern you'll probably want to implement your own fallback path."  - in this link: https://software.intel.com/en-us/forums/intel-media-sdk/topic/531608

 

If there is not a libmfxsw64.so, or whatever distributed with the Linux version, I doubt there is true software fallback support.

 

0 Kudos
Jeffrey_M_Intel1
Employee
835 Views

We do ship a software implementation in Linux now.  If you check /opt/intel/mediasdk/lib64 in recent releases there is a libmfxhw64 and libmfxsw64 shared library.

Perhaps it will help to describe some scenarios:

  1. Application starts the session with MFX_IMPL_SOFTWARE:   The application can use a wide variety of methods, including attempting to start a HW implementation first, to determine which type of implementation to start.
  2. Application starts the session with MFX_IMPL_AUTO/MFX_IMPL_AUTO_ANY.  Media SDK will try HW acceleration first, and if not available run in software.  This is similar to Media SDK automating scenario #1 and happens at session initialization.
  3. Scenario 1 and 2 happen at session init.  There is another type of software fallback that happens when a session is started with the hardware implementation but then either after the first initialization or a parameter update there is a combination of parameters which cannot be run in HW but can be supported by the SW implementation.  In this case when the Media SDK stage (decode, encode, VPP) is initialized a status of MFX_WRN_PARTIAL_ACCELERATION is returned.   

Scenario 1 and 2 require the SW implementation library to be present. Scenario 3 only requires the HW implementation, since a SW implementation is wrapped inside the HW implementation to handle this case.  Scenario 3 was available before the SW implementation was included, but now all three are possible.

Hope this helps, Jeff

0 Kudos
Reply