Top |
void | (*ArvStreamCallback) () |
void | arv_stream_push_buffer () |
ArvBuffer * | arv_stream_pop_buffer () |
ArvBuffer * | arv_stream_try_pop_buffer () |
ArvBuffer * | arv_stream_timeout_pop_buffer () |
void | arv_stream_get_n_buffers () |
void | arv_stream_get_statistics () |
gboolean | arv_stream_get_emit_signals () |
void | arv_stream_set_emit_signals () |
gboolean | arv_make_thread_realtime () |
gboolean | arv_make_thread_high_priority () |
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.
void (*ArvStreamCallback) (void *user_data
,ArvStreamCallbackType type
,ArvBuffer *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.
This method is thread safe.
Since: 0.2.0
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.
This function blocks until a buffer is available.
This method is thread safe.
Since: 0.2.0
ArvBuffer *
arv_stream_try_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.
This is the non blocking version of pop_buffer.
This method is thread safe.
Since: 0.2.0
ArvBuffer * arv_stream_timeout_pop_buffer (ArvStream *stream
,guint64 timeout
);
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.
This method is thread safe.
Since: 0.2.0
void arv_stream_get_n_buffers (ArvStream *stream
,gint *n_input_buffers
,gint *n_output_buffers
);
An accessor to the stream buffer queue lengths.
stream |
||
n_input_buffers |
input queue length. |
[out][allow-none] |
n_output_buffers |
output queue length. |
[out][allow-none] |
Since: 0.2.0
void arv_stream_get_statistics (ArvStream *stream
,guint64 *n_completed_buffers
,guint64 *n_failures
,guint64 *n_underruns
);
An accessor to the stream statistics.
stream |
||
n_completed_buffers |
number of complete received buffers. |
[out][allow-none] |
n_failures |
number of reception failures. |
[out][allow-none] |
n_underruns |
number of input buffer underruns. |
[out][allow-none] |
Since: 0.2.0
gboolean
arv_stream_get_emit_signals (ArvStream *stream
);
Check if stream will emit its signals.
Since: 0.2.0
void arv_stream_set_emit_signals (ArvStream *stream
,gboolean 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
gboolean
arv_make_thread_realtime (int priority
);
TRUE
on success.
Try to make current thread realtime. It first try to use sched_setscheduler, and if it fails, use rtkit.
Since: 0.4.0
“emit-signals”
property“emit-signals” gboolean
Emit signals.
Flags: Read / Write
Default value: FALSE
“new-buffer”
signalvoid user_function (ArvStream *stream, gpointer user_data)
Signal that a new buffer is available.
This signal is emited from the stream receive thread and only when the
"emit-signals" property is TRUE
.
The new buffer can be retrieved with arv_stream_pop_buffer()
.
Note that this signal is only emited when the "emit-signals" property is
set to TRUE
, which it is not by default for performance reasons.
stream |
the stream that emited the signal |
|
user_data |
user data set when the signal handler was connected. |
Flags: Run Last
Since: 0.2.0