|typedef OMX_ERRORTYPE(*||OMX_ComponentInit )(OMX_HANDLETYPE *hComponent, const char *name)|
|lim_omx_component_registration_t **||OMX_ComponentRegistration (int *num)|
|lim_omx_component_registration_t *||LIM_OMX_ComponentRegistrationTable |
LIM OpenMAX IL core supports both static linking and dynamic loading of OpenMAX IL components. Also, LIM OpenMAX IL core can serve as the super IL core where components from other IL cores can be dynamically loaded and universally enumerated.
Components can be dynamically discovered and loaded by limoi OpenMAX IL core, by implementing OMX_ComponentRegistration() and installing to <libdir>/limoi/component area. There can be one or multiple components within one implementation.
This mechanism can be extended to write arbitrary dynamic component loader for components implemented out of LIM context, by writing a 'loader' who implements OMX_ComponentRegistration() and installs to <libdir>/limoi/loader area. This 'loader' can then scan all supported components following the rules defined by 'loader' itself.
LIM OpenMAX IL core can load and enumerate components from other IL cores, thus to present client with one universal IL core to link with. To do this, simply install any other IL core to <libdir>/limoi/other-core area.
|typedef OMX_ERRORTYPE(* OMX_ComponentInit)(OMX_HANDLETYPE *hComponent, const char *name)|
revert the component registration when implemented, this gets called upon OMX_Deinit().
|lim_omx_component_registration_t** OMX_ComponentRegistration||(||int *||num||)|
return array of component registration data This is called upon OMX_Init(), to register component with core. This must be implemented by component that is intended to be dynamically loaded by core.
|num||output, number of components available.|