libgpac
Documentation of the core library of GPAC
Loading...
Searching...
No Matches
bitstream.h File Reference

bitstream reading and writing. More...

#include <gpac/tools.h>
+ Include dependency graph for bitstream.h:
+ This graph shows which files directly or indirectly include this file:

Enumerations

enum  { GF_BITSTREAM_READ = 0 , GF_BITSTREAM_WRITE , GF_BITSTREAM_WRITE_DYN }
 

Functions

GF_BitStream * gf_bs_new (const u8 *buffer, u64 size, u32 mode)
 bitstream constructor
 
GF_Err gf_bs_reassign_buffer (GF_BitStream *bs, const u8 *buffer, u64 size)
 bitstream reassignment
 
GF_BitStream * gf_bs_from_file (FILE *f, u32 mode)
 bitstream constructor from file handle
 
void gf_bs_del (GF_BitStream *bs)
 bitstream destructor from file handle
 
GF_BitStream * gf_bs_new_cbk (GF_Err(*on_block_out)(void *cbk, u8 *data, u32 block_size), void *usr_data, u32 block_size)
 bitstream constructor from callback output
 
GF_BitStream * gf_bs_new_cbk_buffer (GF_Err(*on_block_out)(void *cbk, u8 *data, u32 block_size), void *usr_data, u8 *buffer, u32 buffer_size)
 bitstream constructor from callback output and preallocated buffer
 
void gf_bs_prevent_dispatch (GF_BitStream *bs, Bool prevent_dispatch)
 prevents block dispatch Prevents byte dispatching in callback mode. This is used when seek operations are used.
 
u32 gf_bs_read_int (GF_BitStream *bs, u32 nBits)
 integer reading
 
u64 gf_bs_read_long_int (GF_BitStream *bs, u32 nBits)
 large integer reading
 
Float gf_bs_read_float (GF_BitStream *bs)
 float reading
 
Double gf_bs_read_double (GF_BitStream *bs)
 double reading
 
u32 gf_bs_read_data (GF_BitStream *bs, u8 *data, u32 nbBytes)
 data reading
 
u32 gf_bs_read_u8 (GF_BitStream *bs)
 align char reading
 
u32 gf_bs_read_u16 (GF_BitStream *bs)
 align short reading
 
u32 gf_bs_read_u24 (GF_BitStream *bs)
 align 24-bit integer reading
 
u32 gf_bs_read_u32 (GF_BitStream *bs)
 align integer reading
 
u64 gf_bs_read_u64 (GF_BitStream *bs)
 align large integer reading
 
u64 gf_bs_read_u64_le (GF_BitStream *bs)
 little endian integer reading
 
u32 gf_bs_read_u32_le (GF_BitStream *bs)
 little endian integer reading
 
u16 gf_bs_read_u16_le (GF_BitStream *bs)
 little endian integer reading
 
u32 gf_bs_read_vluimsbf5 (GF_BitStream *bs)
 variable length integer reading
 
u32 gf_bs_get_bit_offset (GF_BitStream *bs)
 bit position
 
u32 gf_bs_get_bit_position (GF_BitStream *bs)
 current bit position
 
void gf_bs_write_int (GF_BitStream *bs, s32 value, s32 nBits)
 integer writing
 
void gf_bs_write_long_int (GF_BitStream *bs, s64 value, s32 nBits)
 large integer writing
 
void gf_bs_write_float (GF_BitStream *bs, Float value)
 float writing
 
void gf_bs_write_double (GF_BitStream *bs, Double value)
 double writing
 
u32 gf_bs_write_data (GF_BitStream *bs, const u8 *data, u32 nbBytes)
 data writing
 
void gf_bs_write_u8 (GF_BitStream *bs, u32 value)
 align char writing
 
void gf_bs_write_u16 (GF_BitStream *bs, u32 value)
 align short writing
 
void gf_bs_write_u24 (GF_BitStream *bs, u32 value)
 align 24-bits integer writing
 
void gf_bs_write_u32 (GF_BitStream *bs, u32 value)
 align integer writing
 
void gf_bs_write_u64 (GF_BitStream *bs, u64 value)
 align large integer writing
 
void gf_bs_write_u32_le (GF_BitStream *bs, u32 value)
 little endian integer writing
 
void gf_bs_write_u64_le (GF_BitStream *bs, u64 value)
 little endian large integer writing
 
void gf_bs_write_u16_le (GF_BitStream *bs, u32 value)
 little endian short writing
 
u32 gf_bs_write_byte (GF_BitStream *bs, u8 byte, u32 count)
 write byte multiple times
 
void gf_bs_set_eos_callback (GF_BitStream *bs, void(*EndOfStream)(void *par), void *par)
 end of bitstream management
 
Bool gf_bs_is_align (GF_BitStream *bs)
 bitstream alignment checking
 
u8 gf_bs_align (GF_BitStream *bs)
 bitstream alignment
 
u64 gf_bs_available (GF_BitStream *bs)
 capacity query
 
void gf_bs_get_content (GF_BitStream *bs, u8 **output, u32 *outSize)
 buffer fetching
 
void gf_bs_get_content_no_truncate (GF_BitStream *bs, u8 **output, u32 *outSize, u32 *allocSize)
 buffer fetching
 
void gf_bs_skip_bytes (GF_BitStream *bs, u64 nbBytes)
 byte skipping
 
GF_Err gf_bs_seek (GF_BitStream *bs, u64 offset)
 bitstream seeking
 
void gf_bs_truncate (GF_BitStream *bs)
 bitstream truncation
 
u32 gf_bs_peek_bits (GF_BitStream *bs, u32 numBits, u64 byte_offset)
 bit peeking
 
u8 gf_bs_bits_available (GF_BitStream *bs)
 bit reservoir query
 
u64 gf_bs_get_position (GF_BitStream *bs)
 position query
 
u64 gf_bs_get_size (GF_BitStream *bs)
 size query
 
u64 gf_bs_get_refreshed_size (GF_BitStream *bs)
 file-based size query
 
GF_Err gf_bs_transfer (GF_BitStream *dst, GF_BitStream *src, Bool keep_src)
 transfer content from source bitstream to destination bitstream
 
void gf_bs_flush (GF_BitStream *bs)
 Flushes bitstream content to disk.
 
void gf_bs_enable_emulation_byte_removal (GF_BitStream *bs, Bool do_remove)
 NALU-based Annex B mode, only used for read mode.
 
u32 gf_bs_get_emulation_byte_removed (GF_BitStream *bs)
 NALU-based Annex B mode, only used for read mode.
 
GF_Err gf_bs_insert_data (GF_BitStream *bs, u8 *data, u32 size, u64 offset)
 Inserts a data block, moving bytes to the end.
 
u64 gf_bs_set_cookie (GF_BitStream *bs, u64 cookie)
 Sets cookie.
 
u64 gf_bs_get_cookie (GF_BitStream *bs)
 Gets cookie.
 
char * gf_bs_read_utf8 (GF_BitStream *bs)
 Reads string.
 
GF_Err gf_bs_write_utf8 (GF_BitStream *bs, const char *str)
 Writes string.
 
void gf_bs_mark_overflow (GF_BitStream *bs, Bool reset)
 Marks overflow access.
 
u32 gf_bs_is_overflow (GF_BitStream *bs)
 Gets overflow state.
 

Detailed Description

bitstream reading and writing.

>