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.
3078 Discussions

mfx-gen implementation not recognized in some machines

GeorgeGian
Beginner
221 Views

Hi everyone, I have an application in which I use libvpl to do some accelerated encoding. I have configured the environment and run successfully my application on one machine that features a Meteor Lake-P [Intel Arc Graphics] 14th gen. On that machine if I use 

 

 

system_analyzer

 

 

 I see that the mfx-gen implementation is recognized

 

 

Implementation #0: mfx-gen
  Library path: /opt/intel/mediasdk/lib/libmfx-gen.so.1.2.14
  AccelerationMode: MFX_ACCEL_MODE_VIA_VAAPI
  ApiVersion: 2.14
  Impl: MFX_IMPL_TYPE_HARDWARE
  ImplName: mfx-gen
  MediaAdapterType: MFX_MEDIA_INTEGRATED
  VendorID: 0x8086
  DeviceID: 0x7D55 
  GPU name: unknown (arch=na codename=na)
  PCI BDF: 0000:00:02.00
  PCI RevisionID: 0x0008
  DRMRenderNodeNum: 128
DeviceName: mfx-gen

 

 

To get this working I had to set

 

 

export LD_LIBRARY_PATH=/opt/intel/mediasdk/lib:$LD_LIBRARY_PATH

 

 

otherwise the method 

 

 

MFXVideoENCODE_Query

 

 

always return -3.

 

Now, with the exact same application, when I try to execute it on another machine, while I setup the environment variables similar to the first machine, my application always fails.

First of all, even if I expose the path to the libmfx-gen.so, this implementation is not recognized. That machine features a UHD Graphics 630 (Mobile) 9.5 gen. The system_analyzer output is:

 

 

Implementation #0: mfxhw64
  Library path: /opt/intel/mediasdk/lib/libmfxhw64.so.1.35
  AccelerationMode: MFX_ACCEL_MODE_VIA_VAAPI
  ApiVersion: 1.35
  Impl: MFX_IMPL_TYPE_HARDWARE
  ImplName: mfxhw64
  MediaAdapterType: MFX_MEDIA_UNKNOWN
  VendorID: 0x8086
  DeviceID: 0x3E9B 
  GPU name: unknown (arch=na codename=na)
  PCI BDF: FFFFFFFF:FFFFFFFF:FFFFFFFF.FFFFFFFF
  PCI RevisionID: 0xFFFF
  DRMRenderNodeNum: 128
DeviceName: mfxhw64

 

 

Whenever I try to execute my application

 

 

 

MFXVideoENCODE_Query

 

 

always return -3.

 

Even though the second machine doesn't recognize the mfx-gen implementation, I can successfully run the libvpl legacy_encoder example.

At that point I am hitting a dead end, and can't understand first why mfx-gen implementation is not found and second why even if it is not, why the libvpl legacy_encoder example works successfully when it calls

 

 

 

MFXVideoENCODE_Query

 

 

but my application is failing on that method

 

Vainfo on the failing machine:

Trying display: wayland
Trying display: drm
libva info: VA-API version 1.23.0
libva info: User environment variable requested driver 'iHD'
libva info: Trying to open /home/integration/media-driver-workspace/build_media/media_driver/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_23
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.23 (libva 2.23.0.pre1)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 25.1.0 (30a39afb6)
vainfo: Supported profile and entrypoints
      VAProfileNone                   :	VAEntrypointVideoProc
      VAProfileNone                   :	VAEntrypointStats
      VAProfileMPEG2Simple            :	VAEntrypointVLD
      VAProfileMPEG2Simple            :	VAEntrypointEncSlice
      VAProfileMPEG2Main              :	VAEntrypointVLD
      VAProfileMPEG2Main              :	VAEntrypointEncSlice
      VAProfileH264Main               :	VAEntrypointVLD
      VAProfileH264Main               :	VAEntrypointEncSlice
      VAProfileH264Main               :	VAEntrypointFEI
      VAProfileH264Main               :	VAEntrypointEncSliceLP
      VAProfileH264High               :	VAEntrypointVLD
      VAProfileH264High               :	VAEntrypointEncSlice
      VAProfileH264High               :	VAEntrypointFEI
      VAProfileH264High               :	VAEntrypointEncSliceLP
      VAProfileVC1Simple              :	VAEntrypointVLD
      VAProfileVC1Main                :	VAEntrypointVLD
      VAProfileVC1Advanced            :	VAEntrypointVLD
      VAProfileJPEGBaseline           :	VAEntrypointVLD
      VAProfileJPEGBaseline           :	VAEntrypointEncPicture
      VAProfileH264ConstrainedBaseline:	VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline:	VAEntrypointFEI
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSliceLP
      VAProfileVP8Version0_3          :	VAEntrypointVLD
      VAProfileVP8Version0_3          :	VAEntrypointEncSlice
      VAProfileHEVCMain               :	VAEntrypointVLD
      VAProfileHEVCMain               :	VAEntrypointEncSlice
      VAProfileHEVCMain               :	VAEntrypointFEI
      VAProfileHEVCMain10             :	VAEntrypointVLD
      VAProfileHEVCMain10             :	VAEntrypointEncSlice
      VAProfileVP9Profile0            :	VAEntrypointVLD
      VAProfileVP9Profile2            :	VAEntrypointVLD
0 Kudos
0 Replies
Reply