Using Intel Quick Sync Video H.264 Encoder RRS feed

  • Question

  • I have developed an application which uses the MF Media Session architecture with the following topology:

    USB Webcam -> MJPEG Decoder -> Color Converter DMO -> My Custom MFT (RGB32 in/out) -> Color Converter DMO -> Microsoft H.264 Encoder -> MPEG4 Sink

    This currently works at the moment, despite some issues with playback and incorrect metadata.  But that's for another thread.  I am trying to switch over to a hardware H.264 encoder, due to poor frame rate in the resulting file.  After enabling hardware transforms by setting the MF_TRANSCODE_TOPOLOGYMODE_HARDWARE_ALLOWED attribute in the video encoder profile, I saw in the mftrace dump that the Intel Quick Sync Video H.264 Encoder showed up during encoder enumeration.  However, it was not selected as the encoder, per the following line from the mftrace output:

    10836,295C 18:26:33.47371 CMFPlatExportDetours::MFGetMFTMerit @ Merit validation failed for MFT @057B11F8 (hr=80004005 E_FAIL)

    I could not figure out what this means after a good deal of searching, or how to provide the correct parameters for this to be overcome.  Am I missing something?

    I suppose I could manually configure my topology, but as I will be using this application on a variety of systems, I am not guaranteed to have one particular topology.

    Monday, January 28, 2013 8:06 PM

All replies

  • I was able to force use of the hardware transform by taking the resolved topology from MFCreateTranscodeTopology and manually replacing the encoder with the hardware one.  I copied the MFT_PREFERRED_ENCODER_PROFILE and MFT_PREFERRED_OUTPUTTYPE_Attribute attributes to the encoder object.

    While this is obviously not ideal, it seems to work ok.

    • Marked as answer by elvisman113 Tuesday, March 19, 2013 6:48 PM
    • Unmarked as answer by elvisman113 Thursday, March 21, 2013 3:24 PM
    Tuesday, March 19, 2013 6:48 PM