### Constructor

# Aravis Buffer new_full

since: 0.2.0

#### Declaration [src]

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

#### Description [src]

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.

Available since: 0.2.0

#### Parameters

`size`

  Type: `size_t`

  Payload size.

`preallocated`

  Type: `void*`

  Preallocated memory buffer.

  The argument can be `NULL`.
  The data is owned by the caller of the function.

`user_data`

  Type: `void*`

  A pointer to user data associated to this buffer.

  The argument can be `NULL`.
  The data is owned by the caller of the function.

`user_data_destroy_func`

  Type: `GDestroyNotify`

  An optional user data destroy callback.

  The argument can be `NULL`.

#### Return value

Type: `ArvBuffer`

A new `ArvBuffer` object.

The caller of the function takes ownership of the data, and is responsible for freeing it.