queue.c File Reference

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "queue.h"
#include "omx_comp_debug_levels.h"

Go to the source code of this file.

Functions

void queue_init (queue_t *queue)
void queue_deinit (queue_t *queue)
void queue (queue_t *queue, void *data)
void * dequeue (queue_t *queue)
int getquenelem (queue_t *queue)


Detailed Description

Implements a simple LIFO structure used for queueing OMX buffers.

Copyright (C) 2007 STMicroelectronics Copyright (C) 2007-2008 Nokia Corporation and/or its subsidiary(-ies).

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

$Date$ Revision $Rev$ Author $Author$

Definition in file queue.c.


Function Documentation

void* dequeue ( queue_t queue  ) 

Dequeue an element from the given queue descriptor

Parameters:
queue the queue descriptor from which to dequeue the element
Returns:
the element that has bee dequeued. If the queue is empty a NULL value is returned

Definition at line 107 of file queue.c.

References qelem_t::data, queue_t::first, queue_t::mutex, queue_t::nelem, and qelem_t::q_forw.

Referenced by base_port_DisablePort(), base_port_FlushProcessingBuffers(), compMessageHandlerFunction(), omx_audio_mixer_BufferMgmtFunction(), omx_base_component_DoStateSet(), omx_base_filter_BufferMgmtFunction(), omx_base_sink_BufferMgmtFunction(), omx_base_source_BufferMgmtFunction(), and omx_base_source_twoport_BufferMgmtFunction().

int getquenelem ( queue_t queue  ) 

Returns the number of elements hold in the queue

Parameters:
queue the requested queue
Returns:
the number of elements in the queue

Definition at line 128 of file queue.c.

References queue_t::mutex, and queue_t::nelem.

void queue ( queue_t queue,
void *  data 
)

Enqueue an element to the given queue descriptor

Parameters:
queue the queue descritpor where to queue data
data the data to be enqueued

Definition at line 89 of file queue.c.

References qelem_t::data, queue_t::last, queue_t::mutex, queue_t::nelem, and qelem_t::q_forw.

Referenced by base_port_AllocateTunnelBuffer(), base_port_FlushProcessingBuffers(), base_port_ReturnBufferFunction(), base_port_SendBufferFunction(), omx_base_component_SendCommand(), and videosrc_port_AllocateTunnelBuffer().

void queue_deinit ( queue_t queue  ) 

Deinitialize a queue descriptor flushing all of its internal data

Parameters:
queue the queue descriptor to dump

Definition at line 65 of file queue.c.

References queue_t::first, MAX_QUEUE_ELEMENTS, queue_t::mutex, and qelem_t::q_forw.

Referenced by base_port_Destructor(), and omx_base_component_Destructor().

void queue_init ( queue_t queue  ) 

Initialize a queue descriptor

Parameters:
queue The queue descriptor to initialize. The user needs to allocate the queue

Definition at line 41 of file queue.c.

References queue_t::first, queue_t::last, MAX_QUEUE_ELEMENTS, queue_t::mutex, queue_t::nelem, and qelem_t::q_forw.

Referenced by base_port_Constructor(), and omx_base_component_Constructor().


Generated for OpenMAX Bellagio rel. 0.3.5-svn by  doxygen 1.5.1
SourceForge.net Logo