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.

What does MFXQueryIMPL return 0x0202 mean

Kz_Liao
Beginner
648 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
648 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.

0 Kudos
Anthony_P_Intel
Employee
648 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.

0 Kudos
Kz_Liao
Beginner
648 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?

0 Kudos
Kz_Liao
Beginner
648 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!

0 Kudos
Reply