Arduino FDK AAC Encoder and Decoder Library
|
Classes | |
class | AACDecoderFDK |
Audio Decoder which decodes AAC into a PCM stream. More... | |
struct | AudioInfo |
class | AACEncoderFDK |
Encodes PCM data to the AAC format and writes the result to a stream. More... | |
Transport type identifiers.
AAC decoder setting parameters.
Enumerator | |
---|---|
AAC_PCM_DUAL_CHANNEL_OUTPUT_MODE | Defines how the decoder processes two channel signals: |
AAC_PCM_OUTPUT_CHANNEL_MAPPING | Output buffer channel ordering. 0: MPEG PCE style order, 1: WAV file channel order (default). |
AAC_PCM_LIMITER_ENABLE | Enable signal level limiting. |
AAC_PCM_LIMITER_ATTACK_TIME | Signal level limiting attack time in ms. Default configuration is 15 ms. Adjustable range from 1 ms to 15 ms. |
AAC_PCM_LIMITER_RELEAS_TIME | Signal level limiting release time in ms. Default configuration is 50 ms. Adjustable time must be larger than 0 ms. |
AAC_PCM_MIN_OUTPUT_CHANNELS | Minimum number of PCM output channels. If higher than the number of encoded audio channels, a simple channel extension is applied (see note 4 for exceptions).
|
AAC_PCM_MAX_OUTPUT_CHANNELS | Maximum number of PCM output channels. If lower than the number of encoded audio channels, downmixing is applied accordingly (see note 5 for exceptions). If dedicated metadata is available in the stream it will be used to achieve better mixing results.
|
AAC_METADATA_PROFILE | See ::AAC_MD_PROFILE for all available values. |
AAC_METADATA_EXPIRY_TIME | Defines the time in ms after which all the bitstream associated meta-data (DRC, downmix coefficients, ...) will be reset to default if no update has been received. Negative values disable the feature. |
AAC_CONCEAL_METHOD | Error concealment: Processing method. |
AAC_DRC_BOOST_FACTOR | MPEG-4 / MPEG-D Dynamic Range Control (DRC): Scaling factor for boosting gain values. Defines how the boosting DRC factors (conveyed in the bitstream) will be applied to the decoded signal. The valid values range from 0 (don't apply boost factors) to 127 (fully apply boost factors). Default value is 0 for MPEG-4 DRC and 127 for MPEG-D DRC. |
AAC_DRC_ATTENUATION_FACTOR | MPEG-4 / MPEG-D DRC: Scaling factor for attenuating gain values. Same as AAC_DRC_BOOST_FACTOR but for attenuating DRC factors. |
AAC_DRC_REFERENCE_LEVEL | MPEG-4 / MPEG-D DRC: Target reference level / decoder target loudness. |
AAC_DRC_HEAVY_COMPRESSION | MPEG-4 DRC: En-/Disable DVB specific heavy compression (aka RF mode). If set to 1, the decoder will apply the compression values from the DVB specific ancillary data field. At the same time the MPEG-4 Dynamic Range Control tool will be disabled. By default, heavy compression is disabled. |
AAC_DRC_DEFAULT_PRESENTATION_MODE | MPEG-4 DRC: Default presentation mode (DRC parameter handling). |
AAC_DRC_ENC_TARGET_LEVEL | MPEG-4 DRC: Encoder target level for light (i.e. not heavy) compression. |
AAC_UNIDRC_SET_EFFECT | MPEG-D DRC: Request a DRC effect type for selection of a DRC set. |
AAC_UNIDRC_ALBUM_MODE | MPEG-D DRC: Enable album mode. 0: Disabled (default), 1: Enabled. |
AAC_QMF_LOWPOWER | Quadrature Mirror Filter (QMF) Bank processing mode. |
AAC_TPDEC_CLEAR_BUFFER | Clear internal bit stream buffer of transport layers. The decoder will start decoding at new data passed after this event and any previous data is discarded. |
AAC encoder setting parameters.
Use aacEncoder_SetParam() function to configure, or use aacEncoder_GetParam() function to read the internal status of the following parameters.
Enumerator | |
---|---|
AACENC_AOT | Audio object type. See ::AUDIO_OBJECT_TYPE in FDK_audio.h.
Please note that the virtual MPEG-2 AOT's basically disables non-existing Perceptual Noise Substitution tool in AAC encoder and controls the MPEG_ID flag in adts header. The virtual MPEG-2 AOT doesn't prohibit specific transport formats. |
AACENC_BITRATE | Total encoder bitrate. This parameter is mandatory and interacts with AACENC_BITRATEMODE.
|
AACENC_BITRATEMODE | Bitrate mode. Configuration can be different kind of bitrate configurations:
|
AACENC_SAMPLERATE | Audio input data sampling rate. Encoder supports following sampling rates: 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000, 64000, 88200, 96000 |
AACENC_SBR_MODE | Configure SBR independently of the chosen Audio Object Type ::AUDIO_OBJECT_TYPE. This parameter is for ELD audio object type only.
|
AACENC_GRANULE_LENGTH | Core encoder (AAC) audio frame length in samples:
|
AACENC_CHANNELMODE | Set explicit channel mode. Channel mode must match with number of input channels.
|
AACENC_CHANNELORDER | Input audio data channel ordering scheme:
|
AACENC_SBR_RATIO | Controls activation of downsampled SBR. With downsampled SBR, the delay will be shorter. On the other hand, for achieving the same quality level, downsampled SBR needs more bits than dual-rate SBR. With downsampled SBR, the AAC encoder will work at the same sampling rate as the SBR encoder (single rate). Downsampled SBR is supported for AAC-ELD and HE-AACv1.
|
AACENC_AFTERBURNER | This parameter controls the use of the afterburner feature. The afterburner is a type of analysis by synthesis algorithm which increases the audio quality but also the required processing power. It is recommended to always activate this if additional memory consumption and processing power consumption is not a problem. If increased MHz and memory consumption are an issue then the MHz and memory cost of this optional module need to be evaluated against the improvement in audio quality on a case by case basis.
|
AACENC_BANDWIDTH | Core encoder audio bandwidth:
|
AACENC_PEAK_BITRATE | Peak bitrate configuration parameter to adjust maximum bits per audio frame. Bitrate is in bits/second. The peak bitrate will internally be limited to the chosen bitrate AACENC_BITRATE as lower limit and the number_of_effective_channels*6144 bit as upper limit. Setting the peak bitrate equal to AACENC_BITRATE does not necessarily mean that the audio frames will be of constant size. Since the peak bitate is in bits/second, the frame sizes can vary by one byte in one or the other direction over various frames. However, it is not recommended to reduce the peak pitrate to AACENC_BITRATE - it would disable the bitreservoir, which would affect the audio quality by a large amount. |
AACENC_TRANSMUX | Transport type to be used. See TRANSPORT_TYPE in FDK_audio.h. Following types can be configured in encoder library:
|
AACENC_HEADER_PERIOD | Frame count period for sending in-band configuration buffers within LATM/LOAS transport layer. Additionally this parameter configures the PCE repetition period in raw_data_block(). See encPCE.
|
AACENC_SIGNALING_MODE | Signaling mode of the extension AOT:
|
AACENC_TPSUBFRAMES | Number of sub frames in a transport frame for LOAS/LATM or ADTS (default 1).
|
AACENC_AUDIOMUXVER | AudioMuxVersion to be used for LATM. (AudioMuxVersionA, currently not implemented):
|
AACENC_PROTECTION | Configure protection in transport layer:
|
AACENC_ANCILLARY_BITRATE | Constant ancillary data bitrate in bits/second.
|
AACENC_METADATA_MODE | Configure Meta Data. See ::AACENC_MetaData for further details:
|
AACENC_CONTROL_STATE | There is an automatic process which internally reconfigures the encoder instance when a configuration parameter changed or an error occured. This paramerter allows overwriting or getting the control status of this process. See ::AACENC_CTRLFLAGS. |
AACENC_NONE |