FFmpeg
|
#include <stdio.h>
#include <stddef.h>
#include <math.h>
#include <string.h>
#include "libavutil/crc.h"
#include "libavutil/opt.h"
#include "internal.h"
#include "aac_ac3_parser.h"
#include "ac3_parser.h"
#include "ac3dec.h"
Go to the source code of this file.
Data Structures | |
struct | mant_groups |
Grouped mantissas for 3-level 5-level and 11-level quantization. More... | |
Functions | |
static int | symmetric_dequant (int code, int levels) |
Symmetrical Dequantization reference: Section 7.3.3 Expansion of Mantissas for Symmetrical Quantization Tables 7.19 to 7.23. More... | |
static av_cold void | ac3_tables_init (void) |
static av_cold int | ac3_decode_init (AVCodecContext *avctx) |
AVCodec initialization. More... | |
static int | ac3_parse_header (AC3DecodeContext *s) |
Parse the 'sync info' and 'bit stream info' from the AC-3 bitstream. More... | |
static int | parse_frame_header (AC3DecodeContext *s) |
Common function to parse AC-3 or E-AC-3 frame header. More... | |
static void | set_downmix_coeffs (AC3DecodeContext *s) |
Set stereo downmixing coefficients based on frame header info. More... | |
static int | decode_exponents (GetBitContext *gbc, int exp_strategy, int ngrps, uint8_t absexp, int8_t *dexps) |
Decode the grouped exponents according to exponent strategy. More... | |
static void | calc_transform_coeffs_cpl (AC3DecodeContext *s) |
Generate transform coefficients for each coupled channel in the coupling range using the coupling coefficients and coupling coordinates. More... | |
static void | ac3_decode_transform_coeffs_ch (AC3DecodeContext *s, int ch_index, mant_groups *m) |
Decode the transform coefficients for a particular channel reference: Section 7.3 Quantization and Decoding of Mantissas. More... | |
static void | remove_dithering (AC3DecodeContext *s) |
Remove random dithering from coupling range coefficients with zero-bit mantissas for coupled channels which do not use dithering. More... | |
static void | decode_transform_coeffs_ch (AC3DecodeContext *s, int blk, int ch, mant_groups *m) |
static void | decode_transform_coeffs (AC3DecodeContext *s, int blk) |
Decode the transform coefficients. More... | |
static void | do_rematrixing (AC3DecodeContext *s) |
Stereo rematrixing. More... | |
static void | do_imdct (AC3DecodeContext *s, int channels) |
Inverse MDCT Transform. More... | |
static void | ac3_upmix_delay (AC3DecodeContext *s) |
Upmix delay samples from stereo to original channel layout. More... | |
static void | decode_band_structure (GetBitContext *gbc, int blk, int eac3, int ecpl, int start_subband, int end_subband, const uint8_t *default_band_struct, int *num_bands, uint8_t *band_sizes) |
Decode band structure for coupling, spectral extension, or enhanced coupling. More... | |
static int | decode_audio_block (AC3DecodeContext *s, int blk) |
Decode a single audio block from the AC-3 bitstream. More... | |
static int | ac3_decode_frame (AVCodecContext *avctx, void *data, int *got_frame_ptr, AVPacket *avpkt) |
Decode a single AC-3 frame. More... | |
static av_cold int | ac3_decode_end (AVCodecContext *avctx) |
Uninitialize the AC-3 decoder. More... | |
Variables | |
static uint8_t | ungroup_3_in_7_bits_tab [128][3] |
table for ungrouping 3 values in 7 bits. More... | |
static int | b1_mantissas [32][3] |
tables for ungrouping mantissas More... | |
static int | b2_mantissas [128][3] |
static int | b3_mantissas [8] |
static int | b4_mantissas [128][2] |
static int | b5_mantissas [16] |
static const uint8_t | quantization_tab [16] |
Quantization table: levels for symmetric. More... | |
static float | dynamic_range_tab [256] |
dynamic range table. More... | |
static const float | gain_levels [9] |
Adjustments in dB gain. More... | |
static const uint8_t | ac3_default_coeffs [8][5][2] |
Table for default stereo downmixing coefficients reference: Section 7.8.2 Downmixing Into Two Channels. More... | |
static const AVOption | options [] |
static const AVClass | ac3_decoder_class |
AVCodec | ff_ac3_decoder |
static const AVClass | eac3_decoder_class |
AVCodec | ff_eac3_decoder |
Function Documentation
|
static |
Uninitialize the AC-3 decoder.
Definition at line 1421 of file libavcodec/ac3dec.c.
|
static |
Decode a single AC-3 frame.
Definition at line 1264 of file libavcodec/ac3dec.c.
|
static |
AVCodec initialization.
Definition at line 160 of file libavcodec/ac3dec.c.
|
static |
Decode the transform coefficients for a particular channel reference: Section 7.3 Quantization and Decoding of Mantissas.
Definition at line 426 of file libavcodec/ac3dec.c.
Referenced by decode_transform_coeffs_ch().
|
static |
Parse the 'sync info' and 'bit stream info' from the AC-3 bitstream.
GetBitContext within AC3DecodeContext must point to the start of the synchronized AC-3 bitstream.
Definition at line 201 of file libavcodec/ac3dec.c.
Referenced by parse_frame_header().
Definition at line 108 of file libavcodec/ac3dec.c.
Referenced by ac3_decode_init().
|
static |
Upmix delay samples from stereo to original channel layout.
Definition at line 625 of file libavcodec/ac3dec.c.
Referenced by decode_audio_block().
|
static |
Generate transform coefficients for each coupled channel in the coupling range using the coupling coefficients and coupling coordinates.
reference: Section 7.4.3 Coupling Coordinate Format
Definition at line 385 of file libavcodec/ac3dec.c.
Referenced by decode_transform_coeffs().
|
static |
Decode a single audio block from the AC-3 bitstream.
Definition at line 718 of file libavcodec/ac3dec.c.
Referenced by ac3_decode_frame().
|
static |
Decode band structure for coupling, spectral extension, or enhanced coupling.
The band structure defines how many subbands are in each band. For each subband in the range, 1 means it is combined with the previous band, and 0 means that it starts a new band.
- Parameters
-
[in] gbc bit reader context [in] blk block number [in] eac3 flag to indicate E-AC-3 [in] ecpl flag to indicate enhanced coupling [in] start_subband subband number for start of range [in] end_subband subband number for end of range [in] default_band_struct default band structure table [out] num_bands number of bands (optionally NULL) [out] band_sizes array containing the number of bins in each band (optionally NULL)
Definition at line 666 of file libavcodec/ac3dec.c.
Referenced by decode_audio_block().
|
static |
Decode the grouped exponents according to exponent strategy.
reference: Section 7.1.3 Exponent Decoding
Definition at line 348 of file libavcodec/ac3dec.c.
Referenced by decode_audio_block().
|
static |
Decode the transform coefficients.
Definition at line 537 of file libavcodec/ac3dec.c.
Referenced by decode_audio_block().
|
static |
Definition at line 517 of file libavcodec/ac3dec.c.
Referenced by decode_transform_coeffs().
|
inlinestatic |
Inverse MDCT Transform.
Convert frequency domain coefficients to time-domain audio samples. reference: Section 7.9.4 Transformation Equations
Definition at line 597 of file libavcodec/ac3dec.c.
Referenced by decode_audio_block().
|
static |
Stereo rematrixing.
reference: Section 7.5.4 Rematrixing : Decoding Technique
Definition at line 573 of file libavcodec/ac3dec.c.
Referenced by decode_audio_block().
|
static |
Common function to parse AC-3 or E-AC-3 frame header.
Definition at line 241 of file libavcodec/ac3dec.c.
Referenced by ac3_decode_frame().
|
static |
Remove random dithering from coupling range coefficients with zero-bit mantissas for coupled channels which do not use dithering.
reference: Section 7.3.4 Dither for Zero Bit Mantissas (bap=0)
Definition at line 504 of file libavcodec/ac3dec.c.
Referenced by decode_transform_coeffs().
|
static |
Set stereo downmixing coefficients based on frame header info.
reference: Section 7.8.2 Downmixing Into Two Channels
Definition at line 301 of file libavcodec/ac3dec.c.
Referenced by ac3_decode_frame().
|
inlinestatic |
Symmetrical Dequantization reference: Section 7.3.3 Expansion of Mantissas for Symmetrical Quantization Tables 7.19 to 7.23.
Definition at line 100 of file libavcodec/ac3dec.c.
Referenced by ac3_tables_init().
Variable Documentation
|
static |
Definition at line 1444 of file libavcodec/ac3dec.c.
|
static |
Table for default stereo downmixing coefficients reference: Section 7.8.2 Downmixing Into Two Channels.
Definition at line 83 of file libavcodec/ac3dec.c.
Referenced by set_downmix_coeffs().
|
static |
tables for ungrouping mantissas
Definition at line 48 of file libavcodec/ac3dec.c.
Referenced by ac3_decode_transform_coeffs_ch(), and ac3_tables_init().
|
static |
Definition at line 49 of file libavcodec/ac3dec.c.
Referenced by ac3_decode_transform_coeffs_ch(), and ac3_tables_init().
|
static |
Definition at line 50 of file libavcodec/ac3dec.c.
Referenced by ac3_decode_transform_coeffs_ch(), and ac3_tables_init().
|
static |
Definition at line 51 of file libavcodec/ac3dec.c.
Referenced by ac3_decode_transform_coeffs_ch(), and ac3_tables_init().
|
static |
Definition at line 52 of file libavcodec/ac3dec.c.
Referenced by ac3_decode_transform_coeffs_ch(), and ac3_tables_init().
|
static |
dynamic range table.
converts codes to scale factors.
Definition at line 64 of file libavcodec/ac3dec.c.
Referenced by ac3_tables_init(), and decode_audio_block().
|
static |
Definition at line 1467 of file libavcodec/ac3dec.c.
AVCodec ff_ac3_decoder |
Definition at line 1451 of file libavcodec/ac3dec.c.
AVCodec ff_eac3_decoder |
Definition at line 1474 of file libavcodec/ac3dec.c.
|
static |
Adjustments in dB gain.
Definition at line 67 of file libavcodec/ac3dec.c.
Referenced by ac3_decode_frame(), and set_downmix_coeffs().
|
static |
Definition at line 1432 of file libavcodec/ac3dec.c.
|
static |
Quantization table: levels for symmetric.
bits for asymmetric. reference: Table 7.18 Mapping of bap to Quantizer
Definition at line 58 of file libavcodec/ac3dec.c.
Referenced by ac3_decode_transform_coeffs_ch().
|
static |
table for ungrouping 3 values in 7 bits.
used for exponents and bap=2 mantissas
Definition at line 45 of file libavcodec/ac3dec.c.
Referenced by ac3_tables_init(), and decode_exponents().
Generated on Mon Nov 18 2024 06:52:04 for FFmpeg by 1.8.11