#include "libavutil/avassert.h"
#include "avcodec.h"
#include "get_bits.h"
#include "put_bits.h"
Go to the source code of this file.
Data Structures | |
struct | VLCcode |
Defines | |
#define | GET_DATA(v, table, i, wrap, size) |
#define | COPY(condition) |
Functions | |
void | avpriv_align_put_bits (PutBitContext *s) |
Pad the bitstream with zeros up to the next byte boundary. | |
void | avpriv_put_string (PutBitContext *pb, const char *string, int terminate_string) |
Put the string string in the bitstream. | |
void | avpriv_copy_bits (PutBitContext *pb, const uint8_t *src, int length) |
Copy the content of src to the bitstream. | |
static int | alloc_table (VLC *vlc, int size, int use_static) |
static av_always_inline uint32_t | bitswap_32 (uint32_t x) |
static int | compare_vlcspec (const void *a, const void *b) |
static int | build_table (VLC *vlc, int table_nb_bits, int nb_codes, VLCcode *codes, int flags) |
Build VLC decoding tables suitable for use with get_vlc(). | |
int | ff_init_vlc_sparse (VLC *vlc, int nb_bits, int nb_codes, const void *bits, int bits_wrap, int bits_size, const void *codes, int codes_wrap, int codes_size, const void *symbols, int symbols_wrap, int symbols_size, int flags) |
void | ff_free_vlc (VLC *vlc) |
Variables | |
const uint8_t | ff_log2_run [41] |
Definition in file bitstream.c.
#define COPY | ( | condition | ) |
Value:
for (i = 0; i < nb_codes; i++) {\ GET_DATA(buf[j].bits, bits, i, bits_wrap, bits_size);\ if (!(condition))\ continue;\ GET_DATA(buf[j].code, codes, i, codes_wrap, codes_size);\ if (flags & INIT_VLC_LE)\ buf[j].code = bitswap_32(buf[j].code);\ else\ buf[j].code <<= 32 - buf[j].bits;\ if (symbols)\ GET_DATA(buf[j].symbol, symbols, i, symbols_wrap, symbols_size)\ else\ buf[j].symbol = i;\ j++;\ }
Referenced by avfilter_register_all(), backup_duplicate_context(), ff_idct_put_altivec(), ff_init_vlc_sparse(), and update_duplicate_context_after_me().
#define GET_DATA | ( | v, | |||
table, | |||||
i, | |||||
wrap, | |||||
size | ) |
void avpriv_align_put_bits | ( | PutBitContext * | s | ) |
Pad the bitstream with zeros up to the next byte boundary.
Definition at line 45 of file bitstream.c.
Referenced by avpriv_copy_pce_data(), encode_block(), encode_frame(), encode_picture_ls(), ff_flv_encode_picture_header(), ff_h261_encode_picture_header(), ff_h263_encode_picture_header(), ff_msmpeg4_encode_picture_header(), ff_rv10_encode_picture_header(), latm_write_packet(), put_bitstream_info(), put_header(), write_slice_end(), xsub_encode(), and xsub_encode_rle().
void avpriv_copy_bits | ( | PutBitContext * | pb, | |
const uint8_t * | src, | |||
int | length | |||
) |
Copy the content of src to the bitstream.
length | the number of bits of src to copy |
Definition at line 60 of file bitstream.c.
Referenced by copy_bits(), encode_thread(), ff_mpeg4_merge_partitions(), latm_write_frame_header(), latm_write_packet(), merge_context_after_encode(), save_bits(), and svq1_encode_plane().
void avpriv_put_string | ( | PutBitContext * | pb, | |
const char * | string, | |||
int | terminate_string | |||
) |
Put the string string in the bitstream.
terminate_string | 0-terminates the written string if value is 1 |
Definition at line 50 of file bitstream.c.
Referenced by jpeg_put_comments(), and mpeg4_encode_vol_header().
static av_always_inline uint32_t bitswap_32 | ( | uint32_t | x | ) | [static] |
static int build_table | ( | VLC * | vlc, | |
int | table_nb_bits, | |||
int | nb_codes, | |||
VLCcode * | codes, | |||
int | flags | |||
) | [static] |
Build VLC decoding tables suitable for use with get_vlc().
vlc | the context to be initted | |
table_nb_bits | max length of vlc codes to store directly in this table (Longer codes are delegated to subtables.) | |
nb_codes | number of elements in codes[] | |
codes | descriptions of the vlc codes These must be ordered such that codes going into the same subtable are contiguous. Sorting by VLCcode.code is sufficient, though not necessary. |
Definition at line 152 of file bitstream.c.
Referenced by ff_init_vlc_sparse().
static int compare_vlcspec | ( | const void * | a, | |
const void * | b | |||
) | [static] |
void ff_free_vlc | ( | VLC * | vlc | ) |
Definition at line 324 of file bitstream.c.
Referenced by cook_decode_close(), decode_argb_frame(), decode_close(), decode_end(), decode_plane(), decode_rgb24_frame(), decode_rle(), dnxhd_decode_close(), dnxhd_init_vlc(), ff_dvvideo_init(), ff_ivi_dec_huff_desc(), ff_ivi_decode_close(), ff_ivi_free_buffers(), ff_mjpeg_decode_dht(), ff_mjpeg_decode_end(), ff_wma_end(), fraps2_decode_plane(), free_vlcs(), generate_joint_tables(), mimic_decode_end(), mp_decode_frame(), mss4_free_vlcs(), read_huffman_tables(), read_old_huffman_tables(), smacker_decode_header_tree(), smka_decode_frame(), tm2_free_codes(), vorbis_free(), vp3_decode_end(), vp6_build_huff_tree(), and vp6_decode_free_context().
int ff_init_vlc_sparse | ( | VLC * | vlc, | |
int | nb_bits, | |||
int | nb_codes, | |||
const void * | bits, | |||
int | bits_wrap, | |||
int | bits_size, | |||
const void * | codes, | |||
int | codes_wrap, | |||
int | codes_size, | |||
const void * | symbols, | |||
int | symbols_wrap, | |||
int | symbols_size, | |||
int | flags | |||
) |
Definition at line 261 of file bitstream.c.
Referenced by build_huff(), build_huff_tree(), build_vlc(), ff_ccitt_unpack_init(), generate_joint_tables(), init_ralf_vlc(), init_vlcs(), mpc8_decode_init(), mss4_init_vlc(), read_code_table(), rv34_gen_vlc(), and rv40_init_tables().
const uint8_t ff_log2_run[41] |
Initial value:
{ 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23, 24, }
Definition at line 36 of file bitstream.c.
Referenced by decode_line(), ls_decode_line(), ls_encode_line(), and ls_encode_run().