static OMX_ERRORTYPE EventHandler (OMX_HANDLETYPE omx_handle, OMX_PTR app_data, OMX_EVENTTYPE eEvent, OMX_U32 nData1, OMX_U32 nData2, OMX_PTR pEventData) { GOmxCore *core; core = (GOmxCore *) app_data; switch (eEvent) { case OMX_EventCmdComplete: { OMX_COMMANDTYPE cmd; cmd = (OMX_COMMANDTYPE) nData1; switch (cmd) { case OMX_CommandStateSet: core->omx_state = (OMX_STATETYPE) nData2; g_omx_sem_up (core->state_sem); break; case OMX_CommandFlush: g_omx_sem_up (core->flush_sem); break; default: break; } break; } case OMX_EventBufferFlag: { #if 0 if (nData2 & OMX_BUFFERFLAG_EOS) { g_omx_port_set_done (core->ports[1]); } #endif break; } case OMX_EventPortSettingsChanged: { /** @todo only on the relevant port. */ if (core->settings_changed_cb) { core->settings_changed_cb (core); } } default: break; } return OMX_ErrorNone; }
static inline void out_port_cb (GOmxPort *port, OMX_BUFFERHEADERTYPE *omx_buffer) { /** @todo remove this */ if (!port->enabled) return; #if 0 if (omx_buffer->nFlags & OMX_BUFFERFLAG_EOS) { g_omx_port_set_done (port); return; } #endif }