FFmpeg
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Functions | Variables
crc.c File Reference
#include "config.h"
#include "common.h"
#include "bswap.h"
#include "crc.h"

Go to the source code of this file.

Functions

int av_crc_init (AVCRC *ctx, int le, int bits, uint32_t poly, int ctx_size)
 Initialize a CRC table.
 
const AVCRCav_crc_get_table (AVCRCId crc_id)
 Get an initialized standard CRC table.
 
uint32_t av_crc (const AVCRC *ctx, uint32_t crc, const uint8_t *buffer, size_t length)
 Calculate the CRC of a block.
 

Variables

struct {
   uint8_t   le
 
   uint8_t   bits
 
   uint32_t   poly
 
av_crc_table_params [AV_CRC_MAX]
 
static AVCRC av_crc_table [AV_CRC_MAX][257]
 

Function Documentation

int av_crc_init ( AVCRC ctx,
int  le,
int  bits,
uint32_t  poly,
int  ctx_size 
)

Initialize a CRC table.

Parameters
ctxmust be an array of size sizeof(AVCRC)*257 or sizeof(AVCRC)*1024
leIf 1, the lowest bit represents the coefficient for the highest exponent of the corresponding polynomial (both for poly and actual CRC). If 0, you must swap the CRC parameter and the result of av_crc if you need the standard representation (can be simplified in most cases to e.g. bswap16): av_bswap32(crc << (32-bits))
bitsnumber of bits for the CRC
polygenerator polynomial without the x**bits coefficient, in the representation as specified by le
ctx_sizesize of ctx in bytes
Returns
<0 on failure

Definition at line 228 of file crc.c.

Referenced by av_crc_get_table(), ff_mlp_init_crc(), and ff_tak_init_crc().

const AVCRC* av_crc_get_table ( AVCRCId  crc_id)
uint32_t av_crc ( const AVCRC ctx,
uint32_t  crc,
const uint8_t buffer,
size_t  length 
)

Variable Documentation

uint8_t le

Definition at line 215 of file crc.c.

Referenced by av_crc_get_table(), decode_frame(), epaf_read_header(), and ircam_read_header().

uint8_t bits

Definition at line 216 of file crc.c.

Referenced by aac_sync(), ac3_compute_mantissa_size_c(), ac3_decode_transform_coeffs_ch(), adaptive_quantization(), apply_lpc(), arith2_get_consumed_bytes(), arith_get_bits(), av_base64_decode(), av_crc_get_table(), av_crc_init(), av_get_bits_per_pixel(), av_get_padded_bits_per_pixel(), avpriv_copy_bits(), avpriv_copy_pce_data(), aw_parse_coords(), binkb_get_value(), binkb_read_bundle(), bit8x8_c(), bits2qp(), build_huff(), build_huff_tree(), build_table(), calc_bit_demand(), calc_rice_params(), can_safely_read(), check_slice_end(), codebook_trellis_rate(), dca_decode_frame(), dct_error(), decode_band_types(), decode_block(), decode_i2_frame(), decode_init(), decode_rgb_frame(), decode_rle(), decode_spectrum_and_dequant(), decode_subframe(), decode_vbmtree(), dequant(), dnxhd_calc_ac_bits(), dnxhd_encode_rdo(), dnxhd_find_qscale(), dvbsub_read_2bit_string(), dvbsub_read_4bit_string(), dvbsub_read_8bit_string(), encode_block(), encode_frame(), encode_picture(), encode_residual_ch(), encode_rgb_frame(), encode_thread(), estimate_acs(), estimate_dcs(), estimate_slice_plane(), extend_code(), ff_acelp_fc_pulse_per_track(), ff_decode_10_pulses_35bits(), ff_eac3_decode_transform_coeffs_aht_ch(), ff_h263_encode_motion(), ff_h264_decode_mb_cabac(), ff_huffyuv_generate_bits_table(), ff_mp_get_chroma_shift(), ff_mpeg1_encode_init(), ff_mpeg4_merge_partitions(), ff_MPV_encode_picture(), ff_rate_control_init(), ff_rate_estimate_qscale(), ff_rv34_decode_init(), fillPlane16(), find_slice_quant(), find_subframe_rice_params(), fold(), gb_get_v(), generate_joint_tables(), get_bits_diff(), get_mvdata_interlaced(), get_qscale(), hScale16To19_c(), imc_decode_block(), init_pass2(), init_static(), init_uni_h263_rl_tab(), init_uni_mpeg4_rl_tab(), ivi_create_huff_from_desc(), lag_decode_prob(), ljpeg_decode_yuv_scan(), main(), mp_decode_layer2(), mpc8_dec_enum(), mpc8_decode_frame(), mpeg1_encode_motion(), mpeg4_decode_partition_a(), msmpeg4v2_encode_motion(), mss4_init_vlc(), nelly_decode_block(), put_codebook_header(), quantize(), rd8x8_c(), read_argb_line(), read_code_table(), read_dct_coeffs(), read_huffman_tables(), read_quant_spectral_coeffs(), read_rgb24_component_line(), read_sbr_envelope(), s302m_parse_frame_header(), scale_vector(), search_for_quantizers_twoloop(), seq_decode_op1(), smka_decode_frame(), vorbis_parse_setup_hdr_floors(), vp56_rac_renorm(), wp_log2(), xan_unpack_luma(), and zero_extend().

uint32_t poly

Definition at line 217 of file crc.c.

Referenced by av_crc_get_table(), mul_poly(), and tta_check_crc64().

struct { ... } av_crc_table_params[AV_CRC_MAX]
Initial value:
= {
[AV_CRC_8_ATM] = { 0, 8, 0x07 },
[AV_CRC_16_ANSI] = { 0, 16, 0x8005 },
[AV_CRC_16_CCITT] = { 0, 16, 0x1021 },
[AV_CRC_32_IEEE] = { 0, 32, 0x04C11DB7 },
[AV_CRC_32_IEEE_LE] = { 1, 32, 0xEDB88320 },
}

Referenced by av_crc_get_table().

AVCRC av_crc_table[AV_CRC_MAX][257]
static

Definition at line 225 of file crc.c.

Referenced by av_crc_get_table().