ArvStream

ArvStream — Abstract base class for video stream reception

Synopsis

enum                ArvStreamCallbackType;
void                (*ArvStreamCallback)                (void *user_data,
                                                         ArvStreamCallbackType type,
                                                         ArvBuffer *buffer);
                    ArvStream;
void                arv_stream_push_buffer              (ArvStream *stream,
                                                         ArvBuffer *buffer);
ArvBuffer *         arv_stream_pop_buffer               (ArvStream *stream);
int                 arv_stream_get_n_available_buffers  (ArvStream *stream);
void                arv_stream_get_statistics           (ArvStream *stream,
                                                         guint64 *n_completed_buffers,
                                                         guint64 *n_failures,
                                                         guint64 *n_underruns);

Object Hierarchy

  GObject
   +----ArvStream
         +----ArvFakeStream
         +----ArvGvStream

Description

ArvStream provides an abstract base class for the implementation of video stream reception threads. The interface between the reception thread and the main thread is done using asynchronous queues, containing ArvBuffer objects.

Details

enum ArvStreamCallbackType

typedef enum {
	ARV_STREAM_CALLBACK_TYPE_INIT,
	ARV_STREAM_CALLBACK_TYPE_EXIT,
	ARV_STREAM_CALLBACK_TYPE_START_BUFFER,
	ARV_STREAM_CALLBACK_TYPE_BUFFER_DONE
} ArvStreamCallbackType;

Describes when the stream callback is called.

ARV_STREAM_CALLBACK_TYPE_INIT

thread initialization, happens once

ARV_STREAM_CALLBACK_TYPE_EXIT

thread end, happens once

ARV_STREAM_CALLBACK_TYPE_START_BUFFER

buffer filling start, happens at each frame

ARV_STREAM_CALLBACK_TYPE_BUFFER_DONE

buffer filled, happens at each frame

ArvStreamCallback ()

void                (*ArvStreamCallback)                (void *user_data,
                                                         ArvStreamCallbackType type,
                                                         ArvBuffer *buffer);

ArvStream

typedef struct _ArvStream ArvStream;

arv_stream_push_buffer ()

void                arv_stream_push_buffer              (ArvStream *stream,
                                                         ArvBuffer *buffer);

Pushes a ArvBuffer to the stream thread. The stream takes ownership of buffer, and will free all the buffers still in its queues when destroyed.

stream :

a ArvStream

buffer :

buffer to push. transfer full.

arv_stream_pop_buffer ()

ArvBuffer *         arv_stream_pop_buffer               (ArvStream *stream);

Pops a buffer from the output queue of stream. The retrieved buffer may contain an invalid image. Caller should check the buffer status before using it.

stream :

a ArvStream Returns: a ArvBuffer

arv_stream_get_n_available_buffers ()

int                 arv_stream_get_n_available_buffers  (ArvStream *stream);

arv_stream_get_statistics ()

void                arv_stream_get_statistics           (ArvStream *stream,
                                                         guint64 *n_completed_buffers,
                                                         guint64 *n_failures,
                                                         guint64 *n_underruns);