Intel Hardware Encoder/Decoder MFTs

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

7 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.
Tony Pabon (Intel)'s picture

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 ?

-Tony

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

Tony Pabon (Intel)'s picture

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.

-Tony

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

Tony Pabon (Intel)'s picture

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.

-Tony

Login to leave a comment.