ArvBuffer

ArvBuffer — Buffer for storage of video frames

Functions

Types and Values

enum ArvBufferStatus
  ArvBuffer
typedef ArvPixelFormat
#define ARV_PIXEL_FORMAT_BAYER_BG_10
#define ARV_PIXEL_FORMAT_BAYER_BG_12
#define ARV_PIXEL_FORMAT_BAYER_GR_12_PACKED
#define ARV_PIXEL_FORMAT_BAYER_GB_12_PACKED
#define ARV_PIXEL_FORMAT_BAYER_RG_12_PACKED
#define ARV_PIXEL_FORMAT_BAYER_BG_12_PACKED
#define ARV_PIXEL_FORMAT_BAYER_BG_8
#define ARV_PIXEL_FORMAT_BAYER_GB_10
#define ARV_PIXEL_FORMAT_BAYER_GB_12
#define ARV_PIXEL_FORMAT_BAYER_GB_8
#define ARV_PIXEL_FORMAT_BAYER_GR_10
#define ARV_PIXEL_FORMAT_BAYER_GR_12
#define ARV_PIXEL_FORMAT_BAYER_GR_8
#define ARV_PIXEL_FORMAT_BAYER_RG_10
#define ARV_PIXEL_FORMAT_BAYER_RG_12
#define ARV_PIXEL_FORMAT_BAYER_RG_8
#define ARV_PIXEL_FORMAT_BAYER_BG_16
#define ARV_PIXEL_FORMAT_BAYER_GB_16
#define ARV_PIXEL_FORMAT_BAYER_GR_16
#define ARV_PIXEL_FORMAT_BAYER_RG_16
#define ARV_PIXEL_FORMAT_BGRA_8_PACKED
#define ARV_PIXEL_FORMAT_BGR_10_PACKED
#define ARV_PIXEL_FORMAT_BGR_12_PACKED
#define ARV_PIXEL_FORMAT_BGR_8_PACKED
#define ARV_PIXEL_FORMAT_CUSTOM_BAYER_BG_12_PACKED
#define ARV_PIXEL_FORMAT_CUSTOM_BAYER_BG_16
#define ARV_PIXEL_FORMAT_CUSTOM_BAYER_GB_12_PACKED
#define ARV_PIXEL_FORMAT_CUSTOM_BAYER_GB_16
#define ARV_PIXEL_FORMAT_CUSTOM_BAYER_GR_12_PACKED
#define ARV_PIXEL_FORMAT_CUSTOM_BAYER_GR_16
#define ARV_PIXEL_FORMAT_CUSTOM_BAYER_RG_12_PACKED
#define ARV_PIXEL_FORMAT_CUSTOM_BAYER_RG_16
#define ARV_PIXEL_FORMAT_CUSTOM_YUV_422_YUYV_PACKED
#define ARV_PIXEL_FORMAT_MONO_10
#define ARV_PIXEL_FORMAT_MONO_10_PACKED
#define ARV_PIXEL_FORMAT_MONO_12
#define ARV_PIXEL_FORMAT_MONO_12_PACKED
#define ARV_PIXEL_FORMAT_MONO_14
#define ARV_PIXEL_FORMAT_MONO_16
#define ARV_PIXEL_FORMAT_MONO_8
#define ARV_PIXEL_FORMAT_MONO_8_SIGNED
#define ARV_PIXEL_FORMAT_RGBA_8_PACKED
#define ARV_PIXEL_FORMAT_RGB_10_PACKED
#define ARV_PIXEL_FORMAT_RGB_10_PLANAR
#define ARV_PIXEL_FORMAT_RGB_12_PACKED
#define ARV_PIXEL_FORMAT_RGB_12_PLANAR
#define ARV_PIXEL_FORMAT_RGB_16_PLANAR
#define ARV_PIXEL_FORMAT_RGB_8_PACKED
#define ARV_PIXEL_FORMAT_RGB_8_PLANAR
#define ARV_PIXEL_FORMAT_YUV_411_PACKED
#define ARV_PIXEL_FORMAT_YUV_422_PACKED
#define ARV_PIXEL_FORMAT_YUV_422_YUYV_PACKED
#define ARV_PIXEL_FORMAT_YUV_444_PACKED

Object Hierarchy

    GObject
    ╰── ArvBuffer

Description

ArvBuffer provides a class for the instantiation of buffers used for the storage of the separate images of the video stream. The actual data space may either be allocated by ArvBuffer during an object instatiation, of preallocated. ArvBuffer also allows the transmission of image metadata, such as offsets and size of the transmitted region of interrest, pixel format and time stamp.

Functions

ArvFrameCallback ()

void
(*ArvFrameCallback) (ArvBuffer *buffer);

arv_buffer_new ()

ArvBuffer *
arv_buffer_new (size_t size,
                void *preallocated);

Creates a new buffer for the storage of the video stream images. The data space can be either preallocated, and the caller is responsible for it's deallocation, or allocated by this function. If it is the case, data memory will be freed when the buffer is destroyed.

Parameters

size

payload size

 

preallocated

preallocated memory buffer.

[transfer none]

Returns

a new ArvBuffer object

Since 0.2.0


arv_buffer_new_full ()

ArvBuffer *
arv_buffer_new_full (size_t size,
                     void *preallocated,
                     void *user_data,
                     GDestroyNotify user_data_destroy_func);

Creates a new buffer for the storage of the video stream images. The data space can be either preallocated, and the caller is responsible for it's deallocation, or allocated by this function. If it is the case, data memory will be freed when the buffer is destroyed.

If user_data_destroy_func is non NULL, it will be called in order to destroy user_data when the buffer is destroyed.

Parameters

size

payload size

 

preallocated

preallocated memory buffer.

[transfer none]

user_data

a pointer to user data associated to this buffer.

[transfer none]

user_data_destroy_func

an optional user data destroy callback

 

Returns

a new ArvBuffer object

Since 0.2.0


arv_buffer_new_allocate ()

ArvBuffer *
arv_buffer_new_allocate (size_t size);

Creates a new buffer for the storage of the video stream images. The data space is allocated by this function, and will be freed when the buffer is destroyed.

Parameters

size

payload size

 

Returns

a new ArvBuffer object

Since 0.2.3


ARV_PIXEL_FORMAT_BIT_PER_PIXEL()

#define ARV_PIXEL_FORMAT_BIT_PER_PIXEL(pixel_format) (((pixel_format) >> 16) & 0xff)

Types and Values

enum ArvBufferStatus

Members

ARV_BUFFER_STATUS_SUCCESS

the buffer contains a valid image

 

ARV_BUFFER_STATUS_CLEARED

the buffer is cleared

 

ARV_BUFFER_STATUS_TIMEOUT

timeout was reached before all packets are received

 

ARV_BUFFER_STATUS_MISSING_PACKETS

stream has missing packets

 

ARV_BUFFER_STATUS_WRONG_PACKET_ID

stream has packet with wrong id

 

ARV_BUFFER_STATUS_SIZE_MISMATCH

the received image didn't fit in the buffer data space

 

ARV_BUFFER_STATUS_FILLING

the image is currently being filled

 

ARV_BUFFER_STATUS_ABORTED

the filling was aborted before completion

 

ArvBuffer

typedef struct _ArvBuffer ArvBuffer;

ArvPixelFormat

typedef guint32 ArvPixelFormat;

ARV_PIXEL_FORMAT_BAYER_BG_10

#define ARV_PIXEL_FORMAT_BAYER_BG_10		0x0110000f

ARV_PIXEL_FORMAT_BAYER_BG_12

#define ARV_PIXEL_FORMAT_BAYER_BG_12		0x01100013

ARV_PIXEL_FORMAT_BAYER_GR_12_PACKED

#define ARV_PIXEL_FORMAT_BAYER_GR_12_PACKED 0x010c002a

ARV_PIXEL_FORMAT_BAYER_GB_12_PACKED

#define ARV_PIXEL_FORMAT_BAYER_GB_12_PACKED 0x010c002c

ARV_PIXEL_FORMAT_BAYER_RG_12_PACKED

#define ARV_PIXEL_FORMAT_BAYER_RG_12_PACKED 0x010c002b

ARV_PIXEL_FORMAT_BAYER_BG_12_PACKED

#define ARV_PIXEL_FORMAT_BAYER_BG_12_PACKED 0x010c002d

ARV_PIXEL_FORMAT_BAYER_BG_8

#define ARV_PIXEL_FORMAT_BAYER_BG_8		0x0108000b

ARV_PIXEL_FORMAT_BAYER_GB_10

#define ARV_PIXEL_FORMAT_BAYER_GB_10		0x0110000e

ARV_PIXEL_FORMAT_BAYER_GB_12

#define ARV_PIXEL_FORMAT_BAYER_GB_12		0x01100012

ARV_PIXEL_FORMAT_BAYER_GB_8

#define ARV_PIXEL_FORMAT_BAYER_GB_8		0x0108000a

ARV_PIXEL_FORMAT_BAYER_GR_10

#define ARV_PIXEL_FORMAT_BAYER_GR_10		0x0110000c

ARV_PIXEL_FORMAT_BAYER_GR_12

#define ARV_PIXEL_FORMAT_BAYER_GR_12		0x01100010

ARV_PIXEL_FORMAT_BAYER_GR_8

#define ARV_PIXEL_FORMAT_BAYER_GR_8		0x01080008

ARV_PIXEL_FORMAT_BAYER_RG_10

#define ARV_PIXEL_FORMAT_BAYER_RG_10		0x0110000d

ARV_PIXEL_FORMAT_BAYER_RG_12

#define ARV_PIXEL_FORMAT_BAYER_RG_12		0x01100011

ARV_PIXEL_FORMAT_BAYER_RG_8

#define ARV_PIXEL_FORMAT_BAYER_RG_8		0x01080009

ARV_PIXEL_FORMAT_BAYER_BG_16

#define ARV_PIXEL_FORMAT_BAYER_BG_16		0x01100031

ARV_PIXEL_FORMAT_BAYER_GB_16

#define ARV_PIXEL_FORMAT_BAYER_GB_16		0x01100030

ARV_PIXEL_FORMAT_BAYER_GR_16

#define ARV_PIXEL_FORMAT_BAYER_GR_16		0x0110002e

ARV_PIXEL_FORMAT_BAYER_RG_16

#define ARV_PIXEL_FORMAT_BAYER_RG_16		0x0110002f

ARV_PIXEL_FORMAT_BGRA_8_PACKED

#define ARV_PIXEL_FORMAT_BGRA_8_PACKED		0x02200017

ARV_PIXEL_FORMAT_BGR_10_PACKED

#define ARV_PIXEL_FORMAT_BGR_10_PACKED		0x02300019

ARV_PIXEL_FORMAT_BGR_12_PACKED

#define ARV_PIXEL_FORMAT_BGR_12_PACKED		0x0230001b

ARV_PIXEL_FORMAT_BGR_8_PACKED

#define ARV_PIXEL_FORMAT_BGR_8_PACKED		0x02180015

ARV_PIXEL_FORMAT_CUSTOM_BAYER_BG_12_PACKED

#define ARV_PIXEL_FORMAT_CUSTOM_BAYER_BG_12_PACKED  	0x810c0004

ARV_PIXEL_FORMAT_CUSTOM_BAYER_BG_16

#define ARV_PIXEL_FORMAT_CUSTOM_BAYER_BG_16		0x81100009

ARV_PIXEL_FORMAT_CUSTOM_BAYER_GB_12_PACKED

#define ARV_PIXEL_FORMAT_CUSTOM_BAYER_GB_12_PACKED  	0x810c0003

ARV_PIXEL_FORMAT_CUSTOM_BAYER_GB_16

#define ARV_PIXEL_FORMAT_CUSTOM_BAYER_GB_16		0x81100008

ARV_PIXEL_FORMAT_CUSTOM_BAYER_GR_12_PACKED

#define ARV_PIXEL_FORMAT_CUSTOM_BAYER_GR_12_PACKED  	0x810c0001

ARV_PIXEL_FORMAT_CUSTOM_BAYER_GR_16

#define ARV_PIXEL_FORMAT_CUSTOM_BAYER_GR_16		0x81100006

ARV_PIXEL_FORMAT_CUSTOM_BAYER_RG_12_PACKED

#define ARV_PIXEL_FORMAT_CUSTOM_BAYER_RG_12_PACKED  	0x810c0002

ARV_PIXEL_FORMAT_CUSTOM_BAYER_RG_16

#define ARV_PIXEL_FORMAT_CUSTOM_BAYER_RG_16		0x81100007

ARV_PIXEL_FORMAT_CUSTOM_YUV_422_YUYV_PACKED

#define ARV_PIXEL_FORMAT_CUSTOM_YUV_422_YUYV_PACKED 	0x82100005

ARV_PIXEL_FORMAT_MONO_10

#define ARV_PIXEL_FORMAT_MONO_10		0x01100003

ARV_PIXEL_FORMAT_MONO_10_PACKED

#define ARV_PIXEL_FORMAT_MONO_10_PACKED		0x010c0004

ARV_PIXEL_FORMAT_MONO_12

#define ARV_PIXEL_FORMAT_MONO_12		0x01100005

ARV_PIXEL_FORMAT_MONO_12_PACKED

#define ARV_PIXEL_FORMAT_MONO_12_PACKED		0x010c0006

ARV_PIXEL_FORMAT_MONO_14

#define ARV_PIXEL_FORMAT_MONO_14		0x01100025 /* https://bugzilla.gnome.org/show_bug.cgi?id=655131 */

ARV_PIXEL_FORMAT_MONO_16

#define ARV_PIXEL_FORMAT_MONO_16		0x01100007

ARV_PIXEL_FORMAT_MONO_8

#define ARV_PIXEL_FORMAT_MONO_8			0x01080001

ARV_PIXEL_FORMAT_MONO_8_SIGNED

#define ARV_PIXEL_FORMAT_MONO_8_SIGNED		0x01080002

ARV_PIXEL_FORMAT_RGBA_8_PACKED

#define ARV_PIXEL_FORMAT_RGBA_8_PACKED		0x02200016

ARV_PIXEL_FORMAT_RGB_10_PACKED

#define ARV_PIXEL_FORMAT_RGB_10_PACKED		0x02300018

ARV_PIXEL_FORMAT_RGB_10_PLANAR

#define ARV_PIXEL_FORMAT_RGB_10_PLANAR		0x02300022

ARV_PIXEL_FORMAT_RGB_12_PACKED

#define ARV_PIXEL_FORMAT_RGB_12_PACKED		0x0230001a

ARV_PIXEL_FORMAT_RGB_12_PLANAR

#define ARV_PIXEL_FORMAT_RGB_12_PLANAR		0x02300023

ARV_PIXEL_FORMAT_RGB_16_PLANAR

#define ARV_PIXEL_FORMAT_RGB_16_PLANAR		0x02300024

ARV_PIXEL_FORMAT_RGB_8_PACKED

#define ARV_PIXEL_FORMAT_RGB_8_PACKED		0x02180014

ARV_PIXEL_FORMAT_RGB_8_PLANAR

#define ARV_PIXEL_FORMAT_RGB_8_PLANAR		0x02180021

ARV_PIXEL_FORMAT_YUV_411_PACKED

#define ARV_PIXEL_FORMAT_YUV_411_PACKED		0x020c001e

ARV_PIXEL_FORMAT_YUV_422_PACKED

#define ARV_PIXEL_FORMAT_YUV_422_PACKED		0x0210001f

ARV_PIXEL_FORMAT_YUV_422_YUYV_PACKED

#define ARV_PIXEL_FORMAT_YUV_422_YUYV_PACKED 	0x02100032

ARV_PIXEL_FORMAT_YUV_444_PACKED

#define ARV_PIXEL_FORMAT_YUV_444_PACKED		0x02180020