FFmpeg
Macros | Variables
ac3tab.c File Reference
#include "libavutil/channel_layout.h"
#include "libavutil/mem.h"
#include "avcodec.h"
#include "ac3tab.h"

Go to the source code of this file.

Macros

#define COMMON_CHANNEL_MAP
 

Variables

const uint16_t ff_ac3_frame_size_tab [38][3]
 Possible frame sizes. More...
 
const uint8_t ff_ac3_channels_tab [8]
 Map audio coding mode (acmod) to number of full-bandwidth channels. More...
 
const uint16_t avpriv_ac3_channel_layout_tab [8]
 Map audio coding mode (acmod) to channel layout mask. More...
 
const uint8_t ff_ac3_enc_channel_map [8][2][6]
 Table to remap channels from SMPTE order to AC-3 order. More...
 
const uint8_t ff_ac3_dec_channel_map [8][2][6]
 Table to remap channels from AC-3 order to SMPTE order. More...
 
const int ff_ac3_sample_rate_tab [] = { 48000, 44100, 32000, 0 }
 
const uint16_t ff_ac3_bitrate_tab [19]
 
const uint8_t ff_ac3_rematrix_band_tab [5] = { 13, 25, 37, 61, 253 }
 Table of bin locations for rematrixing bands reference: Section 7.5.2 Rematrixing : Frequency Band Definitions. More...
 
const uint8_t ff_eac3_default_cpl_band_struct [18]
 Table E2.16 Default Coupling Banding Structure. More...
 
const int16_t ff_ac3_window [AC3_WINDOW_SIZE/2]
 
const uint8_t ff_ac3_log_add_tab [260]
 
const uint16_t ff_ac3_hearing_threshold_tab [AC3_CRITICAL_BANDS][3]
 
const uint8_t ff_ac3_bap_tab [64]
 
const uint8_t ff_ac3_slow_decay_tab [4]
 
const uint8_t ff_ac3_fast_decay_tab [4]
 
const uint16_t ff_ac3_slow_gain_tab [4]
 
const uint16_t ff_ac3_db_per_bit_tab [4]
 
const int16_t ff_ac3_floor_tab [8]
 
const uint16_t ff_ac3_fast_gain_tab [8]
 
const uint16_t ff_eac3_default_chmap [8]
 Default channel map for a dependent substream defined by acmod. More...
 
const uint64_t ff_eac3_custom_channel_map_locations [16][2]
 

Detailed Description

tables taken directly from the AC-3 spec.

Definition in file ac3tab.c.

Macro Definition Documentation

◆ COMMON_CHANNEL_MAP

#define COMMON_CHANNEL_MAP
Value:
{ { 0, 1, }, { 0, 1, 2, } },\
{ { 0, }, { 0, 1, } },\
{ { 0, 1, }, { 0, 1, 2, } },\
{ { 0, 2, 1, }, { 0, 2, 1, 3, } },\
{ { 0, 1, 2, }, { 0, 1, 3, 2, } },\
{ { 0, 2, 1, 3, }, { 0, 2, 1, 4, 3, } },

Definition at line 100 of file ac3tab.c.

Variable Documentation

◆ ff_ac3_frame_size_tab

const uint16_t ff_ac3_frame_size_tab[38][3]

Possible frame sizes.

from ATSC A/52 Table 5.18 Frame Size Code Table.

Definition at line 37 of file ac3tab.c.

Referenced by validate_options().

◆ ff_ac3_channels_tab

const uint8_t ff_ac3_channels_tab[8]
Initial value:
= {
2, 1, 2, 3, 3, 4, 4, 5
}

Map audio coding mode (acmod) to number of full-bandwidth channels.

from ATSC A/52 Table 5.8 Audio Coding Mode

Definition at line 82 of file ac3tab.c.

Referenced by ac3_decode_frame().

◆ avpriv_ac3_channel_layout_tab

const uint16_t avpriv_ac3_channel_layout_tab[8]
Initial value:

Map audio coding mode (acmod) to channel layout mask.

Definition at line 89 of file ac3tab.c.

Referenced by ac3_decode_frame(), mov_read_dac3(), and mov_read_dec3().

◆ ff_ac3_enc_channel_map

const uint8_t ff_ac3_enc_channel_map[8][2][6]
Initial value:
= {
{ { 0, 1, 2, 3, }, { 0, 1, 3, 4, 2, } },
{ { 0, 2, 1, 3, 4, }, { 0, 2, 1, 4, 5, 3 } },
}

Table to remap channels from SMPTE order to AC-3 order.

[channel_mode][lfe][ch]

Definition at line 112 of file ac3tab.c.

Referenced by set_channel_info().

◆ ff_ac3_dec_channel_map

const uint8_t ff_ac3_dec_channel_map[8][2][6]
Initial value:
= {
{ { 0, 1, 2, 3, }, { 0, 1, 4, 2, 3, } },
{ { 0, 2, 1, 3, 4, }, { 0, 2, 1, 5, 3, 4 } },
}

Table to remap channels from AC-3 order to SMPTE order.

[channel_mode][lfe][ch]

Definition at line 122 of file ac3tab.c.

Referenced by ac3_decode_frame().

◆ ff_ac3_sample_rate_tab

const int ff_ac3_sample_rate_tab[] = { 48000, 44100, 32000, 0 }

Definition at line 129 of file ac3tab.c.

Referenced by validate_options().

◆ ff_ac3_bitrate_tab

const uint16_t ff_ac3_bitrate_tab[19]
Initial value:
= {
32, 40, 48, 56, 64, 80, 96, 112, 128,
160, 192, 224, 256, 320, 384, 448, 512, 576, 640
}

Definition at line 132 of file ac3tab.c.

Referenced by validate_options().

◆ ff_ac3_rematrix_band_tab

const uint8_t ff_ac3_rematrix_band_tab[5] = { 13, 25, 37, 61, 253 }

Table of bin locations for rematrixing bands reference: Section 7.5.2 Rematrixing : Frequency Band Definitions.

Definition at line 141 of file ac3tab.c.

Referenced by compute_rematrixing_strategy(), do_rematrixing(), and ff_ac3_apply_rematrixing().

◆ ff_eac3_default_cpl_band_struct

const uint8_t ff_eac3_default_cpl_band_struct[18]
Initial value:
= {
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1
}

Table E2.16 Default Coupling Banding Structure.

Definition at line 146 of file ac3tab.c.

Referenced by coupling_strategy(), output_audio_block(), and set_bandwidth().

◆ ff_ac3_window

const int16_t ff_ac3_window[AC3_WINDOW_SIZE/2]

Definition at line 153 of file ac3tab.c.

Referenced by ff_ac3_fixed_mdct_init().

◆ ff_ac3_log_add_tab

const uint8_t ff_ac3_log_add_tab[260]
Initial value:
= {
0x40,0x3f,0x3e,0x3d,0x3c,0x3b,0x3a,0x39,0x38,0x37,
0x36,0x35,0x34,0x34,0x33,0x32,0x31,0x30,0x2f,0x2f,
0x2e,0x2d,0x2c,0x2c,0x2b,0x2a,0x29,0x29,0x28,0x27,
0x26,0x26,0x25,0x24,0x24,0x23,0x23,0x22,0x21,0x21,
0x20,0x20,0x1f,0x1e,0x1e,0x1d,0x1d,0x1c,0x1c,0x1b,
0x1b,0x1a,0x1a,0x19,0x19,0x18,0x18,0x17,0x17,0x16,
0x16,0x15,0x15,0x15,0x14,0x14,0x13,0x13,0x13,0x12,
0x12,0x12,0x11,0x11,0x11,0x10,0x10,0x10,0x0f,0x0f,
0x0f,0x0e,0x0e,0x0e,0x0d,0x0d,0x0d,0x0d,0x0c,0x0c,
0x0c,0x0c,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x0a,
0x0a,0x09,0x09,0x09,0x09,0x09,0x08,0x08,0x08,0x08,
0x08,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x06,
0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x05,0x05,
0x05,0x05,0x05,0x05,0x04,0x04,0x04,0x04,0x04,0x04,
0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,
0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x02,
0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x01,0x01,
0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
}

Definition at line 188 of file ac3tab.c.

Referenced by ff_ac3_bit_alloc_calc_psd().

◆ ff_ac3_hearing_threshold_tab

const uint16_t ff_ac3_hearing_threshold_tab[AC3_CRITICAL_BANDS][3]

Definition at line 217 of file ac3tab.c.

Referenced by ff_ac3_bit_alloc_calc_mask().

◆ ff_ac3_bap_tab

const uint8_t ff_ac3_bap_tab[64]
Initial value:
= {
0, 1, 1, 1, 1, 1, 2, 2, 3, 3,
3, 4, 4, 5, 5, 6, 6, 6, 6, 7,
7, 7, 7, 8, 8, 8, 8, 9, 9, 9,
9, 10, 10, 10, 10, 11, 11, 11, 11, 12,
12, 12, 12, 13, 13, 13, 13, 14, 14, 14,
14, 14, 14, 14, 14, 15, 15, 15, 15, 15,
15, 15, 15, 15,
}

Definition at line 270 of file ac3tab.c.

Referenced by bit_alloc(), and decode_audio_block().

◆ ff_ac3_slow_decay_tab

const uint8_t ff_ac3_slow_decay_tab[4]
Initial value:
={
0x0f, 0x11, 0x13, 0x15,
}

Definition at line 280 of file ac3tab.c.

Referenced by bit_alloc_init(), decode_audio_block(), and ff_eac3_parse_header().

◆ ff_ac3_fast_decay_tab

const uint8_t ff_ac3_fast_decay_tab[4]
Initial value:
={
0x3f, 0x53, 0x67, 0x7b,
}

Definition at line 284 of file ac3tab.c.

Referenced by bit_alloc_init(), decode_audio_block(), and ff_eac3_parse_header().

◆ ff_ac3_slow_gain_tab

const uint16_t ff_ac3_slow_gain_tab[4]
Initial value:
= {
0x540, 0x4d8, 0x478, 0x410,
}

Definition at line 288 of file ac3tab.c.

Referenced by bit_alloc_init(), decode_audio_block(), and ff_eac3_parse_header().

◆ ff_ac3_db_per_bit_tab

const uint16_t ff_ac3_db_per_bit_tab[4]
Initial value:
= {
0x000, 0x700, 0x900, 0xb00,
}

Definition at line 292 of file ac3tab.c.

Referenced by bit_alloc_init(), decode_audio_block(), and ff_eac3_parse_header().

◆ ff_ac3_floor_tab

const int16_t ff_ac3_floor_tab[8]
Initial value:
= {
0x2f0, 0x2b0, 0x270, 0x230, 0x1f0, 0x170, 0x0f0, 0xf800,
}

Definition at line 296 of file ac3tab.c.

Referenced by bit_alloc_init(), decode_audio_block(), and ff_eac3_parse_header().

◆ ff_ac3_fast_gain_tab

const uint16_t ff_ac3_fast_gain_tab[8]
Initial value:
= {
0x080, 0x100, 0x180, 0x200, 0x280, 0x300, 0x380, 0x400,
}

Definition at line 300 of file ac3tab.c.

Referenced by bit_alloc_masking(), and decode_audio_block().

◆ ff_eac3_default_chmap

const uint16_t ff_eac3_default_chmap[8]

◆ ff_eac3_custom_channel_map_locations

const uint64_t ff_eac3_custom_channel_map_locations[16][2]
AC3_CHMAP_R_SUR
@ AC3_CHMAP_R_SUR
Definition: ac3tab.h:66
AV_CH_TOP_FRONT_CENTER
#define AV_CH_TOP_FRONT_CENTER
Definition: channel_layout.h:62
AV_CH_LOW_FREQUENCY_2
#define AV_CH_LOW_FREQUENCY_2
Definition: channel_layout.h:73
AV_CH_LAYOUT_MONO
#define AV_CH_LAYOUT_MONO
Definition: channel_layout.h:85
AV_CH_TOP_FRONT_RIGHT
#define AV_CH_TOP_FRONT_RIGHT
Definition: channel_layout.h:63
AV_CH_TOP_FRONT_LEFT
#define AV_CH_TOP_FRONT_LEFT
Definition: channel_layout.h:61
AV_CH_WIDE_LEFT
#define AV_CH_WIDE_LEFT
Definition: channel_layout.h:69
AV_CH_SURROUND_DIRECT_RIGHT
#define AV_CH_SURROUND_DIRECT_RIGHT
Definition: channel_layout.h:72
AV_CH_WIDE_RIGHT
#define AV_CH_WIDE_RIGHT
Definition: channel_layout.h:70
AV_CH_TOP_BACK_LEFT
#define AV_CH_TOP_BACK_LEFT
Definition: channel_layout.h:64
AV_CH_BACK_LEFT
#define AV_CH_BACK_LEFT
Definition: channel_layout.h:53
AC3_CHMAP_R
@ AC3_CHMAP_R
Definition: ac3tab.h:64
AV_CH_LAYOUT_STEREO
#define AV_CH_LAYOUT_STEREO
Definition: channel_layout.h:86
AC3_CHMAP_C_SUR
@ AC3_CHMAP_C_SUR
Definition: ac3tab.h:67
AV_CH_LOW_FREQUENCY
#define AV_CH_LOW_FREQUENCY
Definition: channel_layout.h:52
COMMON_CHANNEL_MAP
#define COMMON_CHANNEL_MAP
Definition: ac3tab.c:100
AV_CH_LAYOUT_2_1
#define AV_CH_LAYOUT_2_1
Definition: channel_layout.h:88
AV_CH_TOP_CENTER
#define AV_CH_TOP_CENTER
Definition: channel_layout.h:60
AV_CH_FRONT_CENTER
#define AV_CH_FRONT_CENTER
Definition: channel_layout.h:51
AV_CH_FRONT_LEFT_OF_CENTER
#define AV_CH_FRONT_LEFT_OF_CENTER
Definition: channel_layout.h:55
AC3_CHMAP_L_SUR
@ AC3_CHMAP_L_SUR
Definition: ac3tab.h:65
AV_CH_TOP_BACK_RIGHT
#define AV_CH_TOP_BACK_RIGHT
Definition: channel_layout.h:66
AV_CH_FRONT_RIGHT_OF_CENTER
#define AV_CH_FRONT_RIGHT_OF_CENTER
Definition: channel_layout.h:56
AC3_CHMAP_C
@ AC3_CHMAP_C
Definition: ac3tab.h:63
AV_CH_LAYOUT_5POINT0
#define AV_CH_LAYOUT_5POINT0
Definition: channel_layout.h:95
AV_CH_BACK_CENTER
#define AV_CH_BACK_CENTER
Definition: channel_layout.h:57
AV_CH_FRONT_LEFT
#define AV_CH_FRONT_LEFT
Definition: channel_layout.h:49
AV_CH_SIDE_RIGHT
#define AV_CH_SIDE_RIGHT
Definition: channel_layout.h:59
AV_CH_LAYOUT_SURROUND
#define AV_CH_LAYOUT_SURROUND
Definition: channel_layout.h:89
AV_CH_SURROUND_DIRECT_LEFT
#define AV_CH_SURROUND_DIRECT_LEFT
Definition: channel_layout.h:71
AV_CH_FRONT_RIGHT
#define AV_CH_FRONT_RIGHT
Definition: channel_layout.h:50
AC3_CHMAP_L
@ AC3_CHMAP_L
Definition: ac3tab.h:62
AV_CH_LAYOUT_4POINT0
#define AV_CH_LAYOUT_4POINT0
Definition: channel_layout.h:91
AV_CH_BACK_RIGHT
#define AV_CH_BACK_RIGHT
Definition: channel_layout.h:54
AV_CH_LAYOUT_2_2
#define AV_CH_LAYOUT_2_2
Definition: channel_layout.h:93
AV_CH_SIDE_LEFT
#define AV_CH_SIDE_LEFT
Definition: channel_layout.h:58