FFmpeg
|
#include "libavutil/channel_layout.h"
#include "libavutil/mem_internal.h"
#include "dcadec.h"
#include "dcadata.h"
#include "dcahuff.h"
#include "dca_syncwords.h"
#include "bytestream.h"
Go to the source code of this file.
Data Structures | |
struct | LBRChunk |
Macros | |
#define | BITSTREAM_READER_LE |
#define | AMP_MAX 56 |
Functions | |
av_cold void | ff_dca_lbr_init_tables (void) |
static int | parse_lfe_24 (DCALbrDecoder *s) |
static int | parse_lfe_16 (DCALbrDecoder *s) |
static int | parse_lfe_chunk (DCALbrDecoder *s, LBRChunk *chunk) |
static int | parse_vlc (GetBitContext *s, VLC *vlc, int max_depth) |
static int | parse_tonal (DCALbrDecoder *s, int group) |
static int | parse_tonal_chunk (DCALbrDecoder *s, LBRChunk *chunk) |
static int | parse_tonal_group (DCALbrDecoder *s, LBRChunk *chunk) |
static int | ensure_bits (GetBitContext *s, int n) |
Check point to ensure that enough bits are left. More... | |
static int | parse_scale_factors (DCALbrDecoder *s, uint8_t *scf) |
static int | parse_st_code (GetBitContext *s, int min_v) |
static int | parse_grid_1_chunk (DCALbrDecoder *s, LBRChunk *chunk, int ch1, int ch2) |
static int | parse_grid_1_sec_ch (DCALbrDecoder *s, int ch2) |
static void | parse_grid_3 (DCALbrDecoder *s, int ch1, int ch2, int sb, int flag) |
static float | lbr_rand (DCALbrDecoder *s, int sb) |
static void | parse_ch (DCALbrDecoder *s, int ch, int sb, int quant_level, int flag) |
Parse time samples for one subband, filling truncated samples with randomness. More... | |
static int | parse_ts (DCALbrDecoder *s, int ch1, int ch2, int start_sb, int end_sb, int flag) |
static void | convert_lpc (float *coeff, const int *codes) |
Convert from reflection coefficients to direct form coefficients. More... | |
static int | parse_lpc (DCALbrDecoder *s, int ch1, int ch2, int start_sb, int end_sb) |
static int | parse_high_res_grid (DCALbrDecoder *s, LBRChunk *chunk, int ch1, int ch2) |
static int | parse_grid_2 (DCALbrDecoder *s, int ch1, int ch2, int start_sb, int end_sb, int flag) |
static int | parse_ts1_chunk (DCALbrDecoder *s, LBRChunk *chunk, int ch1, int ch2) |
static int | parse_ts2_chunk (DCALbrDecoder *s, LBRChunk *chunk, int ch1, int ch2) |
static int | init_sample_rate (DCALbrDecoder *s) |
static int | alloc_sample_buffer (DCALbrDecoder *s) |
static int | parse_decoder_init (DCALbrDecoder *s, GetByteContext *gb) |
int | ff_dca_lbr_parse (DCALbrDecoder *s, uint8_t *data, DCAExssAsset *asset) |
static void | decode_grid (DCALbrDecoder *s, int ch1, int ch2) |
Reconstruct high-frequency resolution grid from first and third grids. More... | |
static void | random_ts (DCALbrDecoder *s, int ch1, int ch2) |
Fill unallocated subbands with randomness. More... | |
static void | predict (float *samples, const float *coeff, int nsamples) |
static void | synth_lpc (DCALbrDecoder *s, int ch1, int ch2, int sb) |
static void | filter_ts (DCALbrDecoder *s, int ch1, int ch2) |
static void | decode_part_stereo (DCALbrDecoder *s, int ch1, int ch2) |
Modulate by interpolated partial stereo coefficients. More... | |
static void | synth_tones (DCALbrDecoder *s, int ch, float *values, int group, int group_sf, int synth_idx) |
Synthesise tones in the given group for the given tonal subframe. More... | |
static void | base_func_synth (DCALbrDecoder *s, int ch, float *values, int sf) |
Synthesise all tones in all groups for the given residual subframe. More... | |
static void | transform_channel (DCALbrDecoder *s, int ch, float *output) |
int | ff_dca_lbr_filter_frame (DCALbrDecoder *s, AVFrame *frame) |
av_cold void | ff_dca_lbr_flush (DCALbrDecoder *s) |
av_cold int | ff_dca_lbr_init (DCALbrDecoder *s) |
av_cold void | ff_dca_lbr_close (DCALbrDecoder *s) |
Variables | |
static const int8_t | channel_reorder_nolfe [7][5] |
static const int8_t | channel_reorder_lfe [7][5] |
static const uint8_t | lfe_index [7] |
static const uint8_t | channel_counts [7] |
static const uint16_t | channel_layouts [7] |
static float | cos_tab [256] |
static float | lpc_tab [16] |
enum LBRFlags |
enum LBRChunkTypes |
av_cold void ff_dca_lbr_init_tables | ( | void | ) |
Definition at line 127 of file dca_lbr.c.
Referenced by dcadec_init_static().
|
static |
Definition at line 138 of file dca_lbr.c.
Referenced by parse_lfe_chunk().
|
static |
Definition at line 192 of file dca_lbr.c.
Referenced by parse_lfe_chunk().
|
static |
Definition at line 242 of file dca_lbr.c.
Referenced by ff_dca_lbr_parse().
|
inlinestatic |
Definition at line 266 of file dca_lbr.c.
Referenced by parse_grid_1_chunk(), parse_grid_1_sec_ch(), parse_grid_2(), parse_grid_3(), parse_scale_factors(), parse_st_code(), and parse_tonal().
|
static |
Definition at line 275 of file dca_lbr.c.
Referenced by parse_tonal_chunk(), and parse_tonal_group().
|
static |
Definition at line 357 of file dca_lbr.c.
Referenced by ff_dca_lbr_parse().
|
static |
Definition at line 390 of file dca_lbr.c.
Referenced by ff_dca_lbr_parse().
|
static |
Check point to ensure that enough bits are left.
Aborts decoding by skipping to the end of chunk otherwise.
Definition at line 408 of file dca_lbr.c.
Referenced by parse_ch(), parse_grid_1_chunk(), parse_grid_1_sec_ch(), parse_grid_2(), parse_grid_3(), parse_lpc(), parse_scale_factors(), and parse_ts().
|
static |
Definition at line 420 of file dca_lbr.c.
Referenced by parse_grid_1_chunk(), parse_grid_1_sec_ch(), and parse_high_res_grid().
|
static |
Definition at line 490 of file dca_lbr.c.
Referenced by parse_grid_1_chunk().
|
static |
Definition at line 504 of file dca_lbr.c.
Referenced by ff_dca_lbr_parse().
|
static |
Definition at line 572 of file dca_lbr.c.
Referenced by parse_ts2_chunk().
|
static |
Definition at line 598 of file dca_lbr.c.
Referenced by parse_ts().
|
static |
Definition at line 620 of file dca_lbr.c.
Referenced by parse_ch(), and random_ts().
|
static |
Parse time samples for one subband, filling truncated samples with randomness.
Definition at line 629 of file dca_lbr.c.
Referenced by parse_ts().
|
static |
Definition at line 703 of file dca_lbr.c.
Referenced by parse_high_res_grid(), parse_ts1_chunk(), and parse_ts2_chunk().
|
static |
Convert from reflection coefficients to direct form coefficients.
Definition at line 766 of file dca_lbr.c.
Referenced by parse_lpc().
Definition at line 782 of file dca_lbr.c.
Referenced by parse_high_res_grid(), and parse_ts1_chunk().
|
static |
Definition at line 803 of file dca_lbr.c.
Referenced by ff_dca_lbr_parse().
|
static |
Definition at line 865 of file dca_lbr.c.
Referenced by parse_ts1_chunk(), and parse_ts2_chunk().
|
static |
Definition at line 907 of file dca_lbr.c.
Referenced by ff_dca_lbr_parse().
|
static |
Definition at line 925 of file dca_lbr.c.
Referenced by ff_dca_lbr_parse().
|
static |
Definition at line 948 of file dca_lbr.c.
Referenced by parse_decoder_init().
|
static |
Definition at line 986 of file dca_lbr.c.
Referenced by parse_decoder_init().
|
static |
Definition at line 1010 of file dca_lbr.c.
Referenced by ff_dca_lbr_parse().
int ff_dca_lbr_parse | ( | DCALbrDecoder * | s, |
uint8_t * | data, | ||
DCAExssAsset * | asset | ||
) |
Definition at line 1162 of file dca_lbr.c.
Referenced by dcadec_decode_frame().
|
static |
Reconstruct high-frequency resolution grid from first and third grids.
Definition at line 1399 of file dca_lbr.c.
Referenced by ff_dca_lbr_filter_frame().
|
static |
Fill unallocated subbands with randomness.
Definition at line 1436 of file dca_lbr.c.
Referenced by ff_dca_lbr_filter_frame().
|
static |
Definition at line 1472 of file dca_lbr.c.
Referenced by synth_lpc().
|
static |
Definition at line 1484 of file dca_lbr.c.
Referenced by filter_ts().
|
static |
Definition at line 1506 of file dca_lbr.c.
Referenced by ff_dca_lbr_filter_frame().
|
static |
Modulate by interpolated partial stereo coefficients.
Definition at line 1591 of file dca_lbr.c.
Referenced by ff_dca_lbr_filter_frame().
|
static |
Synthesise tones in the given group for the given tonal subframe.
Definition at line 1617 of file dca_lbr.c.
Referenced by base_func_synth().
|
static |
Synthesise all tones in all groups for the given residual subframe.
Definition at line 1681 of file dca_lbr.c.
Referenced by transform_channel().
|
static |
Definition at line 1695 of file dca_lbr.c.
Referenced by ff_dca_lbr_filter_frame().
int ff_dca_lbr_filter_frame | ( | DCALbrDecoder * | s, |
AVFrame * | frame | ||
) |
Definition at line 1729 of file dca_lbr.c.
Referenced by dcadec_decode_frame().
av_cold void ff_dca_lbr_flush | ( | DCALbrDecoder * | s | ) |
Definition at line 1789 of file dca_lbr.c.
Referenced by dcadec_flush(), and parse_decoder_init().
av_cold int ff_dca_lbr_init | ( | DCALbrDecoder * | s | ) |
Definition at line 1813 of file dca_lbr.c.
Referenced by dcadec_init().
av_cold void ff_dca_lbr_close | ( | DCALbrDecoder * | s | ) |
Definition at line 1822 of file dca_lbr.c.
Referenced by dcadec_close().
|
static |
Definition at line 86 of file dca_lbr.c.
Referenced by encode_init(), and ff_dca_lbr_filter_frame().
|
static |
Definition at line 96 of file dca_lbr.c.
Referenced by encode_init(), and ff_dca_lbr_filter_frame().
|
static |
Definition at line 106 of file dca_lbr.c.
Referenced by ff_dca_lbr_filter_frame(), and lfe_downsample().
|
static |
Definition at line 110 of file dca_lbr.c.
Referenced by asink_query_formats(), ff_dca_lbr_filter_frame(), and get_stream_info().
|
static |
Definition at line 114 of file dca_lbr.c.
Referenced by asink_query_formats(), channelmap_query_formats(), ff_add_channel_layout(), ff_channel_layouts_unref(), ff_dca_lbr_filter_frame(), ff_make_format64_list(), ff_set_common_channel_layouts(), main(), merge_channel_layouts(), pcm_bluray_parse_header(), print_codec(), and query_formats().
|
static |
Definition at line 124 of file dca_lbr.c.
Referenced by eval_lpcenv_or_interp(), ff_dca_lbr_init_tables(), get_cos(), and synth_tones().
|
static |
Definition at line 125 of file dca_lbr.c.
Referenced by convert_lpc(), and ff_dca_lbr_init_tables().