opencore的pvomx与bellagio_omx同样遵循openmax IL层标准,不过PV中是用c++写的,而bellagio使用c实现的,组件的API都是omx IL标准,但是组件的加载方式是不一样的,opencore中是根据配置直接调用针对各种格式的注册函数,不需要依次打开针对各个格式的so库,而在bellagio中却是要依次打开每个so库调用一个接口函数来完成注册。
1 注册方式的更改
@@在bellagio中编译后会生成一个可执行程序(omxregister-bellagio),要单独执行这个可执行程序,会在root目录下生成一个文件.omxregister,文件中包含了已安装的所有组件以及对应的so库:
/usr/local/lib/bellagio/libomxaudio_effects.so
==> OMX.st.volume.component ==> OMX.st.volume.component: ==> 2 1,65536 1,32768
==> OMX.st.audio.mixer ==> OMX.st.audio.mixer: ==> 1 50,60000
/usr/local/lib/bellagio/libomxvideosched.so
==> OMX.st.video.scheduler ==> OMX.st.video.scheduler: ==> 2 1,456192 1,304128
/usr/local/lib/bellagio/libomxclocksrc.so
==> OMX.st.clocksrc ==> OMX.st.clocksrc:
然后