- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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) { //... }
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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!
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page