- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
MFXVideoENCODE_Query continues to return MFX_ERR_UNSUPPORTED in all combinations of parameters. Platform is Intel(R) Core(TM) i5-7260U CPU @ 2.20GHz.
My vainfo returns the following information:
libva info: VA-API version 1.3.0 libva info: va_getDriverName() returns 0 libva info: User requested driver 'iHD' libva info: Trying to open /opt/intel/mediasdk/lib64/iHD_drv_video.so libva info: Found init function __vaDriverInit_1_3 libva info: va_openDriver() returns 0 vainfo: VA-API version: 1.3 (libva 2.3.0) vainfo: Driver version: Intel iHD driver - 16.9.git_00f9ae_2018-10-01 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 VAProfileHEVCMain : VAEntrypointVLD VAProfileHEVCMain : VAEntrypointEncSlice VAProfileHEVCMain : VAEntrypointFEI VAProfileHEVCMain10 : VAEntrypointVLD VAProfileHEVCMain10 : VAEntrypointEncSlice VAProfileVP9Profile0 : VAEntrypointVLD VAProfileVP9Profile2 : VAEntrypointVLD
and my relevant code is as follows
mfxStatus sts = MFX_ERR_NONE; // Initialize the Session MFXVideoSession session; mfxIMPL impl = MFX_IMPL_AUTO_ANY; mfxVersion ver = {{0, 1}}; sts = session.Init(impl, &ver); // Initialize the Encoder mfxENC = std::make_unique<MFXVideoENCODE>(session); // Set parameters for encoder mfxVideoParam mfxEncParams; memset(&mfxEncParams, 0, sizeof(mfxEncParams)); mfxEncParams.IOPattern = MFX_IOPATTERN_IN_SYSTEM_MEMORY | MFX_IOPATTERN_OUT_SYSTEM_MEMORY; mfxEncParams.mfx.CodecId = MFX_CODEC_AVC; mfxEncParams.mfx.CodecLevel = MFX_LEVEL_AVC_1; mfxEncParams.mfx.TargetKbps = kbitrate; mfxEncParams.mfx.EncodedOrder = true; mfxEncParams.mfx.FrameInfo.FourCC = MFX_FOURCC_NV12; mfxEncParams.mfx.FrameInfo.Width = f_width; mfxEncParams.mfx.FrameInfo.Height = f_height; mfxEncParams.mfx.FrameInfo.CropX = 0; mfxEncParams.mfx.FrameInfo.CropY = 0; mfxEncParams.mfx.FrameInfo.CropW = f_width; mfxEncParams.mfx.FrameInfo.CropH = f_height; mfxEncParams.mfx.FrameInfo.FrameRateExtN = framerate; mfxEncParams.mfx.FrameInfo.FrameRateExtD = 1; mfxEncParams.mfx.FrameInfo.ChromaFormat = MFX_CHROMAFORMAT_YUV420; // Query the parameters to verify sts = mfxENC->Query(&mfxEncParams, &mfxEncParams); sts = mfxENC->Init(&mfxEncParams);
Are my parameters incorrect, and if so how can I verify the correct parameters for the platform? kbitrate, f_width, f_height, and framerate are external parameters that have been tested at values 5000, 640, 480, 25 respectively.
- Tags:
- Development Tools
- Graphics
- Intel® Media SDK
- Intel® Media Server Studio
- Media Processing
- Optimization
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Mark,
It looks like your API usage is not in the correct sequence, actually mfxENC->Init() and mfxENC->Query() is reversed. You should call Init() first.
Mark
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
But in SDK Developer Reference was written about MFXVideoENCODE_Query: "The application can call this function before or after it initializes the encoder"
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Anatoly,
Sorry for the late response, I think there should be some conflict among the parameters, you can refer to the following file to check how Media SDK check the parameters:
This file also shows some information about the parameter unit we checked.
The other way to find the conflict is to start from a set of parameters which works, so you can this set from the sample_encode when it works normal. Then you change it toward your expected values, you will find which one causes the problem.
Mark
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page