Media (Intel® oneAPI Video Processing Library, Intel Media SDK)
Access community support with transcoding, decoding, and encoding in applications using media tools from Intel. This includes Intel® oneAPI Video Processing Library and Intel® Media SDK.

Cannot initiate MFXAudioENCODE

elsparro
Beginner
198 Views

Hi,

I can not initiate the encoder from MediaSDK2014AudioPack.

I run on CentOS 7.1, CPU E3-1285L v4

Init function fail with errorcode -3

Any points in the right direction is appriciated.

Best Regards

/elsparro

Here is my test code:

#include <mfxaudio++.h>
#include <mfxaudio.h>
#include <cstdio>
#include <cstring>

int main(int argc, char** argv)
{
        mfxStatus ret = MFX_ERR_NONE;
        mfxIMPL impl = MFX_IMPL_SOFTWARE | MFX_IMPL_AUDIO;
        mfxVersion ver = { 0, 1 };

        MFXAudioSession session;

        ret = session.Init(impl, &ver);
        if (ret != MFX_ERR_NONE) {
                ::fprintf(stderr, "cannot initiate session, ret: %d\n", ret);
                return -1;
        }

        ret = session.QueryIMPL(&impl);
        if (ret != MFX_ERR_NONE) {
                ::fprintf(stderr, "cannot query implementation\n");
                return -1;
        }

        ret = session.QueryVersion(&ver);
        if (ret != MFX_ERR_NONE) {
                ::fprintf(stderr, "cannot query version\n");
                return -1;
        }

        ::fprintf(stderr, "Intel Media SDK Audio Implementation: %d, Version: %d.%d\n",
                  impl, ver.Major, ver.Minor);

        MFXAudioENCODE enc(session);

        mfxAudioParam param;
        ::memset(&param, 0, sizeof(param));
        param.mfx.CodecId = MFX_CODEC_MP3;
        param.mfx.Bitrate = 128000;
        param.mfx.SampleFrequency = 48000;
        param.mfx.NumChannel = 2;
        param.mfx.BitPerSample = 16;

        ret = enc.Query(&param, &param);
        if (ret != MFX_ERR_NONE) {
                ::fprintf(stderr, "cannot query encoder params, ret: %d\n", ret);
                return -1;
        }

        mfxAudioAllocRequest req;
        ret = enc.QueryIOSize(&param, &req);
        if (ret != MFX_ERR_NONE) {
                ::fprintf(stderr, "cannot query iosize, ret: %d\n", ret);
                return -1;
        }

        ret = enc.Init(&param);
        if (ret != MFX_ERR_NONE) {
                ::fprintf(stderr, "cannot initiate encoder, ret: %d\n", ret);
                return -1;
        }

        return 0;
}

Compiled with: g++ -o audio_session audio_session.cpp -I/opt/intel/mediasdk/include -L/opt/intel/mediasdk/lib/lin_x64 -lmfx -ldl

0 Kudos
2 Replies
Jiandong_Z_Intel
Employee
198 Views

Hi There,

MediaSDK2014 is not the most new version.

can you download and install Intel® Media Server Studio 2016 from https://software.intel.com/en-us/intel-media-server-studio/try-buy ?

Let me see if the same issue happened under the most new MSS.

 

Best Regards,

Zachary

 

elsparro
Beginner
198 Views

Hi,

Nope, still dont work, get the exact same output, error -3 and even the same version 1.8.

I removed all files from the 2014 SDK and installed 2016 evaluation.

I also checked with strace that the right libmfxaudiosw.so was loaded.

Another question, I bought the 2014 audio packs as a standalone package form an intel reseller, is it possible to buy the 2016 audio pack version to work with the 2016 SDK essential?

Best Regards

/elsparro

Reply