|
FFmpeg
|
#include <math.h>#include <stddef.h>#include <stdio.h>#include "libavutil/channel_layout.h"#include "libavutil/common.h"#include "libavutil/float_dsp.h"#include "libavutil/internal.h"#include "libavutil/intreadwrite.h"#include "libavutil/mathematics.h"#include "libavutil/samplefmt.h"#include "avcodec.h"#include "fft.h"#include "get_bits.h"#include "dcadata.h"#include "dcahuff.h"#include "dca.h"#include "mathops.h"#include "synth_filter.h"#include "dcadsp.h"#include "fmtconvert.h"#include "internal.h"Go to the source code of this file.
Data Structures | |
| struct | BitAlloc |
| Bit allocation. More... | |
| struct | DCAContext |
Macros | |
| #define | DCA_PRIM_CHANNELS_MAX (7) |
| #define | DCA_SUBBANDS (64) |
| #define | DCA_ABITS_MAX (32) /* Should be 28 */ |
| #define | DCA_SUBSUBFRAMES_MAX (4) |
| #define | DCA_SUBFRAMES_MAX (16) |
| #define | DCA_BLOCKS_MAX (16) |
| #define | DCA_LFE_MAX (3) |
| #define | DCA_CHSETS_MAX (4) |
| #define | DCA_CHSET_CHANS_MAX (8) |
| #define | DCA_CORE_EXTS (DCA_EXT_XCH | DCA_EXT_XXCH | DCA_EXT_X96) |
| #define | DCA_DOLBY 101 /* FIXME */ |
| #define | DCA_CHANNEL_BITS 6 |
| #define | DCA_CHANNEL_MASK 0x3F |
| #define | DCA_LFE 0x80 |
| #define | HEADER_SIZE 14 |
| #define | DCA_MAX_FRAME_SIZE 16384 |
| #define | DCA_MAX_EXSS_HEADER_SIZE 4096 |
| #define | DCA_BUFFER_PADDING_SIZE 1024 |
| #define | MIX_REAR1(samples, s1, rs, coef) |
| #define | MIX_REAR2(samples, s1, s2, rs, coef) |
| #define | MIX_FRONT3(samples, coef) |
| #define | DOWNMIX_TO_STEREO(op1, op2) |
Functions | |
| static av_always_inline int | get_bitalloc (GetBitContext *gb, BitAlloc *ba, int idx) |
| static av_cold void | dca_init_vlcs (void) |
| static void | get_array (GetBitContext *gb, int *dst, int len, int bits) |
| static int | dca_xxch2index (DCAContext *s, int xxch_ch) |
| static int | dca_parse_audio_coding_header (DCAContext *s, int base_channel, int xxch) |
| static int | dca_parse_frame_header (DCAContext *s) |
| static int | get_scale (GetBitContext *gb, int level, int value, int log2range) |
| static int | dca_subframe_header (DCAContext *s, int base_channel, int block_index) |
| static void | qmf_32_subbands (DCAContext *s, int chans, float samples_in[32][8], float *samples_out, float scale) |
| static void | lfe_interpolation_fir (DCAContext *s, int decimation_select, int num_deci_sample, float *samples_in, float *samples_out, float scale) |
| static void | dca_downmix (float **samples, int srcfmt, int downmix_coef[DCA_PRIM_CHANNELS_MAX][2], const int8_t *channel_mapping) |
| static int | decode_blockcode (int code, int levels, int32_t *values) |
| static int | decode_blockcodes (int code1, int code2, int levels, int32_t *values) |
| static void | int8x8_fmul_int32 (float *dst, const int8_t *src, int scale) |
| static int | dca_subsubframe (DCAContext *s, int base_channel, int block_index) |
| static int | dca_filter_channels (DCAContext *s, int block_index) |
| static int | dca_subframe_footer (DCAContext *s, int base_channel) |
| static int | dca_decode_block (DCAContext *s, int base_channel, int block_index) |
| Decode a dca frame block. | |
| static int | dca_exss_mask2count (int mask) |
| Return the number of channels in an ExSS speaker mask (HD) | |
| static void | dca_exss_skip_mix_coeffs (GetBitContext *gb, int channels, int out_ch) |
| Skip mixing coefficients of a single mix out configuration (HD) | |
| static int | dca_exss_parse_asset_header (DCAContext *s) |
| Parse extension substream asset header (HD) | |
| static int | dca_xbr_parse_frame (DCAContext *s) |
| static int | dca_xxch_decode_frame (DCAContext *s) |
| static void | dca_exss_parse_header (DCAContext *s) |
| Parse extension substream header (HD) | |
| static int | dca_decode_frame (AVCodecContext *avctx, void *data, int *got_frame_ptr, AVPacket *avpkt) |
| Main frame decoding function FIXME add arguments. | |
| static av_cold int | dca_decode_init (AVCodecContext *avctx) |
| DCA initialization. | |
| static av_cold int | dca_decode_end (AVCodecContext *avctx) |
Variables | |
| static const uint32_t | map_xxch_to_native [28] |
| static const int | dca_ext_audio_descr_mask [] |
| static const uint64_t | dca_core_channel_layout [] |
| static const int8_t | dca_lfe_index [] |
| static const int8_t | dca_channel_reorder_lfe [][9] |
| static const int8_t | dca_channel_reorder_lfe_xch [][9] |
| static const int8_t | dca_channel_reorder_nolfe [][9] |
| static const int8_t | dca_channel_reorder_nolfe_xch [][9] |
| static BitAlloc | dca_bitalloc_index |
| indexes for samples VLC select | |
| static BitAlloc | dca_tmode |
| transition mode VLCs | |
| static BitAlloc | dca_scalefactor |
| scalefactor VLCs | |
| static BitAlloc | dca_smpl_bitalloc [11] |
| samples VLCs | |
| static const uint16_t | dca_vlc_offs [] |
| static const uint8_t | abits_sizes [7] = { 7, 10, 12, 13, 15, 17, 19 } |
| static const uint8_t | abits_levels [7] = { 3, 5, 7, 9, 13, 17, 25 } |
| static const AVProfile | profiles [] |
| AVCodec | ff_dca_decoder |
| #define DCA_PRIM_CHANNELS_MAX (7) |
Definition at line 54 of file dcadec.c.
Referenced by dca_downmix(), and dca_parse_audio_coding_header().
| #define DCA_SUBBANDS (64) |
Definition at line 55 of file dcadec.c.
Referenced by dca_filter_channels(), dca_parse_audio_coding_header(), dca_subsubframe(), and dca_xbr_parse_frame().
| #define DCA_CHSETS_MAX (4) |
Definition at line 61 of file dcadec.c.
Referenced by dca_xbr_parse_frame().
| #define DCA_CHSET_CHANS_MAX (8) |
Definition at line 62 of file dcadec.c.
Referenced by dca_xbr_parse_frame().
| #define DCA_CORE_EXTS (DCA_EXT_XCH | DCA_EXT_XXCH | DCA_EXT_X96) |
Definition at line 186 of file dcadec.c.
Referenced by dca_exss_parse_asset_header().
| #define DCA_CHANNEL_MASK 0x3F |
Definition at line 317 of file dcadec.c.
Referenced by dca_subframe_header().
| #define DCA_LFE 0x80 |
Definition at line 319 of file dcadec.c.
Referenced by dca_filter_channels(), and dca_parse_frame_header().
| #define DCA_MAX_FRAME_SIZE 16384 |
Definition at line 323 of file dcadec.c.
Referenced by dca_decode_frame().
| #define DCA_MAX_EXSS_HEADER_SIZE 4096 |
Definition at line 324 of file dcadec.c.
Referenced by dca_decode_frame().
| #define MIX_REAR1 | ( | samples, | |
| s1, | |||
| rs, | |||
| coef | |||
| ) |
Definition at line 1166 of file dcadec.c.
Referenced by dca_downmix().
| #define MIX_FRONT3 | ( | samples, | |
| coef | |||
| ) |
| #define DOWNMIX_TO_STEREO | ( | op1, | |
| op2 | |||
| ) |
Definition at line 1181 of file dcadec.c.
Referenced by dca_downmix().
| enum DCAMode |
| enum DCAExSSSpeakerMask |
| enum DCAXxchSpeakerMask |
| enum DCAExtensionMask |
|
static |
Definition at line 341 of file dcadec.c.
Referenced by dca_subframe_header(), dca_subsubframe(), and get_scale().
Definition at line 480 of file dcadec.c.
Referenced by dca_decode_init().
|
inlinestatic |
Definition at line 535 of file dcadec.c.
Referenced by dca_parse_audio_coding_header(), and dca_xbr_parse_frame().
|
inlinestatic |
Definition at line 541 of file dcadec.c.
Referenced by dca_parse_audio_coding_header().
|
static |
Definition at line 553 of file dcadec.c.
Referenced by dca_decode_frame(), dca_parse_frame_header(), and dca_xxch_decode_frame().
|
static |
Definition at line 703 of file dcadec.c.
Referenced by dca_decode_frame().
|
inlinestatic |
Definition at line 806 of file dcadec.c.
Referenced by dca_subframe_header().
|
static |
Definition at line 823 of file dcadec.c.
Referenced by dca_decode_block().
|
static |
Definition at line 1110 of file dcadec.c.
Referenced by dca_filter_channels().
|
static |
Definition at line 1133 of file dcadec.c.
Referenced by dca_filter_channels().
|
static |
Definition at line 1187 of file dcadec.c.
Referenced by dca_filter_channels().
|
static |
Definition at line 1250 of file dcadec.c.
Referenced by decode_blockcodes().
|
static |
Definition at line 1264 of file dcadec.c.
Referenced by dca_subsubframe(), and dca_xbr_parse_frame().
|
inlinestatic |
Definition at line 1275 of file dcadec.c.
Referenced by dca_subsubframe().
|
static |
Definition at line 1284 of file dcadec.c.
Referenced by dca_decode_block().
|
static |
Definition at line 1436 of file dcadec.c.
Referenced by dca_decode_frame().
|
static |
Definition at line 1469 of file dcadec.c.
Referenced by dca_decode_block().
|
static |
Decode a dca frame block.
| s | pointer to the DCAContext |
Definition at line 1501 of file dcadec.c.
Referenced by dca_decode_frame(), and dca_xxch_decode_frame().
|
static |
Return the number of channels in an ExSS speaker mask (HD)
Definition at line 1549 of file dcadec.c.
Referenced by dca_exss_parse_asset_header(), and dca_exss_parse_header().
|
static |
Skip mixing coefficients of a single mix out configuration (HD)
Definition at line 1567 of file dcadec.c.
Referenced by dca_exss_parse_asset_header().
|
static |
Parse extension substream asset header (HD)
Definition at line 1581 of file dcadec.c.
Referenced by dca_exss_parse_header().
|
static |
Definition at line 1729 of file dcadec.c.
Referenced by dca_exss_parse_header().
|
static |
Definition at line 1890 of file dcadec.c.
Referenced by dca_decode_frame(), and dca_exss_parse_header().
|
static |
Parse extension substream header (HD)
Definition at line 1946 of file dcadec.c.
Referenced by dca_decode_frame().
|
static |
|
static |
DCA initialization.
| avctx | pointer to the AVCodecContext |
|
static |
|
static |
Definition at line 129 of file dcadec.c.
Referenced by dca_decode_frame().
|
static |
Definition at line 174 of file dcadec.c.
Referenced by dca_decode_frame().
|
static |
Definition at line 197 of file dcadec.c.
Referenced by dca_decode_frame().
|
static |
Definition at line 234 of file dcadec.c.
Referenced by dca_decode_frame().
|
static |
Definition at line 238 of file dcadec.c.
Referenced by dca_decode_frame().
|
static |
Definition at line 257 of file dcadec.c.
Referenced by dca_decode_frame().
|
static |
Definition at line 276 of file dcadec.c.
Referenced by dca_decode_frame().
|
static |
Definition at line 295 of file dcadec.c.
Referenced by dca_decode_frame().
|
static |
|
static |
Definition at line 471 of file dcadec.c.
Referenced by dca_init_vlcs().
|
static |
Definition at line 1271 of file dcadec.c.
Referenced by dca_subsubframe(), and dca_xbr_parse_frame().
|
static |
Definition at line 1272 of file dcadec.c.
Referenced by dca_subsubframe(), and dca_xbr_parse_frame().
|
static |
| AVCodec ff_dca_decoder |
1.8.2