Explanation and Development Work of OpenMAX IL
Explanation and Development Work of OpenMAX IL
Explanation and Development Work of OpenMAX IL
RTLAB
Outline
Bellagio Introduction Bellagio IL core Bellagio States and Command Bellagio work flow How to add a component at Bellagio
Bellagio Introduction
Bellagio
OpenMax IL Run on Linux (FC4) ffmpeg library
Have
Bellagio
IL
Bellagio IL core
Bellagio IL Core
OMX_Init() / OMX_DeInit()
Core st_static_InitComponentLoader(): Load ST_static_loader functions to ComponentLoader. BOSA_InitComponentLoader(loadersList[i]): Load Componentomxregister fileshared libraries nameomx_component_library_Setup(). omx_component_library_Setup()library entry Componentrole,nameloader( componentfunction).
OMX_GetHandle() / OMX_FreeHandle()
All about Component (eg. codecs format, ffmpeg init, BufferMgmtcallBack). All about port All about state change, callbacks. Create compMessageHandlerFunction() thread: IL Client (Command).
omx_base_port_Constructor()
omx_base_constructor()
OMX_SetupTunnel()
Establish a
OMX_CommandFlush
OMX_CommandPortDisable OMX_CommandPortEnable
OMX_CommandMakeBuffer
Make a buffer
StateLoaded StateIdle
Starting
buffer management thread. Allocate here the buffers needed for the tunneling.
StateIdle StateExecution
Send
Component Callbacks
Components(eg. State change , fill buffer , empty buffer)callbackIL Client (Use wait and signal) 3 kind of callback function
EventHandler :
this function is executed by the component when a SendCommand request has been completed. EmptyBufferDone: when the buffer is input has been totally consumed. FillBufferDone: when a buffer in output has been totally filled
Mpeg4 , H.264 OMX_COLOR_Format24bitRGB888 (default format) OMX_COLOR_Format24bitBGR888 OMX_COLOR_Format32bitBGRA8888 OMX_COLOR_Format32bitARGB8888 OMX_COLOR_Format16bitARGB1555 OMX_COLOR_Format16bitRGB565 OMX_COLOR_Format16bitBGR565 If requested, then play the video directly.
Tunnel or No-tunnel
BOSA_InitComponentLoader
IL Client (application)
OMX_Init() BOSA_CreateComponent
OMX_GetHandle()
Video_handle
Colorconv_handle OMX_GetParameter()
CallBacks()
Message Handler Fb_sin_handle
OMX_SetupTunnel()
pthread_create if OMX_SendCommand(StateSet) StateLoaded to StateIdle
Constructor
pthread_create
Input Buffer
Buffer
fread() Read input file
EmptyThisBuffer()
Free
Edit /src/components/Makefile.am
Create src/components/yourcomponent/Makefile.am file. Add Makefile.am at /test if you have test application.
applicationcomponent
#make check