|
FFmpeg
|
#include "libavutil/avassert.h"#include "libavutil/channel_layout.h"#include "libavutil/common.h"#include "libavutil/ffmath.h"#include "libavutil/mem.h"#include "libavutil/mem_internal.h"#include "libavutil/opt.h"#include "libavutil/thread.h"#include "libavutil/tx.h"#include "avcodec.h"#include "codec_internal.h"#include "dcaadpcm.h"#include "dcamath.h"#include "dca_core.h"#include "dcadata.h"#include "dcaenc.h"#include "encode.h"#include "put_bits.h"Go to the source code of this file.
Data Structures | |
| struct | CompressionOptions |
| struct | DCAEncContext |
Macros | |
| #define | MAX_CHANNELS 6 |
| #define | DCA_MAX_FRAME_SIZE 16384 |
| #define | DCA_HEADER_SIZE 13 |
| #define | DCA_LFE_SAMPLES 8 |
| #define | DCAENC_SUBBANDS 32 |
| #define | SUBFRAMES 1 |
| #define | SUBSUBFRAMES 2 |
| #define | SUBBAND_SAMPLES (SUBFRAMES * SUBSUBFRAMES * 8) |
| #define | AUBANDS 25 |
| #define | COS_T(x) |
| #define | USED_1ABITS 1 |
| #define | USED_26ABITS 4 |
| #define | DCAENC_FLAGS AV_OPT_FLAG_ENCODING_PARAM | AV_OPT_FLAG_AUDIO_PARAM |
Typedefs | |
| typedef void(* | walk_band_t) (DCAEncContext *c, int band1, int band2, int f, int32_t spectrum1, int32_t spectrum2, int channel, int32_t *arg) |
Functions | |
| static double | hom (double f) |
| static double | gammafilter (int i, double f) |
| static int | subband_bufer_alloc (DCAEncContext *c) |
| static void | subband_bufer_free (DCAEncContext *c) |
| static av_cold void | create_enc_table (uint16_t dst[][2], unsigned count, const uint8_t(**src_tablep)[2]) |
| static av_cold void | dcaenc_init_static_tables (void) |
| static av_cold int | encode_init (AVCodecContext *avctx) |
| static av_cold int | encode_close (AVCodecContext *avctx) |
| static void | subband_transform (DCAEncContext *c, const int32_t *input) |
| static void | lfe_downsample (DCAEncContext *c, const int32_t *input) |
| static uint32_t | dca_vlc_calc_alloc_bits (const int values[], uint8_t n, uint8_t sel) |
| static void | dca_vlc_enc_alloc (PutBitContext *pb, const int values[], uint8_t n, uint8_t sel) |
| static uint32_t | dca_vlc_calc_quant_bits (const int values[], uint8_t n, uint8_t sel, uint8_t table) |
| static void | dca_vlc_enc_quant (PutBitContext *pb, const int values[], uint8_t n, uint8_t sel, uint8_t table) |
| static int32_t | get_cb (DCAEncContext *c, int32_t in) |
| static int32_t | add_cb (DCAEncContext *c, int32_t a, int32_t b) |
| static void | calc_power (DCAEncContext *c, const int32_t in[2 *256], int32_t power[256]) |
| static void | adjust_jnd (DCAEncContext *c, const int32_t in[512], int32_t out_cb[256]) |
| static void | walk_band_low (DCAEncContext *c, int band, int channel, walk_band_t walk, int32_t *arg) |
| static void | walk_band_high (DCAEncContext *c, int band, int channel, walk_band_t walk, int32_t *arg) |
| static void | update_band_masking (DCAEncContext *c, int band1, int band2, int f, int32_t spectrum1, int32_t spectrum2, int channel, int32_t *arg) |
| static void | calc_masking (DCAEncContext *c, const int32_t *input) |
| static int32_t | find_peak (DCAEncContext *c, const int32_t *in, int len) |
| static void | find_peaks (DCAEncContext *c) |
| static void | adpcm_analysis (DCAEncContext *c) |
| static int32_t | get_step_size (DCAEncContext *c, int ch, int band) |
| static int | calc_one_scale (DCAEncContext *c, int32_t peak_cb, int abits, softfloat *quant) |
| static void | quantize_adpcm_subband (DCAEncContext *c, int ch, int band) |
| static void | quantize_adpcm (DCAEncContext *c) |
| static void | quantize_pcm (DCAEncContext *c) |
| static void | accumulate_huff_bit_consumption (int abits, int32_t *quantized, uint32_t *result) |
| static uint32_t | set_best_code (uint32_t vlc_bits[DCA_CODE_BOOKS][7], uint32_t clc_bits[DCA_CODE_BOOKS], int32_t res[DCA_CODE_BOOKS]) |
| static uint32_t | set_best_abits_code (int abits[DCAENC_SUBBANDS], int bands, int32_t *res) |
| static int | init_quantization_noise (DCAEncContext *c, int noise, int forbid_zero) |
| static void | assign_bits (DCAEncContext *c) |
| static void | shift_history (DCAEncContext *c, const int32_t *input) |
| static void | fill_in_adpcm_bufer (DCAEncContext *c) |
| static void | calc_lfe_scales (DCAEncContext *c) |
| static void | put_frame_header (DCAEncContext *c) |
| static void | put_primary_audio_header (DCAEncContext *c) |
| static void | put_subframe_samples (DCAEncContext *c, int ss, int band, int ch) |
| static void | put_subframe (DCAEncContext *c, int subframe) |
| static int | encode_frame (AVCodecContext *avctx, AVPacket *avpkt, const AVFrame *frame, int *got_packet_ptr) |
Variables | |
| static uint16_t | bitalloc_12_table [DCA_BITALLOC_12_COUNT][12+1][2] |
| static uint16_t | bitalloc_table [DCA_NUM_BITALLOC_CODES][2] |
| static const uint16_t(*[DCA_CODE_BOOKS][8] | bitalloc_tables )[2] |
| static const int | snr_fudge = 128 |
| static const AVOption | options [] |
| static const AVClass | dcaenc_class |
| static const FFCodecDefault | defaults [] |
| const FFCodec | ff_dca_encoder |
| #define DCA_MAX_FRAME_SIZE 16384 |
Definition at line 44 of file dcaenc.c.
Referenced by encode_init().
| #define DCA_LFE_SAMPLES 8 |
Definition at line 46 of file dcaenc.c.
Referenced by find_peaks(), lfe_downsample(), and put_subframe().
| #define DCAENC_SUBBANDS 32 |
Definition at line 48 of file dcaenc.c.
Referenced by encode_init(), put_primary_audio_header(), put_subframe(), set_best_abits_code(), and subband_bufer_alloc().
| #define SUBFRAMES 1 |
Definition at line 49 of file dcaenc.c.
Referenced by acb_search(), comp_lpc_coeff(), dss_sp_decode_one_frame(), dss_sp_unpack_coeffs(), dss_sp_update_state(), encode_frame(), ff_g723_1_lsp_interpolate(), formant_postfilter(), g723_1_decode_frame(), g723_1_encode_frame(), generate_noise(), pack_bitstream(), perceptual_filter(), put_primary_audio_header(), and unpack_bitstream().
| #define SUBSUBFRAMES 2 |
Definition at line 50 of file dcaenc.c.
Referenced by calc_masking(), and put_subframe().
| #define SUBBAND_SAMPLES (SUBFRAMES * SUBSUBFRAMES * 8) |
Definition at line 51 of file dcaenc.c.
Referenced by accumulate_huff_bit_consumption(), adpcm_analysis(), encode_init(), find_peaks(), put_frame_header(), quantize_adpcm_subband(), quantize_pcm(), subband_bufer_alloc(), and subband_transform().
| #define AUBANDS 25 |
Definition at line 52 of file dcaenc.c.
Referenced by adjust_jnd(), and encode_init().
| #define COS_T | ( | x | ) |
Definition at line 54 of file dcaenc.c.
Referenced by calc_power(), and subband_transform().
| #define USED_1ABITS 1 |
Definition at line 675 of file dcaenc.c.
Referenced by assign_bits(), and init_quantization_noise().
| #define USED_26ABITS 4 |
Definition at line 676 of file dcaenc.c.
Referenced by assign_bits(), and init_quantization_noise().
| #define DCAENC_FLAGS AV_OPT_FLAG_ENCODING_PARAM | AV_OPT_FLAG_AUDIO_PARAM |
Definition at line 113 of file dcaenc.c.
Referenced by encode_init().
Definition at line 123 of file dcaenc.c.
Referenced by encode_init().
|
static |
Definition at line 132 of file dcaenc.c.
Referenced by encode_init().
|
static |
Definition at line 153 of file dcaenc.c.
Referenced by encode_close().
|
static |
Definition at line 167 of file dcaenc.c.
Referenced by dcaenc_init_static_tables().
|
static |
Definition at line 184 of file dcaenc.c.
Referenced by encode_init().
|
static |
|
static |
|
static |
Definition at line 364 of file dcaenc.c.
Referenced by encode_frame().
|
static |
Definition at line 414 of file dcaenc.c.
Referenced by encode_frame().
|
static |
Definition at line 444 of file dcaenc.c.
Referenced by set_best_abits_code().
|
static |
Definition at line 452 of file dcaenc.c.
Referenced by put_subframe().
|
static |
Definition at line 460 of file dcaenc.c.
Referenced by accumulate_huff_bit_consumption().
|
static |
Definition at line 469 of file dcaenc.c.
Referenced by put_subframe_samples().
|
static |
Definition at line 477 of file dcaenc.c.
Referenced by calc_power(), and find_peak().
|
static |
Definition at line 489 of file dcaenc.c.
Referenced by adjust_jnd(), and calc_power().
|
static |
Definition at line 499 of file dcaenc.c.
Referenced by adjust_jnd().
|
static |
Definition at line 516 of file dcaenc.c.
Referenced by calc_masking().
|
static |
Definition at line 549 of file dcaenc.c.
Referenced by calc_masking().
|
static |
Definition at line 564 of file dcaenc.c.
Referenced by calc_masking().
|
static |
Definition at line 579 of file dcaenc.c.
Referenced by calc_masking().
|
static |
Definition at line 589 of file dcaenc.c.
Referenced by encode_frame().
|
inlinestatic |
Definition at line 624 of file dcaenc.c.
Referenced by adpcm_analysis(), config_input(), and find_peaks().
|
static |
Definition at line 636 of file dcaenc.c.
Referenced by encode_frame().
|
static |
Definition at line 650 of file dcaenc.c.
Referenced by encode_frame().
|
inlinestatic |
Definition at line 678 of file dcaenc.c.
Referenced by fill_in_adpcm_bufer(), and quantize_adpcm_subband().
|
static |
Definition at line 690 of file dcaenc.c.
Referenced by calc_lfe_scales(), init_quantization_noise(), and quantize_adpcm_subband().
|
inlinestatic |
Definition at line 723 of file dcaenc.c.
Referenced by quantize_adpcm().
|
static |
Definition at line 740 of file dcaenc.c.
Referenced by init_quantization_noise().
|
static |
Definition at line 750 of file dcaenc.c.
Referenced by init_quantization_noise().
|
static |
Definition at line 767 of file dcaenc.c.
Referenced by init_quantization_noise().
|
static |
Definition at line 776 of file dcaenc.c.
Referenced by init_quantization_noise().
|
static |
Definition at line 817 of file dcaenc.c.
Referenced by init_quantization_noise().
|
static |
Definition at line 845 of file dcaenc.c.
Referenced by assign_bits().
|
static |
Definition at line 924 of file dcaenc.c.
Referenced by encode_frame().
|
static |
Definition at line 966 of file dcaenc.c.
Referenced by encode_frame().
|
static |
Definition at line 978 of file dcaenc.c.
Referenced by encode_frame().
|
static |
Definition at line 1014 of file dcaenc.c.
Referenced by encode_frame().
|
static |
Definition at line 1020 of file dcaenc.c.
Referenced by encode_frame().
|
static |
Definition at line 1103 of file dcaenc.c.
Referenced by encode_frame().
|
static |
Definition at line 1150 of file dcaenc.c.
Referenced by put_subframe().
|
static |
Definition at line 1184 of file dcaenc.c.
Referenced by encode_frame().
|
static |
|
static |
Definition at line 162 of file dcaenc.c.
Referenced by dca_vlc_calc_alloc_bits(), dca_vlc_enc_alloc(), and dcaenc_init_static_tables().
|
static |
Definition at line 164 of file dcaenc.c.
Referenced by dcaenc_init_static_tables().
|
static |
Definition at line 165 of file dcaenc.c.
Referenced by dca_vlc_calc_quant_bits(), dca_vlc_enc_quant(), and dcaenc_init_static_tables().
|
static |
Definition at line 674 of file dcaenc.c.
Referenced by assign_bits().
|
static |
|
static |
| const FFCodec ff_dca_encoder |