#include <stdint.h>
#include "libavutil/float_dsp.h"
#include "ac3.h"
#include "ac3dsp.h"
#include "avcodec.h"
#include "dsputil.h"
#include "put_bits.h"
#include "fft.h"
Go to the source code of this file.
| Data Structures | |
| struct | AC3EncOptions | 
| Encoding Options used by AVOption.  More... | |
| struct | AC3Block | 
| Data for a single audio block.  More... | |
| struct | AC3EncodeContext | 
| AC-3 encoder private context.  More... | |
| Defines | |
| #define | CONFIG_AC3ENC_FLOAT 0 | 
| #define | OFFSET(param) offsetof(AC3EncodeContext, options.param) | 
| #define | AC3ENC_PARAM (AV_OPT_FLAG_AUDIO_PARAM | AV_OPT_FLAG_ENCODING_PARAM) | 
| #define | AC3ENC_TYPE_AC3_FIXED 0 | 
| #define | AC3ENC_TYPE_AC3 1 | 
| #define | AC3ENC_TYPE_EAC3 2 | 
| #define | AC3_NAME(x) ff_ac3_fixed_ ## x | 
| #define | MAC_COEF(d, a, b) MAC64(d,a,b) | 
| #define | COEF_MIN -16777215 | 
| #define | COEF_MAX 16777215 | 
| #define | NEW_CPL_COORD_THRESHOLD 503317 | 
| #define | AC3ENC_OPT_NONE -1 | 
| #define | AC3ENC_OPT_AUTO -1 | 
| #define | AC3ENC_OPT_OFF 0 | 
| #define | AC3ENC_OPT_ON 1 | 
| #define | AC3ENC_OPT_NOT_INDICATED 0 | 
| #define | AC3ENC_OPT_MODE_ON 2 | 
| #define | AC3ENC_OPT_MODE_OFF 1 | 
| #define | AC3ENC_OPT_LARGE_ROOM 1 | 
| #define | AC3ENC_OPT_SMALL_ROOM 2 | 
| #define | AC3ENC_OPT_DOWNMIX_LTRT 1 | 
| #define | AC3ENC_OPT_DOWNMIX_LORO 2 | 
| #define | AC3ENC_OPT_ADCONV_STANDARD 0 | 
| #define | AC3ENC_OPT_ADCONV_HDCD 1 | 
| Typedefs | |
| typedef int16_t | SampleType | 
| typedef int32_t | CoefType | 
| typedef int64_t | CoefSumType | 
| Functions | |
| int | ff_ac3_encode_init (AVCodecContext *avctx) | 
| int | ff_ac3_encode_close (AVCodecContext *avctx) | 
| Finalize encoding and free any memory allocated by the encoder. | |
| int | ff_ac3_validate_metadata (AC3EncodeContext *s) | 
| Validate metadata options as set by AVOption system. | |
| void | ff_ac3_adjust_frame_size (AC3EncodeContext *s) | 
| Adjust the frame size to make the average bit rate match the target bit rate. | |
| void | ff_ac3_compute_coupling_strategy (AC3EncodeContext *s) | 
| Set the initial coupling strategy parameters prior to coupling analysis. | |
| void | ff_ac3_apply_rematrixing (AC3EncodeContext *s) | 
| Apply stereo rematrixing to coefficients based on rematrixing flags. | |
| void | ff_ac3_process_exponents (AC3EncodeContext *s) | 
| Calculate final exponents from the supplied MDCT coefficients and exponent shift. | |
| int | ff_ac3_compute_bit_allocation (AC3EncodeContext *s) | 
| void | ff_ac3_group_exponents (AC3EncodeContext *s) | 
| Group exponents. | |
| void | ff_ac3_quantize_mantissas (AC3EncodeContext *s) | 
| Quantize mantissas using coefficients, exponents, and bit allocation pointers. | |
| void | ff_ac3_output_frame (AC3EncodeContext *s, unsigned char *frame) | 
| Write the frame to the output bitstream. | |
| void | ff_ac3_fixed_mdct_end (AC3EncodeContext *s) | 
| void | ff_ac3_float_mdct_end (AC3EncodeContext *s) | 
| Finalize MDCT and free allocated memory. | |
| int | ff_ac3_fixed_mdct_init (AC3EncodeContext *s) | 
| int | ff_ac3_float_mdct_init (AC3EncodeContext *s) | 
| Initialize MDCT tables. | |
| int | ff_ac3_fixed_allocate_sample_buffers (AC3EncodeContext *s) | 
| int | ff_ac3_float_allocate_sample_buffers (AC3EncodeContext *s) | 
| int | ff_ac3_fixed_encode_frame (AVCodecContext *avctx, AVPacket *avpkt, const AVFrame *frame, int *got_packet_ptr) | 
| int | ff_ac3_float_encode_frame (AVCodecContext *avctx, AVPacket *avpkt, const AVFrame *frame, int *got_packet_ptr) | 
| Variables | |
| const uint64_t | ff_ac3_channel_layouts [19] | 
| List of supported channel layouts. | |
Definition in file ac3enc.h.
| #define AC3ENC_OPT_ADCONV_HDCD 1 | 
| #define AC3ENC_OPT_ADCONV_STANDARD 0 | 
Definition at line 86 of file ac3enc.h.
Referenced by dprint_options(), and ff_ac3_validate_metadata().
| #define AC3ENC_OPT_AUTO -1 | 
| #define AC3ENC_OPT_DOWNMIX_LORO 2 | 
| #define AC3ENC_OPT_DOWNMIX_LTRT 1 | 
| #define AC3ENC_OPT_LARGE_ROOM 1 | 
| #define AC3ENC_OPT_MODE_OFF 1 | 
| #define AC3ENC_OPT_MODE_ON 2 | 
| #define AC3ENC_OPT_NONE -1 | 
| #define AC3ENC_OPT_NOT_INDICATED 0 | 
Definition at line 77 of file ac3enc.h.
Referenced by dprint_options(), and ff_ac3_validate_metadata().
| #define AC3ENC_OPT_OFF 0 | 
| #define AC3ENC_OPT_ON 1 | 
| #define AC3ENC_OPT_SMALL_ROOM 2 | 
| #define AC3ENC_PARAM (AV_OPT_FLAG_AUDIO_PARAM | AV_OPT_FLAG_ENCODING_PARAM) | 
| #define COEF_MAX 16777215 | 
| #define COEF_MIN -16777215 | 
| #define MAC_COEF | ( | d, | |||
| a, | |||||
| b | ) | MAC64(d,a,b) | 
| #define NEW_CPL_COORD_THRESHOLD 503317 | 
| #define OFFSET | ( | param | ) | offsetof(AC3EncodeContext, options.param) | 
| typedef int64_t CoefSumType | 
| typedef int16_t SampleType | 
| void ff_ac3_adjust_frame_size | ( | AC3EncodeContext * | s | ) | 
Adjust the frame size to make the average bit rate match the target bit rate.
This is only needed for 11025, 22050, and 44100 sample rates or any E-AC-3.
| s | AC-3 encoder private context | 
Definition at line 182 of file ac3enc.c.
Referenced by encode_frame().
| void ff_ac3_apply_rematrixing | ( | AC3EncodeContext * | s | ) | 
Apply stereo rematrixing to coefficients based on rematrixing flags.
| s | AC-3 encoder private context | 
Definition at line 271 of file ac3enc.c.
Referenced by encode_frame().
| int ff_ac3_compute_bit_allocation | ( | AC3EncodeContext * | s | ) | 
| void ff_ac3_compute_coupling_strategy | ( | AC3EncodeContext * | s | ) | 
Set the initial coupling strategy parameters prior to coupling analysis.
| s | AC-3 encoder private context | 
Definition at line 200 of file ac3enc.c.
Referenced by encode_frame().
| int ff_ac3_encode_close | ( | AVCodecContext * | avctx | ) | 
Finalize encoding and free any memory allocated by the encoder.
| avctx | Codec context | 
Definition at line 2016 of file ac3enc.c.
Referenced by ff_ac3_encode_init().
| int ff_ac3_encode_init | ( | AVCodecContext * | avctx | ) | 
| int ff_ac3_fixed_allocate_sample_buffers | ( | AC3EncodeContext * | s | ) | 
Referenced by ff_ac3_encode_init().
| int ff_ac3_fixed_encode_frame | ( | AVCodecContext * | avctx, | |
| AVPacket * | avpkt, | |||
| const AVFrame * | frame, | |||
| int * | got_packet_ptr | |||
| ) | 
| void ff_ac3_fixed_mdct_end | ( | AC3EncodeContext * | s | ) | 
Referenced by ff_ac3_encode_init().
| int ff_ac3_fixed_mdct_init | ( | AC3EncodeContext * | s | ) | 
Referenced by ff_ac3_encode_init().
| int ff_ac3_float_allocate_sample_buffers | ( | AC3EncodeContext * | s | ) | 
Referenced by ff_ac3_encode_init().
| int ff_ac3_float_encode_frame | ( | AVCodecContext * | avctx, | |
| AVPacket * | avpkt, | |||
| const AVFrame * | frame, | |||
| int * | got_packet_ptr | |||
| ) | 
| void ff_ac3_float_mdct_end | ( | AC3EncodeContext * | s | ) | 
Finalize MDCT and free allocated memory.
| s | AC-3 encoder private context | 
Definition at line 55 of file ac3enc_float.c.
Referenced by ff_ac3_encode_init().
| int ff_ac3_float_mdct_init | ( | AC3EncodeContext * | s | ) | 
Initialize MDCT tables.
| s | AC-3 encoder private context | 
Definition at line 68 of file ac3enc_float.c.
Referenced by ff_ac3_encode_init().
| void ff_ac3_group_exponents | ( | AC3EncodeContext * | s | ) | 
Group exponents.
3 delta-encoded exponents are in each 7-bit group. The number of groups varies depending on exponent strategy and bandwidth.
| s | AC-3 encoder private context | 
Definition at line 578 of file ac3enc.c.
Referenced by encode_frame().
| void ff_ac3_output_frame | ( | AC3EncodeContext * | s, | |
| unsigned char * | frame | |||
| ) | 
Write the frame to the output bitstream.
| s | AC-3 encoder private context | |
| frame | output data buffer | 
Definition at line 1660 of file ac3enc.c.
Referenced by encode_frame().
| void ff_ac3_process_exponents | ( | AC3EncodeContext * | s | ) | 
Calculate final exponents from the supplied MDCT coefficients and exponent shift.
Extract exponents from MDCT coefficients, calculate exponent strategies, and encode final exponents.
| s | AC-3 encoder private context | 
Definition at line 636 of file ac3enc.c.
Referenced by encode_frame().
| void ff_ac3_quantize_mantissas | ( | AC3EncodeContext * | s | ) | 
Quantize mantissas using coefficients, exponents, and bit allocation pointers.
| s | AC-3 encoder private context | 
Definition at line 1299 of file ac3enc.c.
Referenced by encode_frame().
| int ff_ac3_validate_metadata | ( | AC3EncodeContext * | s | ) | 
Validate metadata options as set by AVOption system.
These values can optionally be changed per-frame.
| s | AC-3 encoder private context | 
Definition at line 1832 of file ac3enc.c.
Referenced by encode_frame(), and validate_options().
| const uint64_t ff_ac3_channel_layouts[19] | 
 1.5.8
 1.5.8