|  |  |  | GStreamer 1.0 Library Reference Manual |  | 
|---|---|---|---|---|
| Top | Description | ||||
#include <gst/base/gstbitreader.h>
                    GstBitReader;
#define             GST_BIT_READER_INIT                 (data,
                                                         size)
GstBitReader *      gst_bit_reader_new                  (const guint8 *data,
                                                         guint size);
void                gst_bit_reader_free                 (GstBitReader *reader);
void                gst_bit_reader_init                 (GstBitReader *reader,
                                                         const guint8 *data,
                                                         guint size);
guint               gst_bit_reader_get_pos              (const GstBitReader *reader);
guint               gst_bit_reader_get_remaining        (const GstBitReader *reader);
gboolean            gst_bit_reader_set_pos              (GstBitReader *reader,
                                                         guint pos);
guint               gst_bit_reader_get_size             (const GstBitReader *reader);
gboolean            gst_bit_reader_skip                 (GstBitReader *reader,
                                                         guint nbits);
gboolean            gst_bit_reader_skip_to_byte         (GstBitReader *reader);
gboolean            gst_bit_reader_get_bits_uint16      (GstBitReader *reader,
                                                         guint16 *val,
                                                         guint nbits);
gboolean            gst_bit_reader_get_bits_uint32      (GstBitReader *reader,
                                                         guint32 *val,
                                                         guint nbits);
gboolean            gst_bit_reader_get_bits_uint64      (GstBitReader *reader,
                                                         guint64 *val,
                                                         guint nbits);
gboolean            gst_bit_reader_get_bits_uint8       (GstBitReader *reader,
                                                         guint8 *val,
                                                         guint nbits);
gboolean            gst_bit_reader_peek_bits_uint16     (const GstBitReader *reader,
                                                         guint16 *val,
                                                         guint nbits);
gboolean            gst_bit_reader_peek_bits_uint32     (const GstBitReader *reader,
                                                         guint32 *val,
                                                         guint nbits);
gboolean            gst_bit_reader_peek_bits_uint64     (const GstBitReader *reader,
                                                         guint64 *val,
                                                         guint nbits);
gboolean            gst_bit_reader_peek_bits_uint8      (const GstBitReader *reader,
                                                         guint8 *val,
                                                         guint nbits);
void                gst_bit_reader_skip_unchecked       (GstBitReader *reader,
                                                         guint nbits);
void                gst_bit_reader_skip_to_byte_unchecked
                                                        (GstBitReader *reader);
guint16             gst_bit_reader_get_bits_uint16_unchecked
                                                        (GstBitReader *reader,
                                                         guint nbits);
guint32             gst_bit_reader_get_bits_uint32_unchecked
                                                        (GstBitReader *reader,
                                                         guint nbits);
guint64             gst_bit_reader_get_bits_uint64_unchecked
                                                        (GstBitReader *reader,
                                                         guint nbits);
guint8              gst_bit_reader_get_bits_uint8_unchecked
                                                        (GstBitReader *reader,
                                                         guint nbits);
guint16             gst_bit_reader_peek_bits_uint16_unchecked
                                                        (const GstBitReader *reader,
                                                         guint nbits);
guint32             gst_bit_reader_peek_bits_uint32_unchecked
                                                        (const GstBitReader *reader,
                                                         guint nbits);
guint64             gst_bit_reader_peek_bits_uint64_unchecked
                                                        (const GstBitReader *reader,
                                                         guint nbits);
guint8              gst_bit_reader_peek_bits_uint8_unchecked
                                                        (const GstBitReader *reader,
                                                         guint nbits);
GstBitReader provides a bit reader that can read any number of bits from a memory buffer. It provides functions for reading any number of bits into 8, 16, 32 and 64 bit variables.
typedef struct {
  const guint8 *data;
  guint size;
  guint byte;  /* Byte position */
  guint bit;   /* Bit position in the current byte */
} GstBitReader;
A bit reader instance.
#define GST_BIT_READER_INIT(data, size) {data, size, 0, 0}
A GstBitReader must be initialized with this macro, before it can be
used. This macro can used be to initialize a variable, but it cannot
be assigned to a variable. In that case you have to use
gst_bit_reader_init().
| 
 | Data from which the GstBitReader should read | 
| 
 | Size of datain bytes | 
GstBitReader * gst_bit_reader_new (const guint8 *data,guint size);
Create a new GstBitReader instance, which will read from data.
Free-function: gst_bit_reader_free
| 
 | Data from which the GstBitReader should read. [array length=size] | 
| 
 | Size of datain bytes | 
| Returns : | a new GstBitReader instance. [transfer full] | 
void                gst_bit_reader_free                 (GstBitReader *reader);
Frees a GstBitReader instance, which was previously allocated by
gst_bit_reader_new().
| 
 | a GstBitReader instance. [in][transfer full] | 
void gst_bit_reader_init (GstBitReader *reader,const guint8 *data,guint size);
Initializes a GstBitReader instance to read from data. This function
can be called on already initialized instances.
| 
 | a GstBitReader instance | 
| 
 | data from which the bit reader should read. [in][array length=size] | 
| 
 | Size of datain bytes | 
guint               gst_bit_reader_get_pos              (const GstBitReader *reader);
Returns the current position of a GstBitReader instance in bits.
| 
 | a GstBitReader instance | 
| Returns : | The current position of readerin bits. | 
guint               gst_bit_reader_get_remaining        (const GstBitReader *reader);
Returns the remaining number of bits of a GstBitReader instance.
| 
 | a GstBitReader instance | 
| Returns : | The remaining number of bits of readerinstance. | 
gboolean gst_bit_reader_set_pos (GstBitReader *reader,guint pos);
Sets the new position of a GstBitReader instance to pos in bits.
| 
 | a GstBitReader instance | 
| 
 | The new position in bits | 
| Returns : | TRUEif the position could be set successfully,FALSEotherwise. | 
guint               gst_bit_reader_get_size             (const GstBitReader *reader);
Returns the total number of bits of a GstBitReader instance.
| 
 | a GstBitReader instance | 
| Returns : | The total number of bits of readerinstance. | 
gboolean gst_bit_reader_skip (GstBitReader *reader,guint nbits);
Skips nbits bits of the GstBitReader instance.
| 
 | a GstBitReader instance | 
| 
 | the number of bits to skip | 
| Returns : | TRUEifnbitsbits could be skipped,FALSEotherwise. | 
gboolean            gst_bit_reader_skip_to_byte         (GstBitReader *reader);
Skips until the next byte.
| 
 | a GstBitReader instance | 
| Returns : | TRUEif successful,FALSEotherwise. | 
gboolean gst_bit_reader_get_bits_uint16 (GstBitReader *reader,guint16 *val,guint nbits);
Read nbits bits into val and update the current position.
| 
 | a GstBitReader instance | 
| 
 | Pointer to a guint16 to store the result. [out] | 
| 
 | number of bits to read | 
| Returns : | TRUEif successful,FALSEotherwise. | 
gboolean gst_bit_reader_get_bits_uint32 (GstBitReader *reader,guint32 *val,guint nbits);
Read nbits bits into val and update the current position.
| 
 | a GstBitReader instance | 
| 
 | Pointer to a guint32 to store the result. [out] | 
| 
 | number of bits to read | 
| Returns : | TRUEif successful,FALSEotherwise. | 
gboolean gst_bit_reader_get_bits_uint64 (GstBitReader *reader,guint64 *val,guint nbits);
Read nbits bits into val and update the current position.
| 
 | a GstBitReader instance | 
| 
 | Pointer to a guint64 to store the result. [out] | 
| 
 | number of bits to read | 
| Returns : | TRUEif successful,FALSEotherwise. | 
gboolean gst_bit_reader_get_bits_uint8 (GstBitReader *reader,guint8 *val,guint nbits);
Read nbits bits into val and update the current position.
| 
 | a GstBitReader instance | 
| 
 | Pointer to a guint8 to store the result. [out] | 
| 
 | number of bits to read | 
| Returns : | TRUEif successful,FALSEotherwise. | 
gboolean gst_bit_reader_peek_bits_uint16 (const GstBitReader *reader,guint16 *val,guint nbits);
Read nbits bits into val but keep the current position.
| 
 | a GstBitReader instance | 
| 
 | Pointer to a guint16 to store the result. [out] | 
| 
 | number of bits to read | 
| Returns : | TRUEif successful,FALSEotherwise. | 
gboolean gst_bit_reader_peek_bits_uint32 (const GstBitReader *reader,guint32 *val,guint nbits);
Read nbits bits into val but keep the current position.
| 
 | a GstBitReader instance | 
| 
 | Pointer to a guint32 to store the result. [out] | 
| 
 | number of bits to read | 
| Returns : | TRUEif successful,FALSEotherwise. | 
gboolean gst_bit_reader_peek_bits_uint64 (const GstBitReader *reader,guint64 *val,guint nbits);
Read nbits bits into val but keep the current position.
| 
 | a GstBitReader instance | 
| 
 | Pointer to a guint64 to store the result. [out] | 
| 
 | number of bits to read | 
| Returns : | TRUEif successful,FALSEotherwise. | 
gboolean gst_bit_reader_peek_bits_uint8 (const GstBitReader *reader,guint8 *val,guint nbits);
Read nbits bits into val but keep the current position.
| 
 | a GstBitReader instance | 
| 
 | Pointer to a guint8 to store the result. [out] | 
| 
 | number of bits to read | 
| Returns : | TRUEif successful,FALSEotherwise. | 
void gst_bit_reader_skip_unchecked (GstBitReader *reader,guint nbits);
Skips nbits bits of the GstBitReader instance without checking if there
are enough bits available in the bit reader.
| 
 | a GstBitReader instance | 
| 
 | the number of bits to skip | 
void                gst_bit_reader_skip_to_byte_unchecked
                                                        (GstBitReader *reader);
Skips until the next byte without checking if there are enough bits available in the bit reader.
| 
 | a GstBitReader instance | 
guint16 gst_bit_reader_get_bits_uint16_unchecked (GstBitReader *reader,guint nbits);
Read nbits bits into val and update the current position without
checking if there are enough bits available in the bit reader.
| 
 | a GstBitReader instance | 
| 
 | number of bits to read | 
| Returns : | unsigned 16 bit integer with the bits. | 
guint32 gst_bit_reader_get_bits_uint32_unchecked (GstBitReader *reader,guint nbits);
Read nbits bits into val and update the current position without
checking if there are enough bits available in the bit reader.
| 
 | a GstBitReader instance | 
| 
 | number of bits to read | 
| Returns : | unsigned 32 bit integer with the bits. | 
guint64 gst_bit_reader_get_bits_uint64_unchecked (GstBitReader *reader,guint nbits);
Read nbits bits into val and update the current position without
checking if there are enough bits available in the bit reader.
| 
 | a GstBitReader instance | 
| 
 | number of bits to read | 
| Returns : | unsigned 64 bit integer with the bits. | 
guint8 gst_bit_reader_get_bits_uint8_unchecked (GstBitReader *reader,guint nbits);
Read nbits bits into val and update the current position without
checking if there are enough bits available in the bit reader.
| 
 | a GstBitReader instance | 
| 
 | number of bits to read | 
| Returns : | unsigned 8 bit integer with the bits. | 
guint16 gst_bit_reader_peek_bits_uint16_unchecked (const GstBitReader *reader,guint nbits);
Read nbits bits into val but keep the current position without
checking if there are enough bits available in the bit reader
| 
 | a GstBitReader instance | 
| 
 | number of bits to read | 
| Returns : | unsigned 16 bit integer with the bits. | 
guint32 gst_bit_reader_peek_bits_uint32_unchecked (const GstBitReader *reader,guint nbits);
Read nbits bits into val but keep the current position without
checking if there are enough bits available in the bit reader
| 
 | a GstBitReader instance | 
| 
 | number of bits to read | 
| Returns : | unsigned 32 bit integer with the bits. | 
guint64 gst_bit_reader_peek_bits_uint64_unchecked (const GstBitReader *reader,guint nbits);
Read nbits bits into val but keep the current position without
checking if there are enough bits available in the bit reader
| 
 | a GstBitReader instance | 
| 
 | number of bits to read | 
| Returns : | unsigned 64 bit integer with the bits. | 
guint8 gst_bit_reader_peek_bits_uint8_unchecked (const GstBitReader *reader,guint nbits);
Read nbits bits into val but keep the current position without
checking if there are enough bits available in the bit reader
| 
 | a GstBitReader instance | 
| 
 | number of bits to read | 
| Returns : | unsigned 8 bit integer with the bits. |