FFmpeg
|
#include <float.h>
#include "libavutil/channel_layout.h"
#include "libavutil/libm.h"
#include "libavutil/float_dsp.h"
#include "libavutil/opt.h"
#include "avcodec.h"
#include "codec_internal.h"
#include "encode.h"
#include "put_bits.h"
#include "mpeg4audio.h"
#include "sinewin.h"
#include "profiles.h"
#include "version.h"
#include "aac.h"
#include "aactab.h"
#include "aacenc.h"
#include "aacenctab.h"
#include "aacenc_utils.h"
#include "psymodel.h"
Go to the source code of this file.
Macros | |
#define | WINDOW_FUNC(type) |
#define | AACENC_FLAGS AV_OPT_FLAG_ENCODING_PARAM | AV_OPT_FLAG_AUDIO_PARAM |
Variables | |
static const AACPCEInfo | aac_pce_configs [] |
List of PCE (Program Configuration Element) for the channel layouts listed in channel_layout.h. More... | |
static void(*const | apply_window [4])(AVFloatDSPContext *fdsp, SingleChannelElement *sce, const float *audio) |
static const AVOption | aacenc_options [] |
static const AVClass | aacenc_class |
static const FFCodecDefault | aac_encode_defaults [] |
const FFCodec | ff_aac_encoder |
AAC encoder
Definition in file aacenc.c.
#define WINDOW_FUNC | ( | type | ) |
#define AACENC_FLAGS AV_OPT_FLAG_ENCODING_PARAM | AV_OPT_FLAG_AUDIO_PARAM |
|
static |
Definition at line 327 of file aacenc.c.
Referenced by put_audio_specific_config().
|
static |
Make AAC audio config object.
Definition at line 368 of file aacenc.c.
Referenced by aac_encode_init().
void ff_quantize_band_cost_cache_init | ( | struct AACEncContext * | s | ) |
Definition at line 400 of file aacenc.c.
Referenced by search_for_quantizers_fast(), and search_for_quantizers_twoloop().
|
static |
Definition at line 474 of file aacenc.c.
Referenced by aac_encode_frame().
|
static |
Encode ics_info element.
Definition at line 495 of file aacenc.c.
Referenced by aac_encode_frame(), and encode_individual_channel().
|
static |
Encode MS data.
Definition at line 516 of file aacenc.c.
Referenced by aac_encode_frame().
|
static |
Produce integer coefficients from scalefactors provided by the model.
Definition at line 530 of file aacenc.c.
Referenced by aac_encode_frame().
|
static |
Definition at line 580 of file aacenc.c.
Referenced by aac_encode_frame().
|
static |
Definition at line 609 of file aacenc.c.
Referenced by aac_encode_frame().
|
static |
Encode scalefactor band coding type.
Definition at line 644 of file aacenc.c.
Referenced by encode_individual_channel().
|
static |
Encode scalefactors.
Definition at line 658 of file aacenc.c.
Referenced by encode_individual_channel().
|
static |
Encode pulse data.
Definition at line 694 of file aacenc.c.
Referenced by encode_individual_channel().
|
static |
Encode spectral coefficients processed by psychoacoustic model.
Definition at line 713 of file aacenc.c.
Referenced by encode_individual_channel().
|
static |
Downscale spectral coefficients for near-clipping windows to avoid artifacts.
Definition at line 741 of file aacenc.c.
Referenced by aac_encode_frame().
|
static |
Encode one channel of audio data.
Definition at line 761 of file aacenc.c.
Referenced by aac_encode_frame().
|
static |
Write some auxiliary information about the created AAC file.
Definition at line 787 of file aacenc.c.
Referenced by aac_encode_frame().
|
static |
Definition at line 808 of file aacenc.c.
Referenced by aac_encode_frame().
|
static |
|
static |
|
static |
Definition at line 1192 of file aacenc.c.
Referenced by aac_encode_init().
|
static |
Definition at line 1214 of file aacenc.c.
Referenced by aac_encode_init().
|
static |
|
static |
List of PCE (Program Configuration Element) for the channel layouts listed in channel_layout.h.
For those wishing in the future to add other layouts:
index: there are three independent indices for SCE, CPE and LFE; they are incremented irrespective of the group to which the element belongs; they are not reset when going from one group to another
Example: for 7.0 channel layout, .pairing = { { 1, 0 }, { 1 }, { 1 }, }, (3 CPE and 1 SCE in front group) .index = { { 0, 0 }, { 1 }, { 2 }, }, (index is 0 for the single SCE but goes from 0 to 2 for the CPEs)
The index order impacts the channel ordering. But is otherwise arbitrary (the sequence could have been 2, 0, 1 instead of 0, 1, 2).
Spec allows for discontinuous indices, e.g. if one has a total of two SCE, SCE.0 SCE.15 is OK per spec; BUT it won't be decoded by our AAC decoder which at this time requires that indices fully cover some range starting from 0 (SCE.1 SCE.0 is OK but not SCE.0 SCE.15).
Definition at line 89 of file aacenc.c.
Referenced by aac_encode_init().
|
static |
Definition at line 465 of file aacenc.c.
Referenced by aac_encode_frame(), apply_window_and_mdct(), and ff_mpa_synth_filter_TMPL().
|
static |
|
static |
|
static |
const FFCodec ff_aac_encoder |