## GstSample GstSample — A media sample |

## Functions

GstBuffer * | gst_sample_get_buffer ()
GstCaps * | gst_sample_get_caps ()
const GstStructure * | gst_sample_get_info ()
GstSegment * | gst_sample_get_segment ()
GstSample * | gst_sample_new ()
GstSample * | gst_sample_ref ()
void | gst_sample_unref ()
GstSample * | gst_sample_copy ()

## Types and Values

| GstSample

## Object Hierarchy

        GBoxed
        ╰── GstSample

## Includes

    #include <gst/gst.h>

## Description

A GstSample is a small object containing data, a type, timing and extra arbitrary information.

## Functions

### gst_sample_get_buffer ()

    GstBuffer *
    gst_sample_get_buffer (GstSample *sample);

Get the buffer associated with `sample`

#### Parameters

sample | a GstSample |

#### Returns

the buffer of `sample` or `NULL` when there is no buffer. The buffer remains valid as long as `sample` is valid. If you need to hold on to it for longer than that, take a ref to the buffer with `gst_buffer_ref()`.

[transfer none][nullable]

### gst_sample_get_caps ()

    GstCaps *
    gst_sample_get_caps (GstSample *sample);

Get the caps associated with `sample`

#### Parameters

sample | a GstSample |

#### Returns

the caps of `sample` or `NULL` when there is no caps. The caps remain valid as long as `sample` is valid. If you need to hold on to the caps for longer than that, take a ref to the caps with `gst_caps_ref()`.

[transfer none][nullable]

### gst_sample_get_info ()

    const GstStructure *
    gst_sample_get_info (GstSample *sample);

Get extra information associated with `sample` .

#### Parameters

sample | a GstSample |

#### Returns

the extra info of `sample` . The info remains valid as long as `sample` is valid.

[transfer none]

### gst_sample_get_segment ()

    GstSegment *
    gst_sample_get_segment (GstSample *sample);

Get the segment associated with `sample`

#### Parameters

sample | a GstSample |

#### Returns

the segment of `sample` . The segment remains valid as long as `sample` is valid.

[transfer none]

### gst_sample_new ()

    GstSample *
    gst_sample_new (GstBuffer *buffer,
                    GstCaps *caps,
                    const GstSegment *segment,
                    GstStructure *info);

Create a new GstSample with the provided details.

Free-function: gst_sample_unref

#### Parameters

buffer | a GstBuffer, or `NULL`. | [transfer none][allow-none]
caps | a GstCaps, or `NULL`. | [transfer none][allow-none]
segment | a GstSegment, or `NULL`. | [transfer none][allow-none]
info | a GstStructure, or `NULL`. | [transfer full][allow-none]

#### Returns

the new GstSample. `gst_sample_unref()` after usage.

[transfer full]

### gst_sample_ref ()

    GstSample *
    gst_sample_ref (GstSample *sample);

Increases the refcount of the given sample by one.

#### Parameters

sample | a GstSample |

#### Returns

`sample` .

[transfer full]

### gst_sample_unref ()

    void
    gst_sample_unref (GstSample *sample);

Decreases the refcount of the sample. If the refcount reaches 0, the sample will be freed.

#### Parameters

sample | a GstSample. | [transfer full]

### gst_sample_copy ()

    GstSample *
    gst_sample_copy (const GstSample *buf);

Create a copy of the given sample. This will also make a newly allocated copy of the data the source sample contains.

#### Parameters

buf | a GstSample. |

#### Returns

a new copy of `buf` .

[transfer full]

Since 1.2

## Types and Values

### GstSample

    typedef struct _GstSample GstSample;

The opaque structure of a GstSample. A sample contains a typed memory block and the associated timing information. It is mainly used to exchange buffers with an application.

## See Also

GstBuffer, GstCaps, GstSegment