I have developed an Encoder which I need to integrate into Media SDK environment to utilize it s transcode capability. I am able we have to derive a class from mfxVideoCodecPlugin and mfxPlugin and define the function in these classes. I am unable to understand where the encode call should happen. In a sample encode application EncodeFrameAsync is called for encoding but it is not part of these two classes so would it link with my encoder call.
I am also unable to understand how the plugin would be detected and loaded is sample encode application .Please anybody have any idea please reply as soon as possible.
I know while loading a plugin the application in Media SDK looks for CreatePluginPtr_t() function but does anybody know how it should be implemented and exposed to the application by the plugin.
An Encoder plugin would be derived MFXEncoderPlugin Class which is derived from MFXPlugin and EncodeFrameAsync which needs to be implemented for encoder execution how would that be linked to a plugin class . and exposed to the application.
Before I dive deep into your question, I wanted to point you to some resources (and pseudo codes) available to help understand using plugins with MSDK. Specifically, the dev guide (https://software.intel.com/sites/default/files/Intel_Media_Developers_Guide_0.pdf - section 4.12.1, 4.12.2, 4.12.3) talk about using user plugins in the media pipeline.
Like you mentioned, sample_encode shows usage of plugins - in this application, mfx_plugin_uids.h/cpp are where the plugins are exposed and the cpp file shows how to use them. Not sure if you had a chance to look at them.
Let me know if these above-mentioned resources was what you needed. If not, we can discuss your issue in more detail.