aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFraunhofer IIS FDK <audio-fdk@iis.fraunhofer.de>2019-12-19 17:22:38 +0100
committerJean-Michel Trivi <jmtrivi@google.com>2020-02-13 09:07:40 -0800
commit925092e8fcd9f3635fdff6ff34f8a4a290916885 (patch)
tree60d522ff6fba5628bc922e69967ed6ceb2111f8e
parent1d451971ca16a2ba3655dec3d23115b0a240a8bb (diff)
downloadfdk-aac-925092e8fcd9f3635fdff6ff34f8a4a290916885.tar.gz
fdk-aac-925092e8fcd9f3635fdff6ff34f8a4a290916885.tar.bz2
fdk-aac-925092e8fcd9f3635fdff6ff34f8a4a290916885.zip
Revise and straighten out pointless description from encoder documentation
Bug: 149481606 Test: header doc update, so just make Change-Id: If5c7fcf96f97a3a1e8ee06bd24fb247c094508bd
-rw-r--r--documentation/aacEncoder.pdfbin461225 -> 443582 bytes
-rw-r--r--libAACenc/include/aacenc_lib.h41
2 files changed, 9 insertions, 32 deletions
diff --git a/documentation/aacEncoder.pdf b/documentation/aacEncoder.pdf
index e438e27..d9300a0 100644
--- a/documentation/aacEncoder.pdf
+++ b/documentation/aacEncoder.pdf
Binary files differ
diff --git a/libAACenc/include/aacenc_lib.h b/libAACenc/include/aacenc_lib.h
index 2e47571..01a9d36 100644
--- a/libAACenc/include/aacenc_lib.h
+++ b/libAACenc/include/aacenc_lib.h
@@ -1,7 +1,7 @@
/* -----------------------------------------------------------------------------
Software License for The Fraunhofer FDK AAC Codec Library for Android
-© Copyright 1995 - 2018 Fraunhofer-Gesellschaft zur Förderung der angewandten
+© Copyright 1995 - 2019 Fraunhofer-Gesellschaft zur Förderung der angewandten
Forschung e.V. All rights reserved.
1. INTRODUCTION
@@ -149,12 +149,6 @@ All API header files are located in the folder /include of the release package.
All header files are provided for usage in C/C++ programs. The AAC encoder
library API functions are located in aacenc_lib.h.
-In binary releases the encoder core resides in statically linkable libraries
-called for example libAACenc.a/libFDK.a (LINUX) or FDK_fastaaclib.lib (MS Visual
-C++) for the plain AAC-LC core encoder and libSBRenc.a (LINUX) or
-FDK_sbrEncLib.lib (MS Visual C++) for the SBR (Spectral Band Replication) and PS
-(Parametric Stereo) modules.
-
\section CallingSequence Calling Sequence
For encoding of ISO/MPEG-2/4 AAC bitstreams the following sequence is mandatory.
@@ -326,18 +320,12 @@ input buffer, simulating a modulo buffer: \code if (outargs.numInSamples>0) {
\endcode
\section writeOutData Output Bitstream Data
-If any AAC bitstream data is available, write it to output file or device. This
-can be done once the following condition is true: \code if
-(outargs.numOutBytes>0) {
-
+If any AAC bitstream data is available, write it to output file or device as
+follows. \code if (outargs.numOutBytes>0) { FDKfwrite(outputBuffer,
+outargs.numOutBytes, 1, pOutFile);
}
\endcode
-If you use file I/O then for example call mpegFileWrite_Write() from the library
-libMpegFileWrite \code mpegFileWrite_Write(hMpegFile, outputBuffer,
-outargs.numOutBytes, aacEncoder_GetParam(hAacEncoder, AACENC_GRANULE_LENGTH));
-\endcode
-
\section cfgMetaData Meta Data Configuration
If the present library is configured with Metadata support, it is possible to
@@ -427,7 +415,7 @@ switch (nChannels) {
return chMode;
\endcode
-\subsection bitreservoir Bitreservoir Configuration
+\subsection peakbitrate Peak Bitrate Configuration
In AAC, the default bitreservoir configuration depends on the chosen bitrate per
frame and the number of effective channels. The size can be determined as below.
\f[
@@ -436,17 +424,10 @@ bitreservoir = nEffChannels*6144 - (bitrate*framelength/samplerate)
Due to audio quality concerns it is not recommended to change the bitreservoir
size to a lower value than the default setting! However, for minimizing the
delay for streaming applications or for achieving a constant size of the
-bitstream packages in each frame, it may be necessaray to change the
-bitreservoir size. This can be done with the ::AACENC_PEAK_BITRATE parameter.
-\code
+bitstream packages in each frame, it may be necessaray to limit the maximum bits
+per frame size. This can be done with the ::AACENC_PEAK_BITRATE parameter. \code
aacEncoder_SetParam(hAacEncoder, AACENC_PEAK_BITRATE, value);
\endcode
-By setting ::AACENC_BITRATEMODE to fixed framing, the bitreservoir is disabled.
-A disabled bitreservoir results in a constant size for each bitstream package.
-Please note that especially at lower bitrates a disabled bitreservoir can
-downgrade the audio quality considerably! The default bitreservoir configuration
-can be achieved as follows. \code aacEncoder_SetParam(hAacEncoder,
-AACENC_BITRESERVOIR, -1); \endcode
To achieve acceptable audio quality with a reduced bitreservoir size setting at
least 1000 bits per audio channel is recommended. For a multichannel audio file
@@ -967,9 +948,7 @@ in this Fraunhofer IIS AAC encoder. AAC has been designed in that way.
\subsection BEHAVIOUR_ESTIM_AVG_FRAMESIZES Estimating Average Frame Sizes
-A HE-AAC v1 or v2 audio frame contains 2048 PCM samples per channel (there is
-also one mode with 1920 samples per channel but this is only for special
-purposes such as DAB+ digital radio).
+A HE-AAC v1 or v2 audio frame contains 2048 PCM samples per channel.
The number of HE-AAC frames \f$N\_FRAMES\f$ per second at 44.1 kHz is:
@@ -1082,9 +1061,7 @@ typedef struct AACENCODER *HANDLE_AACENCODER;
typedef struct {
UINT maxOutBufBytes; /*!< Maximum number of encoder bitstream bytes within one
frame. Size depends on maximum number of supported
- channels in encoder instance. For superframing (as
- used for example in DAB+), size has to be a multiple
- accordingly. */
+ channels in encoder instance. */
UINT maxAncBytes; /*!< Maximum number of ancillary data bytes which can be
inserted into bitstream within one frame. */