Question about core and component

Hi,
I have a question about core and component.

I think that core and component can completely separate.
That means an “IL client” can change the component supported by another vendor without change a “core”.

But, in Bellagio open source, this is impossible.
If we want to cahnge the “mp3decoder component”, we must change the core source.
That means if we want to use another component we MUST change the core and we change the “sink component” too.

So if anybody know this problem exactly, please let me know!!

Hi Sumi,
I am trying to understand your question here…
The core scans a registry file placed in your home directory to retrieve a list of available OMX components.
This list is built by the “omxregister” command.
You can create your own mp3 decoder component, install it and update the OMX registry with “omxregister”.
The core will then find your new component in the list and load it when requested to do so by the IL client.
No changes to the IL core are needed at all.
No need to recompile the core as each component is a shared object which is loaded dynamically.

Bye

Diego

Thank you for your kind and detail reply!

But I cannot understand clearly.
Of caurse, If own mp3 decoder component has the same API with “OMX.st.ffmpeg.mp3dec”, there is no problem.
(where, API means between core and component, not OpenMAX API.)
But the core has the dependency of the component.

For example, in “omxcore.c” OMX_GetHandle( ) function,
“core” calls “pStcomponent->constructor( )” function,
and this function is implemented by each component.
In “OMX.st.ffmpeg.mp3dec” component, that is the omx_mp3dec_component_Constructor( ) function.
But because this function and argument are not standard, I do not have to implement that function like that.

That means the implementer of the component MUST know about core.

If
“A company” supports the core and mp3dec, sink component
“B company” supports only mp3dec component
and I want to just change from A company’s mp3dec component to B company’s mp3dec component, it is impossible.
Because B company doesn’t know about the “A company”'s core.
Because OpenMAX doesn’t specified between core and component, if I use another component, some negotiations are needed.

Is it right? I don’t know exactly. ^^

And thank you for giving me your time and consideration.