Img_EnsQueue::~Img_EnsQueue()
{
	delete [] queue;
	head = 0;
	tail = 0;
	size = 0;
	OSAL_MutexDestroy(mutex);
}
Exemple #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;
}
Exemple #3
0
void HantroOmx_msgque_destroy(OMX_IN msgque* q)
{
    assert(q);
    OMX_ERRORTYPE err = OMX_ErrorNone;

    err = OSAL_MutexLock(q->mutex);
    assert(err == OMX_ErrorNone);

    while (q->tail)
    {
        msg_node* next = q->tail->next;
        OSAL_Free(q->tail);
        q->tail = next;
    }

    err = OSAL_MutexUnlock(q->mutex);  assert(err == OMX_ErrorNone);
    err = OSAL_MutexDestroy(q->mutex); assert(err == OMX_ErrorNone);
    err = OSAL_EventDestroy(q->event); assert(err == OMX_ErrorNone);
}
Exemple #4
0
void HantroOmx_port_destroy(PORT* p)
{
    assert(p);

    OMX_U32 i = 0;
    OMX_U32 x = HantroOmx_bufferlist_get_size(&p->buffers);
    for (i=0; i<x; ++i)
    {
        BUFFER* buff = *HantroOmx_bufferlist_at(&p->buffers, i);
        OSAL_Free(buff);
    }
    HantroOmx_bufferlist_destroy(&p->buffers);
    HantroOmx_bufferlist_destroy(&p->bufferqueue);
    
    OMX_ERRORTYPE err;
    err = OSAL_MutexDestroy(p->buffermutex);
    assert(err == OMX_ErrorNone);
    err = OSAL_EventDestroy(p->bufferevent);
    assert(err == OMX_ErrorNone);

    memset(p, 0, sizeof(PORT));
}
Exemple #5
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;
}