That function also requires a valid mfxsession. Have verified that the session has been init'ed?
You can also make sure the implementation dll's are in your system path. Are these the only SDK functions that are failing? I dont see any reason - in principle - why what your trying to do would not work. If you can't get it, post the input params.
The session is created in the CBaseEncoder::SetAcceleration call which is invoked during the initialization of the filter.
The DShowPlayer application is just a higher level application thats just building a filter graph with the encoder filter being instantiated if you choose to do a transcode.
Go to the Samples\PlugIns\DShow Samples (the filters) and build the h264_enc_Filter project.
Register the output: Regsvr32 h264_enc_filter.dll (it will be in the _build dir use admin rights).
Launch The DShowPlayer,
Go back to Visual Studio, set a break point on the constructor CH264EncVideoFilter::CH264EncVideoFilter(). Then goto Debug->Attach to Process. Select the Dshow Process. The debugger should attach.
Go back to the DirectShow Player, start a transcode when the Encoder is instantiated your breakpoint should trigger. At that point you can step into the base class constructor and see whats failing.
It sounds like the m_pmfxENC pointer is invalid, which could cause all kinds of downstream errors to happen.
These are required for Encoder Initialization:
I zero'ed out a few of them in the debugger and constantly received -15 back from the call.
Hope this helps
What platform is this occurring on?
MFXInit with version = 1.1 means to load the Sandy Bridge library. Are you using a Sandy Bridge platform? The HW lib is installed via the graphics driver install. If you are not using a Sandy Bridge platform, change the version to 1.0. If that still doesnt work, try updating your graphics driver.