GstBitWriter

GstBitWriter — Writes any number of bits into a memory buffer

Functions

Types and Values

struct GstBitWriter

Includes

#include <gst/base/base.h>

Description

GstBitWriter provides a bit writer that can write any number of bits into a memory buffer. It provides functions for writing any number of bits into 8, 16, 32 and 64 bit variables.

Functions

gst_bit_writer_new ()

GstBitWriter *
gst_bit_writer_new (void);

Creates a new, empty GstBitWriter instance.

Free-function: gst_bit_writer_free

[skip]

Returns

a new, empty GstByteWriter instance.

[transfer full]


gst_bit_writer_new_with_size ()

GstBitWriter *
gst_bit_writer_new_with_size (guint32 size,
                              gboolean fixed);

Creates a GstBitWriter instance with the given initial data size.

Free-function: gst_bit_writer_free

[skip]

Parameters

size

Initial size of data in bytes

 

fixed

If TRUE the data can't be reallocated

 

Returns

a new GstBitWriter instance.

[transfer full]


gst_bit_writer_new_with_data ()

GstBitWriter *
gst_bit_writer_new_with_data (guint8 *data,
                              guint size,
                              gboolean initialized);

Creates a new GstBitWriter instance with the given memory area. If initialized is TRUE it is possible to read size bits from the GstBitWriter from the beginnig.

Free-function: gst_bit_writer_free

[skip]

Parameters

data

Memory area for writing

 

size

Size of data in bytes

 

initialized

if TRUE the complete data can be read from the beginning

 

Returns

a new GstBitWriter instance.

[transfer full]


gst_bit_writer_free ()

void
gst_bit_writer_free (GstBitWriter *bitwriter);

Frees bitwriter and the allocated data inside.

Parameters

bitwriter

GstBitWriter instance.

[in][transfer full]

gst_bit_writer_free_and_get_buffer ()

GstBuffer *
gst_bit_writer_free_and_get_buffer (GstBitWriter *bitwriter);

Frees bitwriter without destroying the internal data, which is returned as GstBuffer.

Free-function: gst_buffer_unref

Parameters

bitwriter

GstBitWriter instance.

[in][transfer full]

Returns

a new allocated GstBuffer wrapping the data inside. gst_buffer_unref() after usage.

[transfer full]


gst_bit_writer_free_and_get_data ()

guint8 *
gst_bit_writer_free_and_get_data (GstBitWriter *bitwriter);

Frees bitwriter without destroying the internal data, which is returned.

Free-function: g_free

Parameters

bitwriter

GstBitWriter instance.

[in][transfer full]

Returns

the current data. g_free() after usage.

[array][transfer full]


gst_bit_writer_init ()

void
gst_bit_writer_init (GstBitWriter *bitwriter);

Initializes bitwriter to an empty instance.

[skip]

Parameters

bitwriter

GstBitWriter instance

 

gst_bit_writer_init_with_size ()

void
gst_bit_writer_init_with_size (GstBitWriter *bitwriter,
                               guint32 size,
                               gboolean fixed);

Initializes a GstBitWriter instance and allocates the given data size .

[skip]

Parameters

bitwriter

GstBitWriter instance

 

size

the size on bytes to allocate for data

 

fixed

If TRUE the data can't be reallocated

 

gst_bit_writer_init_with_data ()

void
gst_bit_writer_init_with_data (GstBitWriter *bitwriter,
                               guint8 *data,
                               guint size,
                               gboolean initialized);

Initializes bitwriter with the given memory area data . IF initialized is TRUE it is possible to read size bits from the GstBitWriter from the beginning.

[skip]

Parameters

bitwriter

GstBitWriter instance

 

data

Memory area for writing.

[array length=size][transfer none]

size

Size of data in bytes

 

initialized

If TRUE the complete data can be read from the beginning

 

gst_bit_writer_reset ()

void
gst_bit_writer_reset (GstBitWriter *bitwriter);

Resets bitwriter and frees the data if it's owned by bitwriter .

Parameters

bitwriter

GstBitWriter instance

 

gst_bit_writer_reset_and_get_buffer ()

GstBuffer *
gst_bit_writer_reset_and_get_buffer (GstBitWriter *bitwriter);

Resets bitwriter and returns the current data as GstBuffer.

Free-function: gst_buffer_unref

Parameters

bitwriter

a GstBitWriter instance

 

Returns

a new allocated GstBuffer wrapping the current data. gst_buffer_unref() after usage.

[transfer full]


gst_bit_writer_reset_and_get_data ()

guint8 *
gst_bit_writer_reset_and_get_data (GstBitWriter *bitwriter);

Resets bitwriter and returns the current data.

Free-function: g_free

Parameters

bitwriter

a GstBitWriter instance

 

Returns

the current data. g_free() after usage.

[array][transfer full]


gst_bit_writer_set_pos ()

gboolean
gst_bit_writer_set_pos (GstBitWriter *bitwriter,
                        guint pos);

gst_bit_writer_get_size ()

guint
gst_bit_writer_get_size (const GstBitWriter *bitwriter);

Get size of written data

Parameters

bitwriter

a GstBitWriter instance

 

Returns

size of bits written in data


gst_bit_writer_get_data ()

guint8 *
gst_bit_writer_get_data (const GstBitWriter *bitwriter);

Get written data pointer

Parameters

bitwriter

a GstBitWriter instance

 

Returns

data pointer


gst_bit_writer_get_remaining ()

guint
gst_bit_writer_get_remaining (const GstBitWriter *bitwriter);

gst_bit_writer_get_size_unchecked ()

guint
gst_bit_writer_get_size_unchecked (const GstBitWriter *bitwriter);

gst_bit_writer_get_data_unchecked ()

guint8 *
gst_bit_writer_get_data_unchecked (const GstBitWriter *bitwriter);

gst_bit_writer_set_pos_unchecked ()

gboolean
gst_bit_writer_set_pos_unchecked (GstBitWriter *bitwriter,
                                  guint pos);

gst_bit_writer_get_remaining_unchecked ()

guint
gst_bit_writer_get_remaining_unchecked
                               (const GstBitWriter *bitwriter);

gst_bit_writer_put_bits_uint16 ()

gboolean
gst_bit_writer_put_bits_uint16 (GstBitWriter *bitwriter,
                                guint16 value,
                                guint nbits);

Write nbits bits of value to GstBitWriter.

Parameters

bitwriter

a GstBitWriter instance

 

value

value of guint16 to write

 

nbits

number of bits to write

 

Returns

TRUE if successful, FALSE otherwise.


gst_bit_writer_put_bits_uint32 ()

gboolean
gst_bit_writer_put_bits_uint32 (GstBitWriter *bitwriter,
                                guint32 value,
                                guint nbits);

Write nbits bits of value to GstBitWriter.

Parameters

bitwriter

a GstBitWriter instance

 

value

value of guint32 to write

 

nbits

number of bits to write

 

Returns

TRUE if successful, FALSE otherwise.


gst_bit_writer_put_bits_uint64 ()

gboolean
gst_bit_writer_put_bits_uint64 (GstBitWriter *bitwriter,
                                guint64 value,
                                guint nbits);

Write nbits bits of value to GstBitWriter.

Parameters

bitwriter

a GstBitWriter instance

 

value

value of guint64 to write

 

nbits

number of bits to write

 

Returns

TRUE if successful, FALSE otherwise.


gst_bit_writer_put_bits_uint8 ()

gboolean
gst_bit_writer_put_bits_uint8 (GstBitWriter *bitwriter,
                               guint8 value,
                               guint nbits);

Write nbits bits of value to GstBitWriter.

Parameters

bitwriter

a GstBitWriter instance

 

value

value of guint8 to write

 

nbits

number of bits to write

 

Returns

TRUE if successful, FALSE otherwise.


gst_bit_writer_put_bytes ()

gboolean
gst_bit_writer_put_bytes (GstBitWriter *bitwriter,
                          const guint8 *data,
                          guint nbytes);

Write nbytes bytes of data to GstBitWriter.

Parameters

bitwriter

a GstBitWriter instance

 

data

pointer of data to write

 

nbytes

number of bytes to write

 

Returns

TRUE if successful, FALSE otherwise.


gst_bit_writer_put_bits_uint16_unchecked ()

void
gst_bit_writer_put_bits_uint16_unchecked
                               (GstBitWriter *bitwriter,
                                guint16 value,
                                guint nbits);

Write nbits bits of value to GstBitWriter without checking whether there is enough space

Parameters

bitwriter

a GstBitWriter instance

 

value

value of guint16 to write

 

nbits

number of bits to write

 

gst_bit_writer_put_bits_uint32_unchecked ()

void
gst_bit_writer_put_bits_uint32_unchecked
                               (GstBitWriter *bitwriter,
                                guint32 value,
                                guint nbits);

Write nbits bits of value to GstBitWriter without checking whether there is enough space

Parameters

bitwriter

a GstBitWriter instance

 

value

value of guint32 to write

 

nbits

number of bits to write

 

gst_bit_writer_put_bits_uint64_unchecked ()

void
gst_bit_writer_put_bits_uint64_unchecked
                               (GstBitWriter *bitwriter,
                                guint64 value,
                                guint nbits);

Write nbits bits of value to GstBitWriter without checking whether there is enough space

Parameters

bitwriter

a GstBitWriter instance

 

value

value of guint64 to write

 

nbits

number of bits to write

 

gst_bit_writer_put_bits_uint8_unchecked ()

void
gst_bit_writer_put_bits_uint8_unchecked
                               (GstBitWriter *bitwriter,
                                guint8 value,
                                guint nbits);

Write nbits bits of value to GstBitWriter without checking whether there is enough space

Parameters

bitwriter

a GstBitWriter instance

 

value

value of guint8 to write

 

nbits

number of bits to write

 

gst_bit_writer_put_bytes_unchecked ()

void
gst_bit_writer_put_bytes_unchecked (GstBitWriter *bitwriter,
                                    const guint8 *data,
                                    guint nbytes);

Write nbytes bytes of data to GstBitWriter without checking whether there is enough space

Parameters

bitwriter

a GstBitWriter instance

 

data

pointer of data to write

 

nbytes

number of bytes to write

 

gst_bit_writer_align_bytes ()

gboolean
gst_bit_writer_align_bytes (GstBitWriter *bitwriter,
                            guint8 trailing_bit);

Write trailing bit to align last byte of data . trailing_bit can only be 1 or 0.

Parameters

bitwriter

a GstBitWriter instance

 

trailing_bit

trailing bits of last byte, 0 or 1

 

Returns

TRUE if successful, FALSE otherwise.


gst_bit_writer_align_bytes_unchecked ()

void
gst_bit_writer_align_bytes_unchecked (GstBitWriter *bitwriter,
                                      guint8 trailing_bit);

Write trailing bit to align last byte of data without checking whether there is enough space

Parameters

bitwriter

a GstBitWriter instance

 

trailing_bit

trailing bits of last byte, 0 or 1

 

Types and Values

struct GstBitWriter

struct GstBitWriter {
  guint8 *data;
  guint bit_size;
};

A bit writer instance.

Members

guint8 *data;

Allocated data for bit writer to write

 

guint bit_size;

Size of written data in bits

 

Since: 1.16