Problems with function MFXVideoENCODE_Init

Problems with function MFXVideoENCODE_Init


Hy, I tried to use the simple_encode example in a linux environmet. Everything is compiling fine but when I start the software it always stops at the function MFXVideoENCODE_Init with the error code: MFX_ERR_NOT_INITIALIZED. How can I solve that? I've added the sourcecode in the attachment.

One thing, that might cause the problem is, that I wasn't able to link the libmfx.a. I used the dynamic library which compliled fine. I also tried to link the libmfx.a but that gave me the errors as you can see in compileOutput.txt.

Thanks in advance


Downloadtext/x-csrc main.c12.06 KB
Downloadtext/plain compileoutput.txt4.14 KB
2 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Hi Clemens,

There are not many differences between Media SDK for Linux and Windows, but you have run into one of them.  For Windows, passing a HW device handle to MSDK is only required when using GPU memory.  For Linux this step is required for ALL Media SDK applications.

The code should look something like this:

mfxVersion ver = { 0, 1 };
MFXVideoSession session;

// Initialize Intel Media SDK Session
sts = session.Init(impl, &ver);

// Create VA display
int fd = open("/dev/dri/card0", O_RDWR);
VADisplay va_dpy = vaGetDisplayDRM(fd);
int maj_ver, min_ver;
vaInitialize(va_dpy, &maj_ver, &min_ver);

// Provide VA display handle to Media SDK
session.SetHandle(static_cast < mfxHandleType >

While it is possible to compile with gcc it will take some modifications from the code you've attached.  g++ will be an easier starting point.

In case it might help I've added a reference makefile below.


CFLAGS=-I/usr/local/include -I$(MFX_HOME)/include
LFLAGS=-L$(MFX_HOME)/lib/lin_x64 -lmfx -ldl -lpthread -lva -lva-drm -lstdc++

$(EXEC): $(SRCS) Makefile
g++ -o $(EXEC) $(SRCS) $(CFLAGS) $(LFLAGS)

We are working on more documentation and simple examples for Linux.  Please stay tuned.

Leave a Comment

Please sign in to add a comment. Not a member? Join today