Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Carl_P_
Beginner
232 Views

Intel Hardware Encoder/Decoder MFTs

Hi,

I am trying to use Intel Hardware Encoder/Decoder MFTs in our project and in topoedit. But both application throws an error regarding:
"The current GRL on the machine does not meet the minimum version requirements".
MFGetMFTMerit @ Merit validation failed for MFT @06A42CA0 (hr=C00D715F MF_E_GRL_VERSION_TOO_LOW)

What does GRL stand for and what does it mean? not much information on the web...

Graphics: HD4000, driver version: 9.18.10.3165

best regards, 

Carl

0 Kudos
6 Replies
OTorg
New Contributor II
232 Views

Anthony_P_Intel
Employee
232 Views

Hi Carl,

GRL stands for "global revocation list" and it is something that is used for Protected Media Path (PMP).  When playback of some types of (premium) protected media is executed, the entire code path must be protected.  (Best place for information is to search MSDN for "Media Foundation GRL")

Are you only seeing this issue when using specific content, or is it always observed?

If it is the latter, can you provide some more information on the environment?  What sepcific OS?  What monitor/display?  

Are you referring to the production/certified " Intel Hardware Encoder/Decoder MFTs " that are part of the Intel Graphics drivers, or are you trying to use the Samples from the Intel Media SDK which are only intended to demonstrate basics of how you can write create your own MFTs ?

Carl_P_
Beginner
232 Views

Hi Tony,

I am refering to the production/certified MFT. We have installed the latest graphics/motherboard drivers and
are currently running Windows 7 with latest updates on a Intel(R) Core(TM) i7-3770K CPU, HD-4000.

We are actually trying the run a simple Reader-Writer (transcoder, VC1 -> H264) in Media Foundation. The source data (VC1) is captured with our own equipment, so no "premium protected content" or similar is used.

Looking at the MediaFoundation trace log we can see that a hardware MFT is enumerated and created

CoCreateInstance @ Created {4BE8D3C0-0515-4A37-AD55-E4BAE19AF471} Intel® Quick Sync Video H.264 Encoder MFT (c:\Program Files\Intel\Media SDK\mfx_mft_h264ve_w7_32.dll)
MFGetMFTMerit @ Merit validation failed for MFT @06A42CA0 (hr=C00D715F MF_E_GRL_VERSION_TOO_LOW)

The decoder used seems to come from:
CoCreateInstance @ Created {82D353DF-90BD-4382-8BC2-3F6192B76E34} WMVideo Decoder DMO (C:\Windows\System32\wmvdecod.dll)

We provide a IDirect3DDeviceManager9 pointer MediaFoundation when creating our source reader + sink writer according to the documentation.
It's rather strange that MF wants to use a protected media path. Are we supposed to pass some encoder params to disable this type of behavior? Any ideas?

Or do we need to make sure Intel® Quick Sync Hardware VC-1 Decoder is used instead of the above?
So our case looks like: Intel® Quick Sync Hardware VC-1 Decoder -> Processing -> Intel® Quick Sync Video H.264 Encoder

Standard monitor with DVI cable is used.

best reagrds,

Carl

Anthony_P_Intel
Employee
232 Views

Hi Carl,

Thank you for the detailed information.  I believe our expectations are the same as yours in this case.  We will continue to try to reproduce what you are seeing.  Thank you for your patience while we investigate.

Carl_P_
Beginner
232 Views

Hi Tony,

Do you have any updates on this issue? We are still failing on the merit validation deep down in Media foundation.
Just to be clear we are using the IMFSourceReader and IMFSinkWriter interface to do this. So we are not using an TranscodeTopology, IMFTranscodeProfile and IMFMediaSession. As I understand, these two approaches are nearly the same.

best regards,

Carl

Anthony_P_Intel
Employee
232 Views

Hi Carl,

I'm sorry I hve not been able to reproduce what you are doing here, but it sounds very simular to what we are doing in our Windows 8 UI (WinRT) sample code (see "sample_win8ui_transcode" in samples directory).

I will ask for some help looking into this.  Sorry it is taking so long.

Reply