IL Client / Application
In order to create / configure and connect the OpenMax components, application is written as an Integration Layer ( IL) client. This IL client is used to invoke OpenMax APIs for different component. In this application Components allocate the video buffers in response on OMX APIs on IL client. IL client is responsible for taking the buffers from one component and passing it to other component.
Creating and Configuring the Components
For creation and Configuration following OpenMax APIs are used.
- OMX_GetHandle
- OMX_GetParameter
- OMX_SetParameter
- OMX_AllocateBuffer
- OMX_UseBuffer
For port enable and change the state following OpenMax API is used.
- OMX_SendCommand
Following flow chart provides brief overview of OMX API flow for creation and configuration of components. OpenMax state changes are done to start the buffer communication.
(click on the picture to enlarge)
Buffer Communication between components
Following OpenMax APIs are used to pass the buffers to components.
- OMX_EmptyThisBuffer
- OMX_FillThisBuffer
Component returns the buffers to IL Client via callbacks in response to above data APIs. IL client implements the callback functions, which are invoked, when component returns the buffers. Following flow chart implements the buffer handling inside IL Client.
(click on the picture to enlarge)
Tear-down Sequence
After the iput file is played, IL client tears down the component. For Tear-down, IL client change the state of each component and free up the buffers. It is depicted in following flow chart.