Media (Intel® oneAPI 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 sign-in experience has changed to support enhanced security controls. If you sign in, click here for more information.

What does MFXQueryIMPL return 0x0202 mean

Kz_Liao
Beginner
378 Views

I think somebody should ask this before. But I have got no topic about this after doing a search.

I initialized the MFXVideoSession as :

sts = m_mfxSession.Init(MFX_IMPL_HARDWARE_ANY, &version);

Then I called m_mfxSession.QueryIMPL(&impl) and the value of impl is 0x0202. By observing the CPU consumption, I'm sure the hw acceleration is working. Also, I notice the following definition:

MFX_IMPL_HARDWARE     = 0x0002,  /* Hardware Accelerated Implementation (default device) */
MFX_IMPL_VIA_D3D9     = 0x0200,

So was the value the bit and result of these two flag? Should I use the following code to check for hw acceleration?

if (MFX_IMPL_HARDWARE & impl) {
    //...
}

 

0 Kudos
4 Replies
Anthony_P_Intel
Employee
378 Views

Yes, the implementation of hardware acceleration in this case is with D3D9.  If the platform was a recent Windows 8 platform you may see D3D11.  Please see the developers guide in https://software.intel.com/en-us/media-solutions-portal for more information on initialization.

Anthony_P_Intel
Employee
378 Views

I should clarify that this means the library being used is capable of some optimized hardware acceleration.  Some specific features may not be fully accelerated.  This is generally indicated with a status warning of MFX_WRN_PARTIAL_ACCELERATION, and request is completed using CPU.

Kz_Liao
Beginner
378 Views

Tony Pabon (Intel) wrote:

I should clarify that this means the library being used is capable of some optimized hardware acceleration.  Some specific features may not be fully accelerated.  This is generally indicated with a status warning of MFX_WRN_PARTIAL_ACCELERATION, and request is completed using CPU.

Thank you for the reply very much! It's really helpful.

Now I had met another issue. I setup an encoding process to utilize the temporal scalability by the instruction of https://software.intel.com/en-us/articles/video-conferencing-features-of-intel-media-software-development-kit/. I was told that "Two consecutive temporal layers must have integer ratio of frame rates". So I try a ratio of 3. When running the video conferencing sample, it failed at the initializing step (m_encoder->Init(&m_mfxEncParams);) with a return code of MFX_ERR_INVALID_VIDEO_PARAM. So does the encoder only support a ratio of 2?

Kz_Liao
Beginner
378 Views

I should provide more information. The mfxExtAvcTemporalLayers extended buffer might be configured as:

TemporalLayers.BaseLayerPID = 0;
TemporalLayers.Layer[0].Scale = 1;
TemporalLayers.Layer[1].Scale = 3;
TemporalLayers.Layer[2].Scale = 9;
TemporalLayers.Layer[3].Scale = 0;

Thanks in advance!

Reply