Classes | Typedefs | Functions | Variables

limoi component registration
[LIM integration layer core]


struct  lim_omx_component_registration_t


typedef OMX_ERRORTYPE(* OMX_ComponentInit )(OMX_HANDLETYPE *hComponent, const char *name)


lim_omx_component_registration_t ** OMX_ComponentRegistration (int *num)
void OMX_ComponentDeregistration (void)


lim_omx_component_registration_tLIM_OMX_ComponentRegistrationTable []

Detailed Description

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.

static linking

Components can be statically linked with limoi-core, by implementing lim_omx_component_registration_t and populating LIM_OMX_ComponentRegistrationTable().

dynamic loading

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.

Components can optionally implement OMX_ComponentDeregistration() if they have resource that need to be deallocated. If present, OMX_ComponentDeregistration() will be called upon OMX_Deinit().

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.

super core

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 Documentation

typedef OMX_ERRORTYPE(* OMX_ComponentInit)(OMX_HANDLETYPE *hComponent, const char *name)

construct and initialize component This is called only upon OMX_GetHandle(), to instantiate component.

hComponent component handle allocated by core, freed upon OMX_FreeHandle().
name unique OpenMAX IL standard component name.
OpenMAX IL return code.

Function Documentation

void OMX_ComponentDeregistration ( void   ) 

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.
component registration data limoi_component_registration_t.

Variable Documentation

components statically linked with core shall populate this table.

LIMOpenMAX Implementation API Reference - Generated by doxygen