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.

Encoding issues

Dariusz_W_1
Beginner
1,241 Views

Hello,

I'm having trouble setting up the encoder. Those are the settings I'm using:
    mfxVideoENCODE = new MFXVideoENCODE((mfxSession)mfxVideoSession);
    auto param = shared_ptr<mfxVideoParam>(new mfxVideoParam);
    param->IOPattern = MFX_IOPATTERN_IN_SYSTEM_MEMORY;

    mfxInfoMFX mfx = param->mfx;
    mfx.CodecId = MFX_CODEC_AVC;
    mfx.CodecProfile = MFX_PROFILE_AVC_BASELINE;
    mfx.TargetKbps = 2899;
    mfx.EncodedOrder = 0;

    auto frameInfo = mfx.FrameInfo;
    frameInfo.FourCC = MFX_FOURCC_NV12;
    frameInfo.Width = 896;
    frameInfo.Height = 480;
    frameInfo.CropX = 0;
    frameInfo.CropY = 0;
    frameInfo.CropW = 854;
    frameInfo.CropH = 480;
    frameInfo.FrameRateExtN = 24;
    frameInfo.FrameRateExtD = 1;
    frameInfo.ChromaFormat = MFX_CHROMAFORMAT_YUV420;

MFXVideoENCODE_Query call returns -6 (MFX_ERR_INVALID_HANDLE).

MFXQueryIMPL returns 0 and impl contains 1026 (MFX_IMPL_HARDWARE | MFX_IMPL_VIA_RESERVED1).

Moreover - when trying to run sample "sample_decode_drm" (using provided binary, with commandline: ./sample_decode_drm h264 -i file.avi -hw -o video.yuv), I get the following:

libva info: VA-API version 0.34.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_0_32
libva info: va_openDriver() returns 0

Return on error: error code -3,    /msdk/validation/linux_val/validation/ww29.5_Linux-HSW_vc54_Ubuntu_12.04/samples/sample_decode/src/pipeline_decode.cpp    215


Return on error: error code -3,    /msdk/validation/linux_val/validation/ww29.5_Linux-HSW_vc54_Ubuntu_12.04/samples/sample_decode/src/pipeline_decode.cpp    627


Return on error: error code 1,    /msdk/validation/linux_val/validation/ww29.5_Linux-HSW_vc54_Ubuntu_12.04/samples/sample_decode/src/sample_decode.cpp    279

Segmentation fault (core dumped)

Any ideas what could be wrong?

0 Kudos
9 Replies
Jeffrey_M_Intel1
Employee
1,241 Views

First, you'll want to check your installation.  See install steps here for more info: http://software.intel.com/en-us/forums/topic/472852

Second, container formats (like avi) are not supported by Media SDK.  Media SDK only works with elementary stream formats like h264 and mpeg2.  You'll need to demux your input first.  There are many tools to do this, but it should be possible with something like 

ffmpeg -i file.avi -vcodec copy -an -f h264 file.264

0 Kudos
Dariusz_W_1
Beginner
1,241 Views

Ok, SDK is not installed correctly.

"Error... Kernel module updated failed, due to mismatched kernel 3.8.0-30-generic with pre-build KMD. You have to rebuild kernel with patched files (kmd/source) manually."

When trying to build patched sources (v3.2), i get the following error:
"drivers/gpu/drm/i915/i915_dma.c:37:29: fatal error: linux/intel_ips.h: No such file or directory"
Which dependency am I missing?
Also, would it work with 2nd gen Core processor (i5-2520M)?
"00:02.0 VGA compatible controller [0300]: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller [8086:0126] (rev 09)"

0 Kudos
Anthony_P_Intel
Employee
1,241 Views

Hi, For the product/OS you are using, there is no support (or license) for use on 2nd Generation Core Processors,

0 Kudos
Dariusz_W_1
Beginner
1,241 Views

I've switched to 3gen CPU, followed installation instructions and it went well (install_media.sh completed succesfully - without the need to compile patched kernel manually).
"uname -aa" yields: "Linux ubuntu 3.2.0-41-generic #66-Ubuntu SMP Thu Apr 25 03:27:11 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux"
"lsmod" shows module "i915", used by 2 other modules (unlisted)
Sample_decode_drm works ok (side note for anyone interested: if you're using Big Buck Bunny MOV, you need to add "-bsf h264_mp4toannexb" switch to ffmpeg's command line).
But my attempts to initialize encoder still fails (MFXVideoENCODE_Query, MFXVideoENCODE_Init, MFXVideoENCODE_GetVideoParam all returns -6 /*MFX_ERR_INVALID_HANDLE*/).

0 Kudos
Anthony_P_Intel
Employee
1,241 Views

Can you provide information on the specific "3gen CPU" you are using?

Is this seen with the unmodified "sample_encode_drm" sample?

Thanks

0 Kudos
Dariusz_W_1
Beginner
1,241 Views

It's [Intel® Core™ i7-3820QM CPU @ 2.70GHz × 8]
Both [sample_decode_drm] and [sample_encode_drm] works fine (I was able to play the file after transcoding) - even when running 3.8 kernel (is it really unsupported? - my Intel Centrino Advanced-N 6230 doesn't work on 3.2).
I'm trying to initialize encoder in my own app (see attached files - btw. you could whitelist "hpp" extension).

0 Kudos
Jeffrey_M_Intel1
Employee
1,241 Views

Sorry for the delay in replying.  You've probably already found the answer elsewhere, but if not I just wanted to point out that the code attached appears to have the same problem as in this thread:http://software.intel.com/en-us/forums/topic/479998

While a video device handle is sometimes required for Windows, it is always required for Linux.

0 Kudos
ding_z_
Beginner
1,241 Views

Linux ubuntu 3.8.0-19-generic #29-Ubuntu SMP Wed Apr 17 18:16:28 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

INFO... Install on Ubuntu ...
INFO... Installing New Driver...
INFO... The default media driver is renderless API, do you want to use X11 backend?
press 'y' to use X11 backend, otherwise by default(drm backend, renderless)y
INFO... X11 backend enabled!
INFO... MediaSDK installed successfully in /opt/intel/mediasdk!
INFO... Do you want to install KMD?
press 'y' to confirm, otherwise cancelled.y
INFO... Original i915.ko backuped in kmd_backup/i915.ko.2014-04-24_150214
INFO... Trying to install 3.2.42 kmd...
Error... Kernel module updated failed, due to mismatched kernel 3.8.0-19-generic with pre-build KMD. You have to rebuild kernel with patched files (kmd/source) manually.
INFO... Package installation Done.

cpu info: Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz

 

0 Kudos
Jeffrey_M_Intel1
Employee
1,241 Views

Media SDK for Linux Servers has a patched i915 graphics driver module which must match specific kernel versions/configs.

For Ubuntu, installing the right kernel and headers for your hardware is a required prerequisite.

  • For Ivybridge/3rd Generation Core processors: apt-get install linux-image-3.2.0-41-generic linux-headers-3.2.0-41-generic
  • For Haswell/4th Generation Core processors: apt-get install linux-image-3.8.0-23-generic linux-headers-3.8.0-23-generic

After this step the install script should work.

0 Kudos
Reply