libavcodec/ac3enc.h File Reference

AC-3 encoder & E-AC-3 encoder common header. More...

#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.


Detailed Description

AC-3 encoder & E-AC-3 encoder common header.

Definition in file ac3enc.h.


Define Documentation

#define AC3_NAME (  )     ff_ac3_fixed_ ## x

Definition at line 62 of file ac3enc.h.

#define AC3ENC_OPT_ADCONV_HDCD   1

Definition at line 87 of file ac3enc.h.

Referenced by dprint_options().

#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

Definition at line 74 of file ac3enc.h.

Referenced by set_bandwidth().

#define AC3ENC_OPT_DOWNMIX_LORO   2

Definition at line 85 of file ac3enc.h.

Referenced by dprint_options().

#define AC3ENC_OPT_DOWNMIX_LTRT   1

Definition at line 84 of file ac3enc.h.

Referenced by dprint_options().

#define AC3ENC_OPT_LARGE_ROOM   1

Definition at line 82 of file ac3enc.h.

Referenced by dprint_options().

#define AC3ENC_OPT_MODE_OFF   1

Definition at line 79 of file ac3enc.h.

Referenced by dprint_options().

#define AC3ENC_OPT_MODE_ON   2

Definition at line 78 of file ac3enc.h.

Referenced by dprint_options().

#define AC3ENC_OPT_NONE   -1

Definition at line 73 of file ac3enc.h.

Referenced by ff_ac3_validate_metadata().

#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

Definition at line 75 of file ac3enc.h.

Referenced by ff_ac3_validate_metadata().

#define AC3ENC_OPT_ON   1

Definition at line 76 of file ac3enc.h.

Referenced by ff_ac3_validate_metadata().

#define AC3ENC_OPT_SMALL_ROOM   2

Definition at line 83 of file ac3enc.h.

Referenced by dprint_options().

#define AC3ENC_PARAM   (AV_OPT_FLAG_AUDIO_PARAM | AV_OPT_FLAG_ENCODING_PARAM)

Definition at line 46 of file ac3enc.h.

#define AC3ENC_TYPE_AC3   1

Definition at line 49 of file ac3enc.h.

#define AC3ENC_TYPE_AC3_FIXED   0

Definition at line 48 of file ac3enc.h.

#define AC3ENC_TYPE_EAC3   2

Definition at line 50 of file ac3enc.h.

#define COEF_MAX   16777215

Definition at line 65 of file ac3enc.h.

Referenced by calc_cpl_coord(), and clip_coefficients().

#define COEF_MIN   -16777215

Definition at line 64 of file ac3enc.h.

Referenced by clip_coefficients().

#define CONFIG_AC3ENC_FLOAT   0

Definition at line 42 of file ac3enc.h.

#define MAC_COEF ( d,
a,
 )     MAC64(d,a,b)

Definition at line 63 of file ac3enc.h.

Referenced by apply_channel_coupling().

#define NEW_CPL_COORD_THRESHOLD   503317

Definition at line 66 of file ac3enc.h.

Referenced by apply_channel_coupling().

#define OFFSET ( param   )     offsetof(AC3EncodeContext, options.param)

Definition at line 45 of file ac3enc.h.


Typedef Documentation

typedef int64_t CoefSumType

Definition at line 69 of file ac3enc.h.

typedef int32_t CoefType

Definition at line 68 of file ac3enc.h.

Definition at line 67 of file ac3enc.h.


Function Documentation

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.

Parameters:
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.

Parameters:
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  ) 

Definition at line 1145 of file ac3enc.c.

Referenced by encode_frame().

void ff_ac3_compute_coupling_strategy ( AC3EncodeContext s  ) 

Set the initial coupling strategy parameters prior to coupling analysis.

Parameters:
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.

Parameters:
avctx Codec context

Definition at line 2016 of file ac3enc.c.

Referenced by ff_ac3_encode_init().

int ff_ac3_encode_init ( AVCodecContext avctx  ) 

Definition at line 2423 of file ac3enc.c.

Referenced by ac3_fixed_encode_init().

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.

Parameters:
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.

Parameters:
s AC-3 encoder private context
Returns:
0 on success, negative error code on failure

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.

Parameters:
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.

Parameters:
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.

Parameters:
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.

Parameters:
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.

Parameters:
s AC-3 encoder private context

Definition at line 1832 of file ac3enc.c.

Referenced by encode_frame(), and validate_options().


Variable Documentation

List of supported channel layouts.

Definition at line 80 of file ac3enc.c.


Generated on Fri Oct 26 02:50:03 2012 for FFmpeg by  doxygen 1.5.8