De-Initialization

To de-initialize the OpenMAX core, active components must be freed. To free the component, move it to the ExecutingIdleLoaded state, and then free all the input and output buffers.

  1. Move the component from the Executing state to the Idle state as (1) in the following diagram.
  2. Wait for all buffers to be returned by the component.
  3. The component returns all buffers to the IL client as (2) in the following diagram.
  4. The component generates OMX_EventCmdComplete for the ExecuteIdle state transition as (3) in the following diagram.
  5. Transition the component from the Idle state to the Loaded state as (4) in the following diagram
  6. Free all input and output buffers as (5) to (8) in the following diagram.
  7. Wait for OMX_EventCmdComplete for the IdleLoaded state transition.
  8. The client receives the command OMX_EventCmdComplete for the LoadedIdle state transition as (9) in the following diagram.
  9. Call OMX_FreeHandle to the OMX core to release the component handle as (10) in the following diagram.
  10. Call OMX_DeInit to de-initialize the OMX core as (13) in the following diagram.

The following diagram shows the de-initialization workflow.

Figure 1. De-Initialization Workflow