FFmpeg  4.0
Functions | Variables
ac3dsp.c File Reference
#include "avcodec.h"
#include "ac3.h"
#include "ac3dsp.h"
#include "mathops.h"

Go to the source code of this file.

Functions

static void ac3_exponent_min_c (uint8_t *exp, int num_reuse_blocks, int nb_coefs)
 
static int ac3_max_msb_abs_int16_c (const int16_t *src, int len)
 
static void ac3_lshift_int16_c (int16_t *src, unsigned int len, unsigned int shift)
 
static void ac3_rshift_int32_c (int32_t *src, unsigned int len, unsigned int shift)
 
static void float_to_fixed24_c (int32_t *dst, const float *src, unsigned int len)
 
static void ac3_bit_alloc_calc_bap_c (int16_t *mask, int16_t *psd, int start, int end, int snr_offset, int floor, const uint8_t *bap_tab, uint8_t *bap)
 
static void ac3_update_bap_counts_c (uint16_t mant_cnt[16], uint8_t *bap, int len)
 
static int ac3_compute_mantissa_size_c (uint16_t mant_cnt[6][16])
 
static void ac3_extract_exponents_c (uint8_t *exp, int32_t *coef, int nb_coefs)
 
static void ac3_sum_square_butterfly_int32_c (int64_t sum[4], const int32_t *coef0, const int32_t *coef1, int len)
 
static void ac3_sum_square_butterfly_float_c (float sum[4], const float *coef0, const float *coef1, int len)
 
static void ac3_downmix_5_to_2_symmetric_c (float **samples, float **matrix, int len)
 
static void ac3_downmix_5_to_1_symmetric_c (float **samples, float **matrix, int len)
 
static void ac3_downmix_c (float **samples, float **matrix, int out_ch, int in_ch, int len)
 
static void ac3_downmix_5_to_2_symmetric_c_fixed (int32_t **samples, int16_t **matrix, int len)
 
static void ac3_downmix_5_to_1_symmetric_c_fixed (int32_t **samples, int16_t **matrix, int len)
 
static void ac3_downmix_c_fixed (int32_t **samples, int16_t **matrix, int out_ch, int in_ch, int len)
 
void ff_ac3dsp_downmix_fixed (AC3DSPContext *c, int32_t **samples, int16_t **matrix, int out_ch, int in_ch, int len)
 
static void apply_window_int16_c (int16_t *output, const int16_t *input, const int16_t *window, unsigned int len)
 
void ff_ac3dsp_downmix (AC3DSPContext *c, float **samples, float **matrix, int out_ch, int in_ch, int len)
 
av_cold void ff_ac3dsp_init (AC3DSPContext *c, int bit_exact)
 

Variables

const uint16_t ff_ac3_bap_bits [16]
 Number of mantissa bits written for each bap value. More...
 

Function Documentation

◆ ac3_exponent_min_c()

static void ac3_exponent_min_c ( uint8_t exp,
int  num_reuse_blocks,
int  nb_coefs 
)
static

Definition at line 27 of file ac3dsp.c.

Referenced by ff_ac3dsp_init().

◆ ac3_max_msb_abs_int16_c()

static int ac3_max_msb_abs_int16_c ( const int16_t *  src,
int  len 
)
static

Definition at line 47 of file ac3dsp.c.

Referenced by ff_ac3dsp_init().

◆ ac3_lshift_int16_c()

static void ac3_lshift_int16_c ( int16_t *  src,
unsigned int  len,
unsigned int  shift 
)
static

Definition at line 55 of file ac3dsp.c.

Referenced by ff_ac3dsp_init().

◆ ac3_rshift_int32_c()

static void ac3_rshift_int32_c ( int32_t src,
unsigned int  len,
unsigned int  shift 
)
static

Definition at line 74 of file ac3dsp.c.

Referenced by ff_ac3dsp_init().

◆ float_to_fixed24_c()

static void float_to_fixed24_c ( int32_t dst,
const float *  src,
unsigned int  len 
)
static

Definition at line 90 of file ac3dsp.c.

Referenced by ff_ac3dsp_init().

◆ ac3_bit_alloc_calc_bap_c()

static void ac3_bit_alloc_calc_bap_c ( int16_t *  mask,
int16_t *  psd,
int  start,
int  end,
int  snr_offset,
int  floor,
const uint8_t bap_tab,
uint8_t bap 
)
static

Definition at line 106 of file ac3dsp.c.

Referenced by ff_ac3dsp_init().

◆ ac3_update_bap_counts_c()

static void ac3_update_bap_counts_c ( uint16_t  mant_cnt[16],
uint8_t bap,
int  len 
)
static

Definition at line 133 of file ac3dsp.c.

Referenced by ff_ac3dsp_init().

◆ ac3_compute_mantissa_size_c()

static int ac3_compute_mantissa_size_c ( uint16_t  mant_cnt[6][16])
static

Definition at line 144 of file ac3dsp.c.

Referenced by ff_ac3dsp_init().

◆ ac3_extract_exponents_c()

static void ac3_extract_exponents_c ( uint8_t exp,
int32_t coef,
int  nb_coefs 
)
static

Definition at line 164 of file ac3dsp.c.

Referenced by ff_ac3dsp_init().

◆ ac3_sum_square_butterfly_int32_c()

static void ac3_sum_square_butterfly_int32_c ( int64_t  sum[4],
const int32_t coef0,
const int32_t coef1,
int  len 
)
static

Definition at line 174 of file ac3dsp.c.

Referenced by ff_ac3dsp_init().

◆ ac3_sum_square_butterfly_float_c()

static void ac3_sum_square_butterfly_float_c ( float  sum[4],
const float *  coef0,
const float *  coef1,
int  len 
)
static

Definition at line 195 of file ac3dsp.c.

Referenced by ff_ac3dsp_init().

◆ ac3_downmix_5_to_2_symmetric_c()

static void ac3_downmix_5_to_2_symmetric_c ( float **  samples,
float **  matrix,
int  len 
)
static

Definition at line 216 of file ac3dsp.c.

Referenced by ff_ac3dsp_downmix().

◆ ac3_downmix_5_to_1_symmetric_c()

static void ac3_downmix_5_to_1_symmetric_c ( float **  samples,
float **  matrix,
int  len 
)
static

Definition at line 239 of file ac3dsp.c.

Referenced by ff_ac3dsp_downmix().

◆ ac3_downmix_c()

static void ac3_downmix_c ( float **  samples,
float **  matrix,
int  out_ch,
int  in_ch,
int  len 
)
static

Definition at line 256 of file ac3dsp.c.

Referenced by ff_ac3dsp_downmix().

◆ ac3_downmix_5_to_2_symmetric_c_fixed()

static void ac3_downmix_5_to_2_symmetric_c_fixed ( int32_t **  samples,
int16_t **  matrix,
int  len 
)
static

Definition at line 282 of file ac3dsp.c.

Referenced by ff_ac3dsp_downmix_fixed().

◆ ac3_downmix_5_to_1_symmetric_c_fixed()

static void ac3_downmix_5_to_1_symmetric_c_fixed ( int32_t **  samples,
int16_t **  matrix,
int  len 
)
static

Definition at line 305 of file ac3dsp.c.

Referenced by ff_ac3dsp_downmix_fixed().

◆ ac3_downmix_c_fixed()

static void ac3_downmix_c_fixed ( int32_t **  samples,
int16_t **  matrix,
int  out_ch,
int  in_ch,
int  len 
)
static

Definition at line 325 of file ac3dsp.c.

Referenced by ff_ac3dsp_downmix_fixed().

◆ ff_ac3dsp_downmix_fixed()

void ff_ac3dsp_downmix_fixed ( AC3DSPContext c,
int32_t **  samples,
int16_t **  matrix,
int  out_ch,
int  in_ch,
int  len 
)

Definition at line 350 of file ac3dsp.c.

◆ apply_window_int16_c()

static void apply_window_int16_c ( int16_t *  output,
const int16_t *  input,
const int16_t *  window,
unsigned int  len 
)
static

Definition at line 377 of file ac3dsp.c.

Referenced by ff_ac3dsp_init().

◆ ff_ac3dsp_downmix()

void ff_ac3dsp_downmix ( AC3DSPContext c,
float **  samples,
float **  matrix,
int  out_ch,
int  in_ch,
int  len 
)

Definition at line 390 of file ac3dsp.c.

Referenced by decode_audio_block().

◆ ff_ac3dsp_init()

av_cold void ff_ac3dsp_init ( AC3DSPContext c,
int  bit_exact 
)

Definition at line 422 of file ac3dsp.c.

Referenced by ac3_decode_init(), and ff_ac3_encode_init().

Variable Documentation

◆ ff_ac3_bap_bits

const uint16_t ff_ac3_bap_bits[16]
Initial value:
= {
0, 0, 0, 3, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16
}

Number of mantissa bits written for each bap value.

bap values with fractional bits are set to 0 and are calculated separately.

Definition at line 140 of file ac3dsp.c.

Referenced by ac3_compute_mantissa_size_c().