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];
}
Пример #2
0
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;
}
Пример #3
0
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;
}