### Class

# Aravis Stream

#### Description [src]

    abstract class Aravis.Stream : GObject.Object
      implements Gio.Initable {
      /* No available fields */
    }

`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.

#### Ancestors

- GObject

#### Descendants

- ArvFakeStream
- ArvGvStream
- ArvUvStream

#### Implements

- GInitable

#### Instance methods

###### arv_stream_get_emit_signals

Check if stream will emit its signals.

since: 0.2.0

###### arv_stream_get_info_double

No description available.

since: 0.8.11

###### arv_stream_get_info_double_by_name

No description available.

since: 0.8.11

###### arv_stream_get_info_name

No description available.

since: 0.8.11

###### arv_stream_get_info_type

No description available.

since: 0.8.11

###### arv_stream_get_info_uint64

No description available.

since: 0.8.11

###### arv_stream_get_info_uint64_by_name

No description available.

since: 0.8.11

###### arv_stream_get_n_buffers

An accessor to the stream buffer queue lengths.

since: 0.2.0

###### arv_stream_get_n_infos

No description available.

since: 0.8.11

###### arv_stream_get_statistics

An accessor to the stream statistics.

since: 0.2.0

###### arv_stream_pop_buffer

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. This function blocks until a buffer is available.

since: 0.2.0

###### arv_stream_push_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.

since: 0.2.0

###### arv_stream_set_emit_signals

Make `stream` emit signals. This option is by default disabled because signal emission is expensive and unneeded when the application prefers to operate in pull mode.

since: 0.2.0

###### arv_stream_start_thread

Start the stream receiving thread. The thread is automatically started when the `ArvStream` object is instantiated, so this function is only useful if the thread was stopped using `arv_stream_stop_thread`.

since: 0.6.2

###### arv_stream_stop_thread

Stop the stream receiving thread, and optionally delete all the `ArvBuffer` stored in the stream object queues. Main use of this function is to be able to quickly change an acquisition parameter that changes the payload size, without deleting/recreating the stream object.

since: 0.6.2

###### arv_stream_timeout_pop_buffer

Pops a buffer from the output queue of `stream`, waiting no more than `timeout`. The retrieved buffer may contain an invalid image. Caller should check the buffer status before using it.

since: 0.2.0

###### arv_stream_try_pop_buffer

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. This is the non blocking version of pop_buffer.

since: 0.2.0

##### Methods inherited from GObject (43)

Please see GObject for a full list of methods.

##### Methods inherited from GInitable (1)

###### g_initable_init

Initializes the object implementing the interface.

#### Properties

###### Aravis.Stream:callback

No description available.

###### Aravis.Stream:callback-data

No description available.

###### Aravis.Stream:destroy-notify

No description available.

###### Aravis.Stream:device

No description available.

###### Aravis.Stream:emit-signals

No description available.

#### Signals

###### Aravis.Stream::new-buffer

Signal that a new buffer is available.

since: 0.2.0

##### Signals inherited from GObject (1)

###### GObject::notify

The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.

#### Class structure

    struct AravisStreamClass {
      GObjectClass parent_class;
      void (* start_thread) (
        ArvStream* stream
      );
      void (* stop_thread) (
        ArvStream* stream
      );
      void (* new_buffer) (
        ArvStream* stream
      );

    }

No description available.

###### Class members

`parent_class: GObjectClass`

  No description available.

`start_thread: void (* start_thread) ( ArvStream* stream )`

  No description available.

`stop_thread: void (* stop_thread) ( ArvStream* stream )`

  No description available.

`new_buffer: void (* new_buffer) ( ArvStream* stream )`

  No description available.

#### Virtual methods

###### Aravis.StreamClass.new_buffer

No description available.

###### Aravis.StreamClass.start_thread

Start the stream receiving thread. The thread is automatically started when the `ArvStream` object is instantiated, so this function is only useful if the thread was stopped using `arv_stream_stop_thread`.

since: 0.6.2

###### Aravis.StreamClass.stop_thread

No description available.