Exemplo n.º 1
0
ArvBufferPayloadType
arv_buffer_get_payload_type (ArvBuffer *buffer)
{
	g_return_val_if_fail (ARV_IS_BUFFER (buffer), -1);
	
	switch (buffer->priv->gvsp_payload_type) {
		case ARV_GVSP_PAYLOAD_TYPE_IMAGE:
			return ARV_BUFFER_PAYLOAD_TYPE_IMAGE;
		case ARV_GVSP_PAYLOAD_TYPE_RAWDATA:
			return ARV_BUFFER_PAYLOAD_TYPE_RAWDATA;
		case ARV_GVSP_PAYLOAD_TYPE_FILE:
			return ARV_BUFFER_PAYLOAD_TYPE_FILE;
		case ARV_GVSP_PAYLOAD_TYPE_CHUNK_DATA:
			return ARV_BUFFER_PAYLOAD_TYPE_CHUNK_DATA;
		case ARV_GVSP_PAYLOAD_TYPE_EXTENDED_CHUNK_DATA:
			return ARV_BUFFER_PAYLOAD_TYPE_EXTENDED_CHUNK_DATA;
		case ARV_GVSP_PAYLOAD_TYPE_JPEG:
			return ARV_BUFFER_PAYLOAD_TYPE_JPEG;
		case ARV_GVSP_PAYLOAD_TYPE_JPEG2000:
			return ARV_BUFFER_PAYLOAD_TYPE_JPEG2000;
		case ARV_GVSP_PAYLOAD_TYPE_H264:
			return ARV_BUFFER_PAYLOAD_TYPE_H264;
		case ARV_GVSP_PAYLOAD_TYPE_MULTIZONE_IMAGE:
			return ARV_BUFFER_PAYLOAD_TYPE_MULTIZONE_IMAGE;
		default:
			return ARV_BUFFER_PAYLOAD_TYPE_UNKNOWN;
	}
}
Exemplo n.º 2
0
guint64
arv_buffer_get_timestamp (ArvBuffer *buffer)
{
	g_return_val_if_fail (ARV_IS_BUFFER (buffer), 0);

	return buffer->priv->timestamp_ns;
}
Exemplo n.º 3
0
const void *
arv_buffer_get_user_data (ArvBuffer *buffer)
{
	g_return_val_if_fail (ARV_IS_BUFFER (buffer), NULL);
	
	return buffer->priv->user_data;
}
Exemplo n.º 4
0
ArvBufferStatus
arv_buffer_get_status (ArvBuffer *buffer)
{
	g_return_val_if_fail (ARV_IS_BUFFER (buffer), ARV_BUFFER_STATUS_UNKNOWN);
	
	return buffer->priv->status;
}
Exemplo n.º 5
0
void
arv_buffer_clear (ArvBuffer *buffer)
{
	g_return_if_fail (ARV_IS_BUFFER (buffer));

	buffer->priv->status = ARV_BUFFER_STATUS_CLEARED;
}
Exemplo n.º 6
0
guint32
arv_buffer_get_frame_id (ArvBuffer *buffer)
{
	g_return_val_if_fail (ARV_IS_BUFFER (buffer), 0);

	return buffer->priv->frame_id;
}
Exemplo n.º 7
0
void
arv_stream_push_buffer (ArvStream *stream, ArvBuffer *buffer)
{
	g_return_if_fail (ARV_IS_STREAM (stream));
	g_return_if_fail (ARV_IS_BUFFER (buffer));

	g_async_queue_push (stream->priv->input_queue, buffer);
}
Exemplo n.º 8
0
ArvPixelFormat
arv_buffer_get_image_pixel_format (ArvBuffer *buffer)
{
	g_return_val_if_fail (ARV_IS_BUFFER (buffer), 0);
	g_return_val_if_fail (buffer->priv->gvsp_payload_type == ARV_GVSP_PAYLOAD_TYPE_IMAGE, 0);

	return buffer->priv->pixel_format;
}
Exemplo n.º 9
0
gint
arv_buffer_get_image_y (ArvBuffer *buffer)
{
	g_return_val_if_fail (ARV_IS_BUFFER (buffer), 0);
	g_return_val_if_fail (buffer->priv->gvsp_payload_type == ARV_GVSP_PAYLOAD_TYPE_IMAGE, 0);

	return buffer->priv->y_offset;
}
Exemplo n.º 10
0
const void *
arv_buffer_get_data (ArvBuffer *buffer, size_t *size)
{
	g_return_val_if_fail (ARV_IS_BUFFER (buffer), NULL);

	if (size != NULL)
		*size = buffer->priv->size;

	return buffer->priv->data;
}
Exemplo n.º 11
0
void
arv_stream_push_output_buffer (ArvStream *stream, ArvBuffer *buffer)
{
	g_return_if_fail (ARV_IS_STREAM (stream));
	g_return_if_fail (ARV_IS_BUFFER (buffer));

	g_async_queue_push (stream->priv->output_queue, buffer);

	if (stream->priv->emit_signals)
		g_signal_emit (stream, arv_stream_signals[ARV_STREAM_SIGNAL_NEW_BUFFER], 0);
}
Exemplo n.º 12
0
void
arv_buffer_get_image_region (ArvBuffer *buffer, gint *x, gint *y, gint *width, gint *height)
{
	g_return_val_if_fail (ARV_IS_BUFFER (buffer), 0);
	g_return_val_if_fail (buffer->priv->gvsp_payload_type == ARV_GVSP_PAYLOAD_TYPE_IMAGE, 0);

	if (x != NULL)
		*x = buffer->priv->x_offset;
	if (y != NULL)
		*y = buffer->priv->y_offset;
	if (width != NULL)
		*width = buffer->priv->width;
	if (height != NULL)
		*height = buffer->priv->height;
}
Exemplo n.º 13
0
static void
preallocated_buffer_test (void)
{
	ArvBuffer *buffer;
	void *data = g_malloc (1024);

	buffer = arv_buffer_new (1024, data);
	g_assert (ARV_IS_BUFFER (buffer));
	g_assert (buffer->data == data);

	g_assert (buffer->user_data == NULL);
	g_assert (buffer->user_data_destroy_func == NULL);

	g_assert (buffer->status == ARV_BUFFER_STATUS_CLEARED);

	g_object_unref (buffer);
}
Exemplo n.º 14
0
static void
simple_buffer_test (void)
{
	ArvBuffer *buffer;

	buffer = arv_buffer_new (1024, NULL);

	g_assert (ARV_IS_BUFFER (buffer));
	g_assert (buffer->data != NULL);
	g_assert (buffer->size == 1024);

	g_assert (buffer->user_data == NULL);
	g_assert (buffer->user_data_destroy_func == NULL);

	g_assert (buffer->status == ARV_BUFFER_STATUS_CLEARED);

	g_object_unref (buffer);
}
Exemplo n.º 15
0
const char *
arv_chunk_parser_get_string_value (ArvChunkParser *parser, ArvBuffer *buffer, const char *chunk)
{
	ArvGcNode *node;
	const char *string = NULL;

	g_return_val_if_fail (ARV_IS_CHUNK_PARSER (parser), NULL);
	g_return_val_if_fail (ARV_IS_BUFFER (buffer), NULL);

	node = arv_gc_get_node (parser->priv->genicam, chunk);
	arv_gc_set_buffer (parser->priv->genicam, buffer);

	if (ARV_IS_GC_STRING (node))
		string = arv_gc_string_get_value (ARV_GC_STRING (node), NULL);
	else
		arv_warning_device ("[ArvChunkParser::get_string_value] Node '%s' is not a string", chunk);

	return string;
}
Exemplo n.º 16
0
double
arv_chunk_parser_get_float_value (ArvChunkParser *parser, ArvBuffer *buffer, const char *chunk)
{
	ArvGcNode *node;
	double value = 0.0;

	g_return_val_if_fail (ARV_IS_CHUNK_PARSER (parser), 0.0);
	g_return_val_if_fail (ARV_IS_BUFFER (buffer), 0.0);

	node = arv_gc_get_node (parser->priv->genicam, chunk);
	arv_gc_set_buffer (parser->priv->genicam, buffer);

	if (ARV_IS_GC_FLOAT (node))
		value = arv_gc_float_get_value (ARV_GC_FLOAT (node), NULL);
	else 
		arv_warning_chunk ("[ArvChunkParser::get_float_value] Node '%s' is not a float", chunk);

	return value;
}
Exemplo n.º 17
0
gint64
arv_chunk_parser_get_integer_value (ArvChunkParser *parser, ArvBuffer *buffer, const char *chunk)
{
	ArvGcNode *node;
	gint64 value = 0;

	g_return_val_if_fail (ARV_IS_CHUNK_PARSER (parser), 0.0);
	g_return_val_if_fail (ARV_IS_BUFFER (buffer), 0.0);

	node = arv_gc_get_node (parser->priv->genicam, chunk);
	arv_gc_set_buffer (parser->priv->genicam, buffer);

	if (ARV_IS_GC_INTEGER (node))
		value = arv_gc_integer_get_value (ARV_GC_INTEGER (node), NULL);
	else
		arv_warning_device ("[ArvChunkParser::get_integer_value] Node '%s' is not an integer", chunk);

	return value;
}
Exemplo n.º 18
0
const void *
arv_buffer_get_chunk_data (ArvBuffer *buffer, guint64 chunk_id, size_t *size)
{
	ArvChunkInfos *infos;
	char *data;
	ptrdiff_t offset;

	if (size != NULL)
		*size = 0;

	g_return_val_if_fail (ARV_IS_BUFFER (buffer), NULL);
	g_return_val_if_fail (buffer->priv->data != NULL, NULL);
	g_return_val_if_fail (buffer->priv->gvsp_payload_type == ARV_GVSP_PAYLOAD_TYPE_CHUNK_DATA, NULL);

	if (buffer->priv->status != ARV_BUFFER_STATUS_SUCCESS)
		return NULL;

	data = buffer->priv->data;
	offset = buffer->priv->size - sizeof (ArvChunkInfos);
	while (offset > 0) {
		infos = (ArvChunkInfos *) &data[offset];
		if (GUINT32_FROM_BE (infos->id) == chunk_id) {
			ptrdiff_t data_offset;

			data_offset = offset - GUINT32_FROM_BE (infos->size);
			if (data_offset >= 0) {
				if (size != NULL)
					*size = GUINT32_FROM_BE (infos->size);
				return &data[data_offset];
			} else
		       		return NULL;
		}
		if (GUINT32_FROM_BE (infos->size) > 0)
			offset = offset - GUINT32_FROM_BE (infos->size) - sizeof (ArvChunkInfos);
		else
			offset = 0;
	};

	return NULL;
}
Exemplo n.º 19
0
static void
full_buffer_test (void)
{
	ArvBuffer *buffer;
	int value = 1234;


	buffer = arv_buffer_new_full (1024, NULL, &value, full_buffer_destroy_func);

	g_assert (ARV_IS_BUFFER (buffer));
	g_assert (buffer->data != NULL);
	g_assert (buffer->size == 1024);

	g_assert (buffer->user_data == &value);
	g_assert (buffer->user_data_destroy_func == full_buffer_destroy_func);

	g_assert (buffer->status == ARV_BUFFER_STATUS_CLEARED);

	g_object_unref (buffer);

	g_assert (value == 4321);
}