Img_EnsQueue::Img_EnsQueue(int queue_size) { head = tail = 0; mutex = OSAL_MutexCreate(); IMG_DBC_ASSERT(queue_size >= 0); size = queue_size + 1; queue = new void * [size]; }
OMX_ERRORTYPE HantroOmx_msgque_init(OMX_IN msgque* q) { assert(q); q->head = 0; q->tail = 0; q->size = 0; OMX_ERRORTYPE err = OMX_ErrorNone; err = OSAL_MutexCreate(&q->mutex); if (err != OMX_ErrorNone) return err; err = OSAL_EventCreate(&q->event); if (err != OMX_ErrorNone) OSAL_MutexDestroy(q->mutex); return err; }
OMX_ERRORTYPE HantroOmx_port_init(PORT* p, OMX_U32 nBufferCountMin, OMX_U32 nBufferCountActual, OMX_U32 nBuffers, OMX_U32 nBufferSize) { assert(p); memset(p, 0, sizeof(PORT)); OMX_ERRORTYPE err = OMX_ErrorNone; err = OSAL_MutexCreate(&p->buffermutex); if (err != OMX_ErrorNone) goto INIT_FAIL; err = OSAL_EventCreate(&p->bufferevent); if (err != OMX_ErrorNone) goto INIT_FAIL; if (nBuffers) { err = HantroOmx_bufferlist_init(&p->buffers, nBuffers); if (err != OMX_ErrorNone) goto INIT_FAIL; err = HantroOmx_bufferlist_init(&p->bufferqueue, nBuffers); if (err != OMX_ErrorNone) goto INIT_FAIL; } p->def.nBufferCountActual = nBufferCountActual; p->def.nBufferCountMin = nBufferCountMin; p->def.nBufferSize = nBufferSize; return OMX_ErrorNone; INIT_FAIL: if (p->buffermutex) OSAL_MutexDestroy(p->buffermutex); if (p->bufferevent) OSAL_EventDestroy(p->bufferevent); HantroOmx_bufferlist_destroy(&p->buffers); HantroOmx_bufferlist_destroy(&p->bufferqueue); return err; }