Go to the documentation of this file.
22 #ifndef AVCODEC_AACENC_H
23 #define AVCODEC_AACENC_H
63 int win,
int group_len,
const float lambda);
65 int scale_idx,
int cb,
const float lambda,
int rtz);
149 int size,
int is_signed,
int maxval,
const float Q34,
150 const float rounding);
void(* apply_tns_filt)(struct AACEncContext *s, SingleChannelElement *sce)
void(* encode_window_bands_info)(struct AACEncContext *s, SingleChannelElement *sce, int win, int group_len, const float lambda)
float * planar_samples[16]
saved preprocessed input
void(* search_for_quantizers)(AVCodecContext *avctx, struct AACEncContext *s, SingleChannelElement *sce, const float lambda)
int needs_pce
flag for non-standard layout
static double cb(void *priv, double x, double y)
void(* abs_pow34)(float *out, const float *in, const int size)
void(* search_for_pns)(struct AACEncContext *s, AVCodecContext *avctx, SingleChannelElement *sce)
void(* search_for_ms)(struct AACEncContext *s, ChannelElement *cpe)
int samplerate_index
MPEG-4 samplerate index.
void(* search_for_tns)(struct AACEncContext *s, SingleChannelElement *sce)
void(* update_ltp)(struct AACEncContext *s, SingleChannelElement *sce)
const uint8_t * chan_map
channel configuration map
struct AACEncContext::@8 buffer
static float win(SuperEqualizerContext *s, float n, int N)
void ff_quantize_band_cost_cache_init(struct AACEncContext *s)
AACEncOptions options
encoding options
int num_ele[4]
front, side, back, lfe
int lambda_count
count(lambda), for Qvg reporting
void(* av_tx_fn)(AVTXContext *s, void *out, void *in, ptrdiff_t stride)
Function pointer to a function to perform the transform.
float lambda_sum
sum(lambda), for Qvg reporting
const AACCoefficientsEncoder ff_aac_coders[]
const uint8_t * reorder_map
lavc to aac reorder map
void(* adjust_common_ltp)(struct AACEncContext *s, ChannelElement *cpe)
uint8_t reorder_map[16]
maps channels from lavc to aac order
void(* encode_ltp_info)(struct AACEncContext *s, SingleChannelElement *sce, int common_window)
Describe the class of an AVClass context structure.
enum RawDataBlockType cur_type
channel group type cur_channel belongs to
void(* search_for_pred)(struct AACEncContext *s, SingleChannelElement *sce)
void(* ltp_insert_new_frame)(struct AACEncContext *s)
uint16_t quantize_band_cost_cache_generation
Undefined Behavior In the C some operations are like signed integer dereferencing freed accessing outside allocated Undefined Behavior must not occur in a C it is not safe even if the output of undefined operations is unused The unsafety may seem nit picking but Optimizing compilers have in fact optimized code on the assumption that no undefined Behavior occurs Optimizing code based on wrong assumptions can and has in some cases lead to effects beyond the output of computations The signed integer overflow problem in speed critical code Code which is highly optimized and works with signed integers sometimes has the problem that often the output of the computation does not c
void(* adjust_common_pred)(struct AACEncContext *s, ChannelElement *cpe)
int qcoefs[96]
quantized coefficients
void(* apply_main_pred)(struct AACEncContext *s, SingleChannelElement *sce)
void(* set_special_band_scalefactors)(struct AACEncContext *s, SingleChannelElement *sce)
int channels
channel count
An AVChannelLayout holds information about the channel layout of audio data.
#define DECLARE_ALIGNED(n, t, v)
void(* quantize_and_encode_band)(struct AACEncContext *s, PutBitContext *pb, const float *in, float *out, int size, int scale_idx, int cb, const float lambda, int rtz)
void(* quant_bands)(int *out, const float *in, const float *scaled, int size, int is_signed, int maxval, const float Q34, const float rounding)
void ff_aac_coder_init_mips(AACEncContext *c)
void(* mark_pns)(struct AACEncContext *s, AVCodecContext *avctx, SingleChannelElement *sce)
int index[4][8]
front, side, back, lfe
AVTXContext * mdct1024
long (1024 samples) frame transform context
int cur_channel
current channel for coder context
uint8_t config_map[16]
configs the encoder's channel specific settings
void(* encode_main_pred)(struct AACEncContext *s, SingleChannelElement *sce)
Single Channel Element - used for both SCE and LFE elements.
void(* search_for_is)(struct AACEncContext *s, AVCodecContext *avctx, ChannelElement *cpe)
channel element - generic struct for SCE/CPE/CCE/LFE
int pairing[3][8]
front, side, back
void ff_aac_dsp_init_x86(AACEncContext *s)
AACQuantizeBandCostCacheEntry quantize_band_cost_cache[256][128]
memoization area for quantize_band_cost
struct FFPsyPreprocessContext * psypp
int profile
copied from avctx
LPCContext lpc
used by TNS
AACPCEInfo pce
PCE data, if needed.
void(* encode_tns_info)(struct AACEncContext *s, SingleChannelElement *sce)
int last_frame_pb_count
number of bits for the previous frame
main external API structure.
void(* search_for_ltp)(struct AACEncContext *s, SingleChannelElement *sce, int common_window)
AVTXContext * mdct128
short (128 samples) frame transform context
float scoefs[1024]
scaled coefficients
const AACCoefficientsEncoder * coder
context used by psychoacoustic model
ChannelElement * cpe
channel elements