libavcodec/get_bits.h File Reference

bitstream reader API header. More...

#include <stdint.h>
#include <stdlib.h>
#include <assert.h>
#include "libavutil/bswap.h"
#include "libavutil/common.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/log.h"
#include "mathops.h"

Go to the source code of this file.

Data Structures

struct  GetBitContext
struct  VLC
struct  RL_VLC_ELEM

Defines

#define ALT_BITSTREAM_READER
#define VLC_TYPE   int16_t
#define MIN_CACHE_BITS   25
#define OPEN_READER(name, gb)
#define CLOSE_READER(name, gb)   (gb)->index = name##_index
#define UPDATE_CACHE(name, gb)   name##_cache = AV_RB32(((const uint8_t *)(gb)->buffer)+(name##_index>>3)) << (name##_index&0x07)
#define SKIP_CACHE(name, gb, num)   name##_cache <<= (num)
#define SKIP_COUNTER(name, gb, num)   name##_index += (num)
#define SKIP_BITS(name, gb, num)
#define LAST_SKIP_BITS(name, gb, num)   SKIP_COUNTER(name, gb, num)
#define LAST_SKIP_CACHE(name, gb, num)
#define SHOW_UBITS(name, gb, num)   NEG_USR32(name##_cache, num)
#define SHOW_SBITS(name, gb, num)   NEG_SSR32(name##_cache, num)
#define GET_CACHE(name, gb)   ((uint32_t)name##_cache)
#define init_vlc(vlc, nb_bits, nb_codes,bits, bits_wrap, bits_size,codes, codes_wrap, codes_size,flags)
#define INIT_VLC_LE   2
#define INIT_VLC_USE_NEW_STATIC   4
#define INIT_VLC_STATIC(vlc, bits, a, b, c, d, e, f, g, static_size)
#define GET_VLC(code, name, gb, table, bits, max_depth)
 If the vlc code is invalid and max_depth=1, then no bits will be removed.
#define GET_RL_VLC(level, run, name, gb, table, bits, max_depth, need_update)
#define tprintf(p,...)   {}

Functions

static int get_bits_count (const GetBitContext *s)
static void skip_bits_long (GetBitContext *s, int n)
static int get_xbits (GetBitContext *s, int n)
 read mpeg1 dc style vlc (sign bit + mantisse with no MSB).
static int get_sbits (GetBitContext *s, int n)
static unsigned int get_bits (GetBitContext *s, int n)
 Read 1-25 bits.
static unsigned int show_bits (GetBitContext *s, int n)
 Shows 1-25 bits.
static void skip_bits (GetBitContext *s, int n)
static unsigned int get_bits1 (GetBitContext *s)
static unsigned int show_bits1 (GetBitContext *s)
static void skip_bits1 (GetBitContext *s)
static unsigned int get_bits_long (GetBitContext *s, int n)
 reads 0-32 bits.
static int get_sbits_long (GetBitContext *s, int n)
 reads 0-32 bits as a signed integer.
static unsigned int show_bits_long (GetBitContext *s, int n)
 shows 0-32 bits.
static int check_marker (GetBitContext *s, const char *msg)
static void init_get_bits (GetBitContext *s, const uint8_t *buffer, int bit_size)
 init GetBitContext.
static void align_get_bits (GetBitContext *s)
int 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 free_vlc (VLC *vlc)
static av_always_inline int get_vlc2 (GetBitContext *s, VLC_TYPE(*table)[2], int bits, int max_depth)
 parses a vlc code, faster then get_vlc()
static int decode012 (GetBitContext *gb)
static int decode210 (GetBitContext *gb)
static int get_bits_left (GetBitContext *gb)


Detailed Description

bitstream reader API header.

Definition in file get_bits.h.


Define Documentation

#define ALT_BITSTREAM_READER

Definition at line 46 of file get_bits.h.

#define CLOSE_READER ( name,
gb   )     (gb)->index = name##_index

#define GET_CACHE ( name,
gb   )     ((uint32_t)name##_cache)

#define GET_RL_VLC ( level,
run,
name,
gb,
table,
bits,
max_depth,
need_update   ) 

Value:

do { \
        int n, nb_bits;                                                 \
        unsigned int index;                                             \
                                                                        \
        index = SHOW_UBITS(name, gb, bits);                             \
        level = table[index].level;                                     \
        n     = table[index].len;                                       \
                                                                        \
        if (max_depth > 1 && n < 0) {                                   \
            SKIP_BITS(name, gb, bits);                                  \
            if (need_update) {                                          \
                UPDATE_CACHE(name, gb);                                 \
            }                                                           \
                                                                        \
            nb_bits = -n;                                               \
                                                                        \
            index = SHOW_UBITS(name, gb, nb_bits) + level;              \
            level = table[index].level;                                 \
            n     = table[index].len;                                   \
        }                                                               \
        run = table[index].run;                                         \
        SKIP_BITS(name, gb, n);                                         \
    } while (0)

Definition at line 481 of file get_bits.h.

Referenced by decode_block_intra(), ff_msmpeg4_decode_block(), mdec_decode_block_intra(), mpeg1_decode_block_inter(), mpeg1_decode_block_intra(), mpeg1_fast_decode_block_inter(), mpeg2_decode_block_intra(), mpeg2_decode_block_non_intra(), mpeg2_fast_decode_block_intra(), mpeg2_fast_decode_block_non_intra(), and mpeg4_decode_block().

#define GET_VLC ( code,
name,
gb,
table,
bits,
max_depth   ) 

Value:

do {    \
        int n, nb_bits;                                         \
        unsigned int index;                                     \
                                                                \
        index = SHOW_UBITS(name, gb, bits);                     \
        code  = table[index][0];                                \
        n     = table[index][1];                                \
                                                                \
        if (max_depth > 1 && n < 0) {                           \
            LAST_SKIP_BITS(name, gb, bits);                     \
            UPDATE_CACHE(name, gb);                             \
                                                                \
            nb_bits = -n;                                       \
                                                                \
            index = SHOW_UBITS(name, gb, nb_bits) + code;       \
            code  = table[index][0];                            \
            n     = table[index][1];                            \
            if (max_depth > 2 && n < 0) {                       \
                LAST_SKIP_BITS(name, gb, nb_bits);              \
                UPDATE_CACHE(name, gb);                         \
                                                                \
                nb_bits = -n;                                   \
                                                                \
                index = SHOW_UBITS(name, gb, nb_bits) + code;   \
                code  = table[index][0];                        \
                n     = table[index][1];                        \
            }                                                   \
        }                                                       \
        SKIP_BITS(name, gb, n);                                 \
    } while (0)
If the vlc code is invalid and max_depth=1, then no bits will be removed.

If the vlc code is invalid and max_depth>1, then the number of bits removed is undefined.

Definition at line 450 of file get_bits.h.

Referenced by decode_block(), decode_block_progressive(), decode_block_refinement(), decode_spectrum_and_dequant(), and get_vlc2().

#define init_vlc ( vlc,
nb_bits,
nb_codes,
bits,
bits_wrap,
bits_size,
codes,
codes_wrap,
codes_size,
flags   ) 

#define INIT_VLC_LE   2

#define INIT_VLC_STATIC ( vlc,
bits,
a,
b,
c,
d,
e,
f,
g,
static_size   ) 

Value:

do {     \
        static VLC_TYPE table[static_size][2];                          \
        (vlc)->table = table;                                           \
        (vlc)->table_allocated = static_size;                           \
        init_vlc(vlc, bits, a,b,c,d,e,f,g, INIT_VLC_USE_NEW_STATIC);    \
    } while (0)

Definition at line 436 of file get_bits.h.

Referenced by aac_decode_init(), decode_init(), decode_vbmtree(), ff_ccitt_unpack_init(), ff_mpeg12_init_vlcs(), ff_msmpeg4_decode_init(), h261_decode_init_vlc(), h263_decode_init_vlc(), init_static(), init_vlcs(), rv10_decode_init(), svq1_decode_init(), and vc1_init_common().

#define INIT_VLC_USE_NEW_STATIC   4

#define LAST_SKIP_BITS ( name,
gb,
num   )     SKIP_COUNTER(name, gb, num)

#define LAST_SKIP_CACHE ( name,
gb,
num   ) 

Definition at line 155 of file get_bits.h.

Referenced by ff_msmpeg4_decode_block(), and mpeg4_decode_block().

#define MIN_CACHE_BITS   25

#define OPEN_READER ( name,
gb   ) 

#define SHOW_SBITS ( name,
gb,
num   )     NEG_SSR32(name##_cache, num)

#define SHOW_UBITS ( name,
gb,
num   )     NEG_USR32(name##_cache, num)

#define SKIP_BITS ( name,
gb,
num   ) 

#define SKIP_CACHE ( name,
gb,
num   )     name##_cache <<= (num)

Definition at line 143 of file get_bits.h.

Referenced by ff_msmpeg4_decode_block(), and mpeg4_decode_block().

#define SKIP_COUNTER ( name,
gb,
num   )     name##_index += (num)

Definition at line 147 of file get_bits.h.

Referenced by ff_msmpeg4_decode_block(), and mpeg4_decode_block().

#define tprintf ( p,
...   )     {}

#define UPDATE_CACHE ( name,
gb   )     name##_cache = AV_RB32(((const uint8_t *)(gb)->buffer)+(name##_index>>3)) << (name##_index&0x07)

#define VLC_TYPE   int16_t


Function Documentation

static void align_get_bits ( GetBitContext s  )  [inline, static]

static int check_marker ( GetBitContext s,
const char *  msg 
) [inline, static]

static int decode012 ( GetBitContext gb  )  [inline, static]

static int decode210 ( GetBitContext gb  )  [inline, static]

Definition at line 537 of file get_bits.h.

Referenced by decode_mb(), and vc1_decode_ac_coeff().

void free_vlc ( VLC vlc  ) 

static unsigned int get_bits ( GetBitContext s,
int  n 
) [inline, static]

Read 1-25 bits.

Definition at line 282 of file get_bits.h.

Referenced by aac_adtstoasc_filter(), aac_decode_frame_int(), ac3_decode_transform_coeffs_ch(), ac3_parse_header(), adpcm_decode_frame(), alac_decode_frame(), apcm_dequant_add(), asv1_decode_block(), asv2_get_bits(), at1_parse_bsm(), at1_unpack_dequant(), aw_parse_coords(), aw_pulse_set1(), aw_pulse_set2(), bink_decode_plane(), binkb_decode_plane(), binkb_read_bundle(), bit_copy(), check_bits_for_superframe(), check_for_slice(), copy_bits(), dca_decode_frame(), dca_exss_parse_asset_header(), dca_exss_parse_header(), dca_exss_skip_mix_coeffs(), dca_parse_audio_coding_header(), dca_parse_frame_header(), dca_subframe_footer(), dca_subframe_header(), dca_subsubframe(), dec_gain(), decode(), decode2x2(), decode4x4(), decode8x8(), decode_audio_block(), decode_band_hdr(), decode_band_types(), decode_block(), decode_buffering_period(), decode_cce(), decode_channel_map(), decode_chunks(), decode_coeff(), decode_cpe(), decode_decorrelation_matrix(), decode_dynamic_range(), decode_envelope(), decode_exp_lsp(), decode_exp_vlc(), decode_exponents(), decode_ext_header(), decode_extension_payload(), decode_frame(), decode_gain_info(), decode_gop_header(), decode_hrd_parameters(), decode_ics(), decode_ics_info(), decode_line(), decode_ltp(), decode_macroblock(), decode_mb(), decode_mb_b(), decode_mb_i(), decode_mb_info(), decode_mime_header(), decode_motion(), decode_packet(), decode_parameters(), decode_pce(), decode_pic(), decode_pic_hdr(), decode_picture_timing(), decode_prediction(), decode_pulses(), decode_residual(), decode_residuals(), decode_run_2bit(), decode_run_8bit(), decode_scalar(), decode_scale_factors(), decode_scalefactors(), decode_seq_header(), decode_sequence_header_adv(), decode_skip_count(), decode_slice_header(), decode_subframe(), decode_subframe_length(), decode_subframe_lpc(), decode_tns(), decode_unregistered_user_data(), decode_user_data(), decode_vbmtree(), decode_vol_header(), decode_vop_header(), decode_vui_parameters(), decodeChannelSoundUnit(), decodeFrame(), decodeGainControl(), decodeSpectrum(), decodeTonalComponents(), decouple_info(), dequant(), dequant_lsp10i(), dequant_lsp10r(), dequant_lsp16i(), dequant_lsp16r(), dnxhd_decode_dct_block(), dnxhd_decode_macroblock(), do_output_subblock(), dv_decode_video_segment(), dvbsub_read_2bit_string(), dvbsub_read_4bit_string(), encode_picture_ls(), escape124_decode_frame(), ff_aac_parse_header(), ff_ac3_parse_header(), ff_adts_decode_extradata(), ff_eac3_decode_transform_coeffs_aht_ch(), ff_eac3_parse_header(), ff_flac_decode_frame_header(), ff_flac_parse_streaminfo(), ff_flv2_decode_ac_esc(), ff_flv_decode_picture_header(), ff_h263_decode_mba(), ff_h264_decode_mb_cavlc(), ff_h264_decode_picture_parameter_set(), ff_h264_decode_sei(), ff_h264_decode_seq_parameter_set(), ff_intel_h263_decode_picture_header(), ff_ivi_dec_huff_desc(), ff_ivi_dec_tile_data_size(), ff_jpegls_decode_lse(), ff_mjpeg_decode_dht(), ff_mjpeg_decode_dqt(), ff_mjpeg_decode_sof(), ff_mjpeg_decode_sos(), ff_mlp_read_major_sync(), ff_mpeg4_decode_partitions(), ff_mpeg4_decode_picture_header(), ff_mpeg4audio_get_config(), ff_msmpeg4_decode_motion(), ff_ps_read_data(), ff_rdt_parse_header(), ff_wma_run_level_decode(), ff_wmv2_decode_picture_header(), fill_slice(), flac_header(), flashsv_decode_frame(), g726_decode_frame(), gb_get_v(), get_array(), get_bits1(), get_bits_long(), get_bitsz(), get_block(), get_dimension(), get_float(), get_object_type(), get_qscale(), get_sample_rate(), get_scale(), get_scale_idx(), get_tail(), get_ue_code(), get_utf8(), getlblockinc(), getnpasses(), gsm_decode_block(), gsm_decode_frame(), h261_decode_block(), h261_decode_gob_header(), h261_decode_mb(), h261_decode_picture_header(), h261_probe(), h263_decode_block(), h263_decode_dquant(), h263_decode_gob_header(), h263_decode_motion(), h263_decode_picture_header(), h263_get_modb(), hl_decode_mb_444_internal(), hl_decode_mb_internal(), idx_to_quant(), imc_decode_frame(), imc_get_coeffs(), imc_read_level_coeffs(), ipvideo_decode_opcodes(), latm_decode_frame(), latm_get_value(), load_matrix(), mjpeg_decode_app(), mjpeg_decode_com(), mjpeg_decode_dri(), mjpeg_decode_scan(), mono_decode(), mov_write_ac3_tag(), mp_decode_frame(), mp_decode_layer1(), mp_decode_layer2(), mp_decode_layer3(), mp_read_changes_map(), mp_read_codes_table(), mpc7_decode_frame(), mpc7_decode_init(), mpc8_decode_frame(), mpc8_decode_init(), mpc8_parse_seektable(), mpeg1_decode_picture(), mpeg1_decode_sequence(), mpeg4_decode_dc(), mpeg4_decode_gop_header(), mpeg4_decode_mb(), mpeg4_decode_partition_a(), mpeg4_decode_partition_b(), mpeg4_decode_video_packet_header(), mpeg_decode_gop(), mpeg_decode_mb(), mpeg_decode_motion(), mpeg_decode_picture_coding_extension(), mpeg_decode_sequence_display_extension(), mpeg_decode_sequence_extension(), msmpeg4_decode_dc(), msmpeg4_decode_ext_header(), msmpeg4_decode_picture_header(), msmpeg4v2_decode_motion(), nelly_decode_block(), parse_config_ALS(), parse_fmtp_config(), parse_mb_skip(), parse_nal_units(), parse_packet_header(), pcx_decode_frame(), process_subpacket_11(), qcelp_decode_frame(), qdm2_decode_fft_packets(), qdm2_decode_sub_packet_header(), qdm2_decode_super_block(), qdm2_fft_decode_tones(), qdm2_get_vlc(), qt_rtp_parse_packet(), ra144_decode_frame(), ra288_decode_frame(), read_access_unit(), read_and_decode_spectrum(), read_audio_mux_element(), read_block_data(), read_block_types(), read_channel_data(), read_channel_params(), read_dcs(), read_dct_coeffs(), read_decoding_params(), read_filter_params(), read_huff_channels(), read_huffman_tree(), read_len_table(), read_matrix_params(), read_motion_values(), read_payload_length_info(), read_residue(), read_restart_header(), read_runs(), read_sbr_data(), read_sbr_envelope(), read_sbr_grid(), read_sbr_header(), read_sbr_invf(), read_sbr_noise(), read_specific_config(), read_stream_mux_config(), read_tree(), read_var_block_data(), readQuantSpectralCoeffs(), rv10_decode_picture_header(), rv20_decode_picture_header(), rv30_parse_slice_header(), rv34_decode_dquant(), rv34_decode_mb_header(), rv40_parse_slice_header(), rv_decode_dc(), save_bits(), seq_decode_op1(), seqvideo_decode(), shorten_decode_frame(), skip_data_stream_element(), skip_hdr_extension(), smacker_decode_header_tree(), smacker_decode_tree(), smka_decode_frame(), svq1_decode_frame(), svq1_decode_frame_header(), svq1_parse_string(), svq3_decode_init(), svq3_decode_slice_header(), synth_block_fcb_acb(), synth_block_hardcoded(), synth_frame(), synth_superframe(), synthfilt_build_sb_samples(), tag_tree_decode(), tgq_decode_block(), tgv_decode_inter(), theora_header(), tm2_build_huff_table(), tm2_read_deltas(), tta_decode_frame(), tta_decode_init(), twin_decode_frame(), unpack_bitstream(), unpack_block_qpis(), unpack_codebook(), unpack_dct_coeffs(), unpack_modes(), unpack_superblocks(), unpack_vectors(), unpack_vlcs(), vaapi_mpeg2_decode_slice(), vc1_decode_ac_coeff(), vc1_decode_entry_point(), vc1_decode_frame(), vc1_decode_i_block(), vc1_decode_i_block_adv(), vc1_decode_init(), vc1_decode_intra_block(), vc1_decode_sequence_header(), vc1_parse_frame_header(), vc1_parse_frame_header_adv(), vc1_parse_sprites(), vc1_sprite_parse_transform(), vlc_decode_block(), vop_dquant_decoding(), vorbis_decode_init(), vorbis_floor0_decode(), vorbis_floor1_decode(), vorbis_parse_id_hdr(), vorbis_parse_setup_hdr(), vorbis_parse_setup_hdr_codebooks(), vorbis_parse_setup_hdr_floors(), vorbis_parse_setup_hdr_mappings(), vorbis_parse_setup_hdr_modes(), vorbis_parse_setup_hdr_residues(), vorbis_parse_setup_hdr_tdtransforms(), vp3_decode_frame(), vp6_get_nb_null(), vp6_parse_coeff_huffman(), wma_decode_block(), wma_decode_superframe(), wnv1_get_code(), wv_get_value(), wv_get_value_float(), wv_get_value_integer(), x8_get_ac_rlf(), x8_get_dc_rlf(), x8_get_orient_vlc(), and x8_select_ac_table().

static unsigned int get_bits1 ( GetBitContext s  )  [inline, static]

Definition at line 311 of file get_bits.h.

Referenced by ac3_parse_header(), alac_decode_frame(), avs_decode_frame(), aw_pulse_set2(), bink_decode_plane(), binkb_decode_plane(), bitplane_decoding(), check_bits_for_superframe(), check_marker(), dca_exss_parse_asset_header(), dca_exss_parse_header(), decode(), decode012(), decode210(), decode2x2(), decode4x4(), decode8x8(), decode_audio_block(), decode_band(), decode_band_hdr(), decode_band_structure(), decode_cce(), decode_channel_map(), decode_channel_transform(), decode_coeff(), decode_coeffs(), decode_colskip(), decode_cpe(), decode_decorrelation_matrix(), decode_drc_channel_exclusions(), decode_dynamic_range(), decode_ext_header(), decode_frame(), decode_ga_specific_config(), decode_gain_info(), decode_gop_header(), decode_header_trees(), decode_hrd_parameters(), decode_ics(), decode_ics_info(), decode_line(), decode_ltp(), decode_macroblock(), decode_mb_i(), decode_mb_info(), decode_mb_p(), decode_mid_side_stereo(), decode_mime_header(), decode_motion(), decode_mv_component(), decode_pce(), decode_pic(), decode_prediction(), decode_residual(), decode_rice(), decode_rowskip(), decode_run_8bit(), decode_scale_factors(), decode_scaling_list(), decode_scaling_matrices(), decode_seq_header(), decode_sequence_header_adv(), decode_skip_count(), decode_slice_header(), decode_subframe(), decode_subframe_length(), decode_tilehdr(), decode_tns(), decode_vol_header(), decode_vop_header(), decode_vui_parameters(), decodeFrame(), decodeSpectrum(), decodeTonalComponents(), decouple_info(), dequant(), dv_decode_video_segment(), dvbsub_read_2bit_string(), dvbsub_read_4bit_string(), escape124_decode_frame(), ff_aac_parse_header(), ff_ac3_parse_header(), ff_bgmc_decode(), ff_ccitt_unpack(), ff_decode_sbr_extension(), ff_eac3_decode_transform_coeffs_aht_ch(), ff_eac3_parse_header(), ff_flac_decode_frame_header(), ff_flv2_decode_ac_esc(), ff_flv_decode_picture_header(), ff_h263_decode_mb(), ff_h264_decode_mb_cavlc(), ff_h264_decode_picture_parameter_set(), ff_h264_decode_ref_pic_list_reordering(), ff_h264_decode_ref_pic_marking(), ff_h264_decode_seq_parameter_set(), ff_intel_h263_decode_picture_header(), ff_intrax8_decode_picture(), ff_ivi_dec_tile_data_size(), ff_mlp_read_major_sync(), ff_mpeg4audio_get_config(), ff_ps_read_data(), ff_rdt_parse_header(), ff_vorbis_len2vlc(), ff_wma_get_large_val(), ff_wma_run_level_decode(), ff_wmv2_decode_mb(), ff_wmv2_decode_picture_header(), ff_wmv2_decode_secondary_picture_header(), fill_slice(), find_group3_syncmarker(), gb_get_v(), get_bits1_vector(), get_dimension(), get_dmv(), get_float(), get_tail(), get_te0_golomb(), get_te_golomb(), get_unary(), h261_decode_block(), h261_decode_gob_header(), h261_decode_picture_header(), h261_probe(), h263_decode_block(), h263_decode_dquant(), h263_decode_gob_header(), h263_decode_motion(), h263_decode_picture_header(), h263_get_modb(), h263p_decode_umotion(), huffman_decode(), idx_to_quant(), imc_decode_frame(), imc_get_skip_coeff(), init_tone_level_dequantization(), lag_decode_prob(), ls_decode_line(), merge(), mjpeg_decode_scan(), mov_write_ac3_tag(), mp_decode_layer3(), mp_get_code(), mpc7_decode_frame(), mpc7_decode_init(), mpc8_dec_base(), mpc8_decode_frame(), mpc8_decode_init(), mpeg1_decode_picture(), mpeg1_decode_sequence(), mpeg4_decode_dc(), mpeg4_decode_mb(), mpeg4_decode_partition_a(), mpeg4_decode_partition_b(), mpeg4_decode_video_packet_header(), mpeg4_is_resync(), mpeg_decode_gop(), mpeg_decode_mb(), mpeg_decode_motion(), mpeg_decode_picture_coding_extension(), mpeg_decode_quant_matrix_extension(), mpeg_decode_sequence_display_extension(), mpeg_decode_sequence_extension(), mpeg_decode_slice(), msmpeg4_decode_dc(), msmpeg4_decode_ext_header(), msmpeg4_decode_picture_header(), msmpeg4v12_decode_mb(), msmpeg4v2_decode_motion(), msmpeg4v34_decode_mb(), parse_mb_skip(), parse_nal_units(), parse_packet_header(), parse_source_parameters(), pred_weight_table(), preview_obmc(), ps_read_extension_data(), qdm2_fft_decode_tones(), qt_rtp_parse_packet(), read_access_unit(), read_and_decode_spectrum(), read_block(), read_block_types(), read_channel_data(), read_channel_params(), read_colors(), read_const_block_data(), read_dcs(), read_dct_coeffs(), read_decoding_params(), read_filter_params(), read_frame_data(), read_huff_channels(), read_huffman_tree(), read_matrix_params(), read_motion_values(), read_residue(), read_restart_header(), read_runs(), read_sbr_channel_pair_element(), read_sbr_data(), read_sbr_grid(), read_sbr_header(), read_sbr_single_channel_element(), read_specific_config(), read_tree(), read_var_block_data(), rv10_decode_picture_header(), rv20_decode_picture_header(), rv30_parse_slice_header(), rv34_decode_cbp(), rv34_decode_dquant(), rv34_decode_mb_header(), rv40_decode_intra_types(), rv40_parse_slice_header(), rv_decode_dc(), skip_data_stream_element(), smacker_decode_bigtree(), smacker_decode_header_tree(), smacker_decode_tree(), smk_get_code(), smka_decode_frame(), svq1_decode_frame_header(), svq1_decode_motion_vector(), svq3_decode_init(), svq3_decode_mb(), svq3_decode_slice_header(), synth_block_fcb_acb(), synth_superframe(), synthfilt_build_sb_samples(), tm2_read_tree(), tta_get_unary(), unpack_bitstream(), unpack_block_qpis(), unpack_SQVH(), unpack_superblocks(), unpack_vectors(), vaapi_mpeg2_decode_slice(), vc1_decode_ac_coeff(), vc1_decode_b_mb(), vc1_decode_entry_point(), vc1_decode_frame(), vc1_decode_i_block(), vc1_decode_i_block_adv(), vc1_decode_i_blocks(), vc1_decode_i_blocks_adv(), vc1_decode_intra_block(), vc1_decode_p_mb(), vc1_decode_sequence_header(), vc1_parse_frame_header(), vc1_parse_frame_header_adv(), vc1_parse_sprites(), vc1_pred_b_mv(), vc1_pred_mv(), vc1_sprite_parse_transform(), vop_dquant_decoding(), vorbis_floor1_decode(), vorbis_parse_audio_packet(), vorbis_parse_id_hdr(), vorbis_parse_setup_hdr(), vorbis_parse_setup_hdr_codebooks(), vorbis_parse_setup_hdr_mappings(), vorbis_parse_setup_hdr_modes(), vorbis_parse_setup_hdr_residues(), vp3_decode_frame(), vp6_get_nb_null(), vp6_parse_coeff_huffman(), wma_decode_block(), wmv2_decode_motion(), wmv2_pred_motion(), wv_get_value(), wv_get_value_float(), x8_decode_intra_mb(), x8_get_ac_rlf(), and xan_huffman_decode().

static int get_bits_count ( const GetBitContext s  )  [inline, static]

Definition at line 169 of file get_bits.h.

Referenced by aac_adtstoasc_filter(), aac_decode_frame(), adpcm_decode_frame(), alac_decode_frame(), align_get_bits(), bink_decode_plane(), binkb_decode_plane(), can_safely_read(), categorize(), check_bits_for_superframe(), check_for_slice(), check_slice_end(), cook_decode_frame(), dca_decode_frame(), dca_exss_parse_asset_header(), decode_422_bitstream(), decode_audio_specific_config(), decode_band(), decode_frame(), decode_gain_info(), decode_gray_bitstream(), decode_p_frame(), decode_packet(), decode_rle(), decode_slice(), decode_subframe(), decode_user_data(), decode_vol_header(), decode_vui_parameters(), dvbsub_read_2bit_string(), dvbsub_read_4bit_string(), encode_picture_ls(), escape124_decode_frame(), ff_flac_decode_frame_header(), ff_h263_decode_frame(), ff_h263_decode_mb(), ff_h263_resync(), ff_h264_decode_picture_parameter_set(), ff_h264_decode_sei(), ff_mjpeg_decode_frame(), ff_mlp_read_major_sync(), ff_mpeg4_decode_picture_header(), ff_mpeg4audio_get_config(), ff_ps_read_data(), ff_rdt_parse_header(), fill_slice(), fill_slice_long(), find_group3_syncmarker(), flac_decode_frame(), flashsv_decode_frame(), g726_decode_frame(), get_bits_align32(), get_bits_left(), get_block(), get_consumed_bytes(), get_level_prefix(), h261_decode_mb(), huffman_decode(), imc_decode_frame(), imc_get_coeffs(), lag_rac_init(), latm_decode_audio_specific_config(), loco_decode_plane(), mjpeg_decode_app(), mjpeg_decode_com(), mjpeg_decode_scan(), mp_decode_frame(), mp_decode_layer3(), mpc7_decode_frame(), mpc8_decode_frame(), mpeg4_decode_video_packet_header(), mpeg4_is_resync(), mpeg_decode_slice(), msmpeg4_decode_ext_header(), mxpeg_decode_frame(), ps_read_extension_data(), qdm2_decode_sub_packet_header(), qdm2_decode_super_block(), qt_rtp_parse_packet(), read_access_unit(), read_block_data(), read_huffman_tables(), read_restart_header(), read_sbr_data(), read_sbr_header(), remaining_bits(), rtjpeg_decode_frame_yuv420(), rv10_decode_packet(), save_bits(), seq_unpack_rle_block(), shorten_decode_frame(), smacker_decode_bigtree(), smk_get_code(), svq3_decode_frame(), svq3_decode_init(), svq3_decode_slice_header(), switch_buffer(), tm2_read_stream(), unpack_SQVH(), vaapi_mpeg2_decode_slice(), vaapi_mpeg4_decode_slice(), vaapi_vc1_decode_slice(), vc1_decode_b_blocks(), vc1_decode_i_blocks(), vc1_decode_i_blocks_adv(), vc1_decode_init(), vc1_decode_p_blocks(), vc1_parse_sprites(), vorbis_decode_frame(), vorbis_floor1_decode(), vp6_parse_coeff_huffman(), wma_decode_superframe(), wmavoice_decode_packet(), wv_unpack_mono(), and wv_unpack_stereo().

static int get_bits_left ( GetBitContext gb  )  [inline, static]

static unsigned int get_bits_long ( GetBitContext s,
int  n 
) [inline, static]

static int get_sbits ( GetBitContext s,
int  n 
) [inline, static]

static int get_sbits_long ( GetBitContext s,
int  n 
) [inline, static]

reads 0-32 bits as a signed integer.

Definition at line 358 of file get_bits.h.

Referenced by alac_decode_frame(), decode_residuals(), decode_subframe(), decode_subframe_fixed(), decode_subframe_lpc(), and read_const_block_data().

static av_always_inline int get_vlc2 ( GetBitContext s,
VLC_TYPE(*)  table[2],
int  bits,
int  max_depth 
) [static]

parses a vlc code, faster then get_vlc()

Parameters:
bits is the number of bits which will be read at once, must be identical to nb_bits in init_vlc()
max_depth is the number of times bits bits must be read to completely read the longest vlc code = (max_vlc_length + bits - 1) / bits

Definition at line 514 of file get_bits.h.

Referenced by asv1_decode_block(), asv1_get_level(), asv2_decode_block(), asv2_get_level(), bitplane_decoding(), check_bits_for_superframe(), decode_bgr_1(), decode_cce(), decode_coeff(), decode_coeffs(), decode_dc(), decode_envelope(), decode_exp_vlc(), decode_group3_1d_line(), decode_group3_2d_line(), decode_i_block(), decode_i_frame(), decode_mb_info(), decode_mv_component(), decode_p_block(), decode_residual(), decode_scale_factors(), decode_scalefactors(), decouple_info(), dnxhd_decode_dc(), dnxhd_decode_dct_block(), ff_h263_decode_mb(), ff_ivi_decode_blocks(), ff_msmpeg4_decode_motion(), ff_wma_run_level_decode(), ff_wmv2_decode_mb(), fraps2_decode_plane(), get_bitalloc(), get_scale_idx(), h261_decode_block(), h261_decode_mb(), h263_decode_block(), h263_decode_motion(), huffman_decode(), idx_to_quant(), imc_read_level_coeffs(), ir2_get_code(), mjpeg_decode_dc(), mp_get_vlc(), mpc7_decode_frame(), mpc8_decode_frame(), mpeg4_decode_dc(), mpeg4_decode_mb(), mpeg4_decode_partition_a(), mpeg4_decode_partition_b(), mpeg4_decode_sprite_trajectory(), mpeg_decode_mb(), mpeg_decode_motion(), mpeg_decode_slice(), msmpeg4_decode_dc(), msmpeg4v12_decode_mb(), msmpeg4v2_decode_motion(), msmpeg4v34_decode_mb(), preview_obmc(), qdm2_get_vlc(), read_huff_channels(), read_sbr_envelope(), read_sbr_noise(), readQuantSpectralCoeffs(), rv34_decode_block(), rv34_decode_cbp(), rv40_decode_intra_types(), rv40_decode_mb_info(), rv_decode_dc(), smacker_decode_bigtree(), smka_decode_frame(), svq1_decode_block_intra(), svq1_decode_block_non_intra(), svq1_decode_delta_block(), svq1_decode_motion_vector(), synth_frame(), tm2_get_token(), unpack_block_qpis(), unpack_modes(), unpack_SQVH(), unpack_superblocks(), unpack_vectors(), unpack_vlcs(), vc1_decode_ac_coeff(), vc1_decode_b_mb(), vc1_decode_i_block(), vc1_decode_i_block_adv(), vc1_decode_i_blocks(), vc1_decode_i_blocks_adv(), vc1_decode_intra_block(), vc1_decode_p_block(), vc1_decode_p_mb(), vc1_parse_frame_header(), vc1_parse_frame_header_adv(), vlc_decode_block(), vorbis_floor0_decode(), vorbis_floor1_decode(), vorbis_residue_decode_internal(), vp6_parse_coeff_huffman(), wma_decode_block(), wnv1_get_code(), x8_get_ac_rlf(), x8_get_dc_rlf(), and x8_get_orient_vlc().

static int get_xbits ( GetBitContext s,
int  n 
) [inline, static]

read mpeg1 dc style vlc (sign bit + mantisse with no MSB).

if MSB not set it is negative

Parameters:
n length in bits
Author:
BERO

Definition at line 257 of file get_bits.h.

Referenced by decode_dc(), decode_i_block(), dnxhd_decode_dc(), mjpeg_decode_dc(), mpeg4_decode_dc(), and mpeg4_decode_sprite_trajectory().

static void init_get_bits ( GetBitContext s,
const uint8_t *  buffer,
int  bit_size 
) [inline, static]

init GetBitContext.

Parameters:
buffer bitstream buffer, must be FF_INPUT_BUFFER_PADDING_SIZE bytes larger then the actual read bits because some optimized bitstream readers read 32 or 64 bit at once and could read over the end
bit_size the size of the buffer in bits
While GetBitContext stores the buffer size, for performance reasons you are responsible for checking for the buffer end yourself (take advantage of the padding)!

Definition at line 391 of file get_bits.h.

Referenced by aac_adtstoasc_filter(), aac_decode_frame(), aac_sync(), ac3_decode_frame(), ac3_eac3_probe(), ac3_sync(), adpcm_decode_frame(), alac_decode_frame(), atrac1_decode_frame(), av_mpeg4_decode_header(), avs_decode_frame(), cavs_decode_frame(), check_bits_for_superframe(), dca_decode_frame(), dca_parse_frame_header(), decode_audio_specific_config(), decode_bytes_and_gain(), decode_chunks(), decode_ext_header(), decode_frame(), decode_header_trees(), decode_i_frame(), decode_mime_header(), decode_nal_units(), decode_p_frame(), decode_packet(), decode_rle(), decode_wave_header(), decodeFrame(), dirac_header(), dnxhd_decode_macroblocks(), dv_decode_video_segment(), dvbsub_read_2bit_string(), dvbsub_read_4bit_string(), encode_picture_ls(), escape124_decode_frame(), ff_adts_decode_extradata(), ff_ccitt_unpack(), ff_flac_parse_streaminfo(), ff_h263_decode_frame(), ff_mjpeg_decode_frame(), ff_mjpeg_decode_init(), ff_mpeg4audio_get_config(), ff_msgsm_decode_block(), ff_rdt_parse_header(), ff_rv34_decode_frame(), ff_vorbis_len2vlc(), fill_slice(), flac_decode_frame(), flac_header(), flashsv_decode_frame(), frame_header_is_valid(), fraps2_decode_plane(), g726_decode_frame(), gsm_decode_frame(), h261_decode_frame(), h261_probe(), hl_decode_mb_444_internal(), hl_decode_mb_internal(), imc_decode_frame(), ipvideo_decode_opcodes(), ir2_decode_frame(), lag_decode_arith_plane(), latm_decode_frame(), loco_decode_plane(), mimic_decode_frame(), mjpeg_decode_scan(), mjpegb_decode_frame(), mlp_parse(), mov_read_stsz(), mov_write_ac3_tag(), mp_decode_frame(), mp_decode_layer3(), mpc7_decode_frame(), mpc7_decode_init(), mpc8_decode_frame(), mpc8_decode_init(), mpc8_parse_seektable(), mpeg1_decode_picture(), mpeg1_decode_sequence(), mpeg_decode_gop(), mpeg_decode_slice(), mxpeg_decode_frame(), nelly_decode_block(), parse_fmtp_config(), parse_nal_units(), pcx_decode_frame(), process_subpacket_10(), process_subpacket_11(), process_subpacket_12(), process_subpacket_9(), qcelp_decode_frame(), qdm2_decode_fft_packets(), qdm2_decode_super_block(), qt_rtp_parse_packet(), ra144_decode_frame(), ra288_decode_frame(), read_access_unit(), read_huffman_tables(), read_old_huffman_tables(), read_specific_config(), rtjpeg_decode_frame_yuv420(), rtp_parse_mp4_au(), rv10_decode_packet(), rv34_decode_slice(), save_bits(), seq_decode_op1(), seq_unpack_rle_block(), seqvideo_decode(), shorten_decode_frame(), sipr_decode_frame(), smka_decode_frame(), spdif_get_offset_and_codec(), spdif_header_aac(), svq1_decode_frame(), svq3_decode_frame(), svq3_decode_init(), synth_superframe(), tgq_decode_mb(), tgv_decode_inter(), theora_header(), tm2_read_stream(), tqi_decode_frame(), tta_decode_frame(), tta_decode_init(), twin_decode_frame(), unpack_bitstream(), vaapi_mpeg2_decode_slice(), vc1_decode_frame(), vc1_decode_init(), vc1_extract_headers(), vorbis_decode_frame(), vorbis_decode_init(), vp3_decode_frame(), vp6_parse_header(), wavpack_decode_block(), wma_decode_superframe(), wmavoice_decode_init(), wmavoice_decode_packet(), and xan_huffman_decode().

int 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 
)

static unsigned int show_bits ( GetBitContext s,
int  n 
) [inline, static]

static unsigned int show_bits1 ( GetBitContext s  )  [inline, static]

Definition at line 331 of file get_bits.h.

static unsigned int show_bits_long ( GetBitContext s,
int  n 
) [inline, static]

static void skip_bits ( GetBitContext s,
int  n 
) [inline, static]

Definition at line 303 of file get_bits.h.

Referenced by ac3_parse_header(), alac_decode_frame(), align_get_bits(), at1_parse_bsm(), check_bits_for_superframe(), dca_decode_frame(), dca_exss_parse_asset_header(), dca_exss_parse_header(), decode_audio_block(), decode_block(), decode_buffering_period(), decode_dynamic_range(), decode_frame(), decode_ga_specific_config(), decode_gop_header(), decode_mime_header(), decode_packet(), decode_pce(), decode_pic(), decode_pic_hdr(), decode_picture_timing(), decode_recovery_point(), decode_residual(), decode_scalar(), decode_seq_header(), decode_sequence_header_adv(), decode_unregistered_user_data(), decode_vol_header(), decode_vop_header(), decode_wave_header(), ff_aac_parse_header(), ff_ac3_parse_header(), ff_decode_sbr_extension(), ff_eac3_parse_header(), ff_flac_decode_frame_header(), ff_flac_parse_streaminfo(), ff_flv_decode_picture_header(), ff_h261_resync(), ff_h263_resync(), ff_h264_decode_sei(), ff_intel_h263_decode_picture_header(), ff_jpegls_decode_picture(), ff_mjpeg_decode_sos(), ff_mlp_read_major_sync(), ff_mpeg4_decode_partitions(), ff_mpeg4_decode_picture_header(), ff_mpeg4audio_get_config(), ff_ps_read_data(), ff_rdt_parse_header(), fill_slice(), get_bits_align32(), h261_decode_block(), h261_decode_gob_header(), h261_decode_picture_header(), h263_decode_gob_header(), h263_decode_picture_header(), ljpeg_decode_rgb_scan(), ljpeg_decode_yuv_scan(), mjpeg_decode_app(), mjpeg_decode_scan(), mjpegb_decode_frame(), mov_write_ac3_tag(), mp_decode_frame(), mp_decode_layer3(), mpc8_decode_frame(), mpc8_decode_init(), mpeg1_decode_sequence(), mpeg4_decode_video_packet_header(), mpeg4_is_resync(), mpeg_decode_picture_display_extension(), mpeg_decode_sequence_display_extension(), mpeg_decode_sequence_extension(), mpeg_decode_slice(), msmpeg4_decode_ext_header(), msmpeg4_decode_picture_header(), mxpeg_decode_app(), mxpeg_decode_com(), parse_adts_frame_header(), parse_fmtp_config(), parse_packet_header(), preview_obmc(), qdm2_decode_super_block(), qt_rtp_parse_packet(), read_access_unit(), read_block_data(), read_const_block_data(), read_payload_length_info(), read_restart_header(), read_sbr_channel_pair_element(), read_sbr_data(), read_sbr_header(), read_sbr_single_channel_element(), read_specific_config(), read_stream_mux_config(), rv10_decode_picture_header(), rv_decode_dc(), save_bits(), shorten_decode_frame(), skip_bits1(), skip_hdr_extension(), svq1_decode_frame_header(), svq3_decode_frame(), svq3_decode_init(), svq3_decode_slice_header(), synth_superframe(), tgq_decode_block(), theora_header(), tta_decode_frame(), tta_decode_init(), twin_decode_frame(), unpack_bitstream(), vaapi_mpeg2_decode_slice(), vc1_decode_entry_point(), vc1_decode_sequence_header(), vc1_parse_frame_header(), vc1_parse_frame_header_adv(), vc1_parse_sprites(), vorbis_parse_audio_packet(), vorbis_parse_setup_hdr_mappings(), vp3_decode_frame(), wma_decode_superframe(), and wmavoice_decode_packet().

static void skip_bits1 ( GetBitContext s  )  [inline, static]

static void skip_bits_long ( GetBitContext s,
int  n 
) [inline, static]


Generated on Fri Oct 26 02:39:44 2012 for FFmpeg by  doxygen 1.5.8