libavcodec/bitstream.h File Reference

bitstream 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"

Go to the source code of this file.

Data Structures

struct  PutBitContext
struct  GetBitContext
struct  VLC
struct  RL_VLC_ELEM

Defines

#define ALT_BITSTREAM_READER
#define NEG_SSR32(a, s)   ((( int32_t)(a))>>(32-(s)))
#define NEG_USR32(a, s)   (((uint32_t)(a))>>(32-(s)))
#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_USE_STATIC   1
 VERY strongly deprecated and forbidden.
#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 than no bits will be removed if the vlc code is invalid and max_depth>1 than the number of bits removed is undefined
#define GET_RL_VLC(level, run, name, gb, table, bits, max_depth, need_update)
#define tprintf(p,...)   {}

Functions

static void init_put_bits (PutBitContext *s, uint8_t *buffer, int buffer_size)
static int put_bits_count (PutBitContext *s)
static void flush_put_bits (PutBitContext *s)
void align_put_bits (PutBitContext *s)
void ff_put_string (PutBitContext *pbc, const char *s, int put_zero)
void ff_copy_bits (PutBitContext *pb, const uint8_t *src, int length)
static void put_bits (PutBitContext *s, int n, unsigned int value)
static void put_sbits (PutBitContext *pb, int bits, int32_t val)
static uint8_t * pbBufPtr (PutBitContext *s)
static void skip_put_bytes (PutBitContext *s, int n)
 PutBitContext must be flushed & aligned to a byte boundary before calling this.
static void skip_put_bits (PutBitContext *s, int n)
 Skips the given number of bits.
static void set_put_bits_buffer_size (PutBitContext *s, int size)
 Changes the end of the buffer.
static int get_bits_count (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)
 reads 1-17 bits.
static unsigned int show_bits (GetBitContext *s, int n)
 shows 1-17 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 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)

Variables

const uint8_t ff_reverse [256]


Detailed Description

bitstream api header.

Definition in file bitstream.h.


Define Documentation

#define ALT_BITSTREAM_READER

Definition at line 47 of file bitstream.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:

{\
    int n, index, nb_bits;\
\
    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)\
}

Definition at line 833 of file bitstream.h.

Referenced by ff_mpeg1_decode_block_intra(), ff_msmpeg4_decode_block(), mdec_decode_block_intra(), mpeg1_decode_block_inter(), 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:

{\
    int n, index, nb_bits;\
\
    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)\
}
if the vlc code is invalid and max_depth=1 than no bits will be removed if the vlc code is invalid and max_depth>1 than the number of bits removed is undefined

Definition at line 802 of file bitstream.h.

Referenced by decode_block(), decode_block_progressive(), decode_block_refinement(), 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:

{\
    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);\
}

Definition at line 787 of file bitstream.h.

Referenced by aac_decode_init(), ff_ccitt_unpack_init(), ff_mpeg12_init_vlcs(), h263_decode_init_vlc(), and init_static().

#define INIT_VLC_USE_NEW_STATIC   4

#define INIT_VLC_USE_STATIC   1

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

#define LAST_SKIP_CACHE ( name,
gb,
num   )     ;

Definition at line 437 of file bitstream.h.

Referenced by ff_msmpeg4_decode_block(), and mpeg4_decode_block().

#define MIN_CACHE_BITS   25

#define NEG_SSR32 ( a,
 )     ((( int32_t)(a))>>(32-(s)))

Definition at line 72 of file bitstream.h.

#define NEG_USR32 ( a,
 )     (((uint32_t)(a))>>(32-(s)))

Definition at line 73 of file bitstream.h.

Referenced by decode_block(), decode_block_progressive(), dv_decode_ac(), and get_xbits().

#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 422 of file bitstream.h.

Referenced by ff_msmpeg4_decode_block(), and mpeg4_decode_block().

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

Definition at line 427 of file bitstream.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

Definition at line 170 of file bitstream.h.

Referenced by alloc_table(), build_table(), and ff_ccitt_unpack_init().


Function Documentation

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

void align_put_bits ( PutBitContext s  ) 

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 942 of file bitstream.h.

Referenced by vc1_decode_ac_coeff().

void ff_copy_bits ( PutBitContext pb,
const uint8_t *  src,
int  length 
)

Definition at line 76 of file bitstream.c.

Referenced by encode_thread(), merge_context_after_encode(), and svq1_encode_plane().

void ff_put_string ( PutBitContext pbc,
const char *  s,
int  put_zero 
)

Definition at line 66 of file bitstream.c.

Referenced by jpeg_put_comments().

static void flush_put_bits ( PutBitContext s  )  [inline, static]

void free_vlc ( VLC vlc  ) 

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

reads 1-17 bits.

Note, the alt bitstream reader can read up to 25 bits, but the libmpeg2 reader can't

Definition at line 634 of file bitstream.h.

Referenced by aac_decode_frame(), ac3_decode_transform_coeffs_ch(), ac3_parse_header(), adpcm_decode_frame(), alac_decode_frame(), asv1_decode_block(), asv2_get_bits(), bit_copy(), check_for_slice(), dca_parse_frame_header(), dca_subframe_footer(), dca_subframe_header(), dca_subsubframe(), decode(), decode_audio_block(), decode_band_types(), decode_buffering_period(), decode_cce(), decode_channel_map(), decode_coeff(), decode_cpe(), decode_dynamic_range(), decode_entry_point(), decode_envelope(), decode_exp_lsp(), decode_exp_vlc(), decode_exponents(), decode_ext_header(), decode_extension_payload(), decode_extradata(), decode_frame(), decode_gain_info(), decode_hrd_parameters(), decode_ics(), decode_ics_info(), decode_line(), decode_macroblock(), decode_mb_b(), decode_mb_cavlc(), decode_mb_i(), decode_pce(), decode_pic(), decode_picture_timing(), decode_prediction(), decode_pulses(), decode_residual(), decode_residuals(), decode_run_2bit(), decode_run_8bit(), decode_scalar(), decode_scalefactors(), decode_seq_header(), decode_sequence_header(), decode_sequence_header_adv(), decode_skip_count(), decode_slice_header(), decode_spectrum_and_dequant(), decode_subframe(), decode_subframe_lpc(), decode_tns(), decode_unregistered_user_data(), decode_user_data(), decode_vol_header(), decode_vop_header(), decode_vui_parameters(), decodeChannelSoundUnit(), decodeFrame(), decodeGainControl(), decodeSpectrum(), decodeTonalComponents(), decouple_info(), 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_ac3_parse_header_full(), ff_eac3_decode_transform_coeffs_aht_ch(), ff_eac3_parse_header(), ff_flac_parse_streaminfo(), ff_h263_decode_mba(), ff_h264_decode_picture_parameter_set(), ff_h264_decode_sei(), ff_h264_decode_seq_parameter_set(), 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_mb(), ff_mpeg4_decode_partitions(), ff_mpeg4_decode_picture_header(), ff_mpeg4audio_get_config(), ff_msmpeg4_decode_motion(), ff_rdt_parse_header(), ff_wmv2_decode_picture_header(), flac_header(), flashsv_decode_frame(), flv_h263_decode_picture_header(), g726_decode_frame(), gb_get_v(), get_array(), get_bits1(), get_bits_long(), get_bitsz(), get_block(), get_dimension(), get_object_type(), get_qscale(), get_sample_rate(), get_scale(), get_tail(), get_ue_code(), get_utf8(), h261_decode_block(), h261_decode_gob_header(), h261_decode_mb(), h261_decode_picture_header(), h263_decode_block(), h263_decode_dquant(), h263_decode_gob_header(), h263_decode_motion(), h263_decode_picture_header(), idx_to_quant(), imc_decode_frame(), imc_get_coeffs(), imc_read_level_coeffs(), intel_h263_decode_picture_header(), metadata_parse(), mjpeg_decode_app(), mjpeg_decode_com(), mjpeg_decode_dri(), 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_dec_base(), mpc8_decode_frame(), mpc8_decode_init(), mpc8_parse_seektable(), mpeg1_decode_picture(), mpeg1_decode_sequence(), mpeg4_decode_dc(), mpeg4_decode_gop_header(), mpeg4_decode_partition_a(), mpeg4_decode_partition_b(), mpeg4_decode_video_packet_header(), mpeg_decode_extension(), 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(), msmpeg4_decode_dc(), msmpeg4_decode_ext_header(), msmpeg4_decode_picture_header(), msmpeg4v2_decode_motion(), nelly_decode_block(), parse_mb_skip(), parse_nal_units(), 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(), ra144_decode_frame(), ra288_decode_frame(), read_access_unit(), read_block_data(), read_decoding_params(), read_filter_params(), read_huff_channels(), read_huffman_tree(), read_len_table(), read_restart_header(), 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(), seq_decode_op1(), seqvideo_decode(), shorten_decode_frame(), skip_data_stream_element(), 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(), synthfilt_build_sb_samples(), tgq_decode_block(), tgv_decode_inter(), theora_header(), tm2_build_huff_table(), tm2_read_deltas(), tm2_read_header(), tta_decode_frame(), tta_decode_init(), unpack_codebook(), unpack_dct_coeffs(), unpack_modes(), unpack_superblocks(), unpack_vectors(), unpack_vlcs(), vc1_decode_ac_coeff(), vc1_decode_i_block(), vc1_decode_i_block_adv(), vc1_decode_init(), vc1_decode_intra_block(), vc1_parse_frame_header(), vc1_parse_frame_header_adv(), vlc_decode_block(), vop_dquant_decoding(), vorbis_decode_init(), vorbis_floor0_decode(), vorbis_floor1_decode(), vorbis_parse_audio_packet(), 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(), 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 665 of file bitstream.h.

Referenced by ac3_parse_header(), alac_decode_frame(), avs_decode_frame(), bitplane_decoding(), check_marker(), decode(), decode012(), decode210(), decode_audio_block(), decode_band_structure(), decode_cce(), decode_channel_map(), decode_coeff(), decode_colskip(), decode_cpe(), decode_drc_channel_exclusions(), decode_dynamic_range(), decode_entry_point(), decode_ext_header(), decode_frame(), decode_ga_specific_config(), decode_gain_info(), decode_header_trees(), decode_hrd_parameters(), decode_ics(), decode_ics_info(), decode_line(), decode_macroblock(), decode_mb_cavlc(), decode_mb_i(), decode_mb_p(), decode_mid_side_stereo(), decode_mv_component(), decode_pce(), decode_pic(), decode_prediction(), decode_ref_pic_list_reordering(), decode_ref_pic_marking(), decode_rowskip(), decode_run_8bit(), decode_scaling_list(), decode_scaling_matrices(), decode_seq_header(), decode_sequence_header(), decode_sequence_header_adv(), decode_skip_count(), decode_slice_header(), decode_spectrum_and_dequant(), decode_subframe(), decode_tns(), decode_vol_header(), decode_vop_header(), decode_vui_parameters(), decodeFrame(), decodeSpectrum(), decodeTonalComponents(), decouple_info(), dv_decode_video_segment(), dvbsub_read_2bit_string(), dvbsub_read_4bit_string(), escape124_decode_frame(), ff_aac_parse_header(), ff_ac3_parse_header(), ff_ac3_parse_header_full(), ff_ccitt_unpack(), ff_eac3_decode_transform_coeffs_aht_ch(), ff_eac3_parse_header(), ff_h263_decode_mb(), ff_h264_decode_picture_parameter_set(), ff_h264_decode_seq_parameter_set(), ff_intrax8_decode_picture(), ff_mlp_read_major_sync(), ff_mpeg4_decode_mb(), ff_mpeg4audio_get_config(), ff_rdt_parse_header(), ff_vorbis_len2vlc(), ff_wmv2_decode_mb(), ff_wmv2_decode_picture_header(), ff_wmv2_decode_secondary_picture_header(), find_group3_syncmarker(), flv_h263_decode_picture_header(), gb_get_v(), get_dimension(), get_dmv(), get_tail(), get_te0_golomb(), get_te_golomb(), get_unary(), h261_decode_block(), h261_decode_gob_header(), h261_decode_picture_header(), h263_decode_block(), h263_decode_dquant(), h263_decode_gob_header(), h263_decode_motion(), h263_decode_picture_header(), h263p_decode_umotion(), huffman_decode(), idx_to_quant(), imc_decode_frame(), imc_get_skip_coeff(), init_tone_level_dequantization(), intel_h263_decode_picture_header(), ls_decode_line(), metadata_parse(), 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_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(), pred_weight_table(), preview_obmc(), qdm2_fft_decode_tones(), read_access_unit(), read_decoding_params(), read_filter_params(), read_huff_channels(), read_huffman_tree(), read_restart_header(), 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(), synthfilt_build_sb_samples(), tm2_read_tree(), tta_get_unary(), unpack_SQVH(), unpack_superblocks(), unpack_vectors(), 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_mb(), vc1_parse_frame_header(), vc1_parse_frame_header_adv(), vc1_pred_b_mv(), vc1_pred_mv(), 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(), x8_decode_intra_mb(), and x8_get_ac_rlf().

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

Definition at line 456 of file bitstream.h.

Referenced by adpcm_decode_frame(), alac_decode_frame(), align_get_bits(), can_safely_read(), categorize(), check_for_slice(), check_slice_end(), decode_422_bitstream(), decode_frame(), decode_gain_info(), decode_gray_bitstream(), decode_p_frame(), decode_rle(), decode_slice(), decode_user_data(), decode_vol_header(), dvbsub_read_2bit_string(), dvbsub_read_4bit_string(), encode_picture_ls(), escape124_decode_frame(), ff_h261_resync(), 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_msmpeg4_decode_block(), ff_rdt_parse_header(), find_group3_syncmarker(), flac_decode_frame(), flashsv_decode_frame(), g726_decode_frame(), get_bits_left(), get_consumed_bytes(), get_level_prefix(), h261_decode_mb(), h261_decode_picture_header(), h263_decode_gob_header(), h263_decode_picture_header(), huffman_decode(), imc_decode_frame(), imc_get_coeffs(), loco_decode_plane(), metadata_parse(), 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(), qdm2_decode_sub_packet_header(), qdm2_decode_super_block(), read_access_unit(), read_block_data(), read_huffman_tables(), read_restart_header(), rtjpeg_decode_frame_yuv420(), rv10_decode_packet(), 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(), vc1_decode_b_blocks(), vc1_decode_i_blocks(), vc1_decode_i_blocks_adv(), vc1_decode_init(), vc1_decode_p_blocks(), vorbis_decode_frame(), vorbis_floor1_decode(), wma_decode_superframe(), and wv_get_value().

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 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 866 of file bitstream.h.

Referenced by asv1_decode_block(), asv1_get_level(), asv2_decode_block(), asv2_get_level(), bitplane_decoding(), decode_bgr_1(), decode_cce(), decode_coeff(), decode_dc(), decode_envelope(), decode_exp_vlc(), decode_group3_1d_line(), decode_group3_2d_line(), decode_i_block(), decode_i_frame(), decode_mv_component(), decode_p_block(), decode_residual(), decode_scalefactors(), decode_spectrum_and_dequant(), decouple_info(), dnxhd_decode_dc(), dnxhd_decode_dct_block(), ff_h263_decode_mb(), ff_mpeg4_decode_mb(), ff_msmpeg4_decode_motion(), ff_wmv2_decode_mb(), fraps2_decode_plane(), get_bitalloc(), 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_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(), 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(), tm2_get_token(), 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 608 of file bitstream.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

Definition at line 737 of file bitstream.h.

Referenced by aac_decode_frame(), aac_sync(), ac3_decode_frame(), ac3_sync(), adpcm_decode_frame(), alac_decode_frame(), av_mpeg4_decode_header(), avs_decode_frame(), cavs_decode_frame(), dca_decode_frame(), dca_parse_frame_header(), decode_audio_specific_config(), decode_bytes_and_gain(), decode_chunks(), decode_ext_header(), decode_extradata(), decode_frame(), decode_header_trees(), decode_i_frame(), decode_nal_units(), decode_p_frame(), decode_rle(), decode_wave_header(), decodeFrame(), dnxhd_decode_macroblocks(), dv_decode_video_segment(), dvbsub_read_2bit_string(), dvbsub_read_4bit_string(), encode_picture_ls(), escape124_decode_frame(), ff_ccitt_unpack(), ff_flac_parse_streaminfo(), ff_h263_decode_frame(), ff_mjpeg_decode_frame(), ff_mjpeg_decode_init(), ff_mpeg4audio_get_config(), ff_rdt_parse_header(), ff_rv34_decode_frame(), ff_vorbis_len2vlc(), flac_decode_frame(), flac_header(), flashsv_decode_frame(), fraps2_decode_plane(), g726_decode_frame(), h261_decode_frame(), imc_decode_frame(), ir2_decode_frame(), loco_decode_plane(), mimic_decode_frame(), mjpegb_decode_frame(), mlp_parse(), 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_extension(), mpeg_decode_gop(), mpeg_decode_slice(), nelly_decode_block(), 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(), ra144_decode_frame(), ra288_decode_frame(), read_access_unit(), read_huffman_tables(), read_old_huffman_tables(), rtjpeg_decode_frame_yuv420(), rtp_parse_mp4_au(), rv10_decode_packet(), rv34_decode_slice(), seq_decode_op1(), seq_unpack_rle_block(), seqvideo_decode(), shorten_decode_frame(), smka_decode_frame(), sp5x_decode_frame(), svq1_decode_frame(), svq3_decode_frame(), svq3_decode_init(), tgq_decode_mb(), tgv_decode_inter(), theora_header(), tm2_read_header(), tm2_read_stream(), tqi_decode_frame(), tta_decode_frame(), tta_decode_init(), vc1_decode_frame(), vc1_decode_init(), vorbis_decode_frame(), vorbis_decode_init(), vp3_decode_frame(), vp6_parse_header(), wavpack_decode_frame(), and wma_decode_superframe().

static void init_put_bits ( PutBitContext s,
uint8_t *  buffer,
int  buffer_size 
) [inline, static]

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 uint8_t* pbBufPtr ( PutBitContext s  )  [inline, static]

static void put_bits ( PutBitContext s,
int  n,
unsigned int  value 
) [inline, static]

Definition at line 185 of file bitstream.h.

Referenced by adts_write_frame_header(), alac_encode_frame(), align_put_bits(), asv1_encode_block(), asv1_put_level(), asv2_encode_block(), asv2_put_bits(), asv2_put_level(), bit_copy(), dca_convert_bitstream(), dnxhd_encode_block(), dnxhd_encode_dc(), dnxhd_encode_thread(), dv_encode_ac(), dv_encode_video_segment(), encode_bitstream(), encode_block(), encode_dc(), encode_exp_vlc(), encode_ext_header(), encode_frame(), encode_mb_skip_run(), encode_picture_ls(), encode_pulses(), encode_scalar(), encode_superframe(), escape_FF(), ff_copy_bits(), ff_h261_encode_mb(), ff_h261_encode_picture_header(), ff_h263_encode_mba(), ff_mjpeg_decode_frame(), ff_mjpeg_encode_dc(), ff_mjpeg_encode_picture_header(), ff_mjpeg_encode_stuffing(), ff_mpeg1_encode_slice_header(), ff_msmpeg4_encode_block(), ff_put_string(), ff_wmv2_encode_mb(), ff_wmv2_encode_picture_header(), ff_write_quant_matrix(), floor_encode(), gif_image_write_image(), h261_encode_block(), h261_encode_gob_header(), h261_encode_motion(), h264_write_nal_unit(), jpeg_put_comments(), jpeg_table_header(), ls_encode_run(), ls_store_lse(), mov_write_ac3_tag(), mpeg1_encode_block(), mpeg1_encode_mb_internal(), mpeg1_encode_motion(), mpeg1_encode_picture_header(), mpeg1_encode_sequence_header(), MPV_encode_picture(), msmpeg4_encode_dc(), output_audio_block(), output_frame_footer(), output_frame_header(), output_residual(), output_subframe_lpc(), output_subframes(), put_audio_specific_config(), put_bitstream_info(), put_cabac_bit(), put_codebook_header(), put_codeword(), put_float(), put_floor_header(), put_header(), put_huffman_table(), put_ics_info(), put_main_header(), put_marker(), put_mb_modes(), put_pack_header(), put_qscale(), put_residue_header(), put_sbits(), put_swf_line_edge(), put_swf_matrix(), put_swf_rect(), put_system_header(), set_te_golomb(), set_ue_golomb(), set_ur_golomb(), set_ur_golomb_jpegls(), svq1_encode_frame(), svq1_encode_plane(), svq1_write_header(), swf_write_header(), vorbis_encode_frame(), write_compressed_frame(), write_frame_header(), write_streaminfo(), write_utf8(), and writeCode().

static int put_bits_count ( PutBitContext s  )  [inline, static]

static void put_sbits ( PutBitContext pb,
int  bits,
int32_t  val 
) [inline, static]

static void set_put_bits_buffer_size ( PutBitContext s,
int  size 
) [inline, static]

Changes the end of the buffer.

Definition at line 353 of file bitstream.h.

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

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

Definition at line 685 of file bitstream.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 657 of file bitstream.h.

Referenced by ac3_parse_header(), alac_decode_frame(), align_get_bits(), decode_audio_block(), decode_buffering_period(), decode_dynamic_range(), decode_entry_point(), decode_frame(), decode_ga_specific_config(), decode_pce(), decode_pic(), decode_picture_timing(), decode_recovery_point(), decode_residual(), decode_scalar(), decode_seq_header(), decode_sequence_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_ac3_parse_header_full(), ff_eac3_parse_header(), ff_flac_parse_streaminfo(), ff_h261_resync(), ff_h263_resync(), ff_h264_decode_sei(), ff_jpegls_decode_picture(), ff_mjpeg_decode_sos(), ff_mlp_read_major_sync(), ff_mpeg4_decode_partitions(), ff_mpeg4_decode_picture_header(), ff_rdt_parse_header(), flac_decode_frame(), flv_h263_decode_picture_header(), h261_decode_block(), h261_decode_gob_header(), h261_decode_picture_header(), h263_decode_gob_header(), h263_decode_picture_header(), intel_h263_decode_picture_header(), ljpeg_decode_rgb_scan(), ljpeg_decode_yuv_scan(), metadata_parse(), mjpeg_decode_app(), mjpeg_decode_scan(), mjpegb_decode_frame(), mov_write_ac3_tag(), mp_decode_frame(), mpc7_decode_frame(), mpc7_decode_init(), 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(), nelly_decode_block(), parse_adts_frame_header(), preview_obmc(), qdm2_decode_super_block(), read_access_unit(), read_block_data(), read_restart_header(), rv_decode_dc(), shorten_decode_frame(), skip_bits1(), svq1_decode_frame_header(), svq3_decode_frame(), svq3_decode_init(), svq3_decode_slice_header(), tgq_decode_block(), theora_header(), tta_decode_frame(), tta_decode_init(), vc1_parse_frame_header(), vc1_parse_frame_header_adv(), vorbis_parse_audio_packet(), vorbis_parse_setup_hdr_mappings(), vp3_decode_frame(), and wma_decode_superframe().

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

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

static void skip_put_bits ( PutBitContext s,
int  n 
) [inline, static]

Skips the given number of bits.

Must only be used if the actual values in the bitstream do not matter.

Definition at line 340 of file bitstream.h.

static void skip_put_bytes ( PutBitContext s,
int  n 
) [inline, static]

PutBitContext must be flushed & aligned to a byte boundary before calling this.

Definition at line 325 of file bitstream.h.

Referenced by ff_copy_bits().


Variable Documentation

const uint8_t ff_reverse[256]


Generated on Fri Oct 26 02:35:42 2012 for FFmpeg by  doxygen 1.5.8