History

avcodec/dcaenc: move channel reordering tables to dcaenc.h

DCA core decoder no longer uses fixed tables for channel reordering. Move them into private encoder header (and drop ff_dca_ prefix).

foo86 committed 10 years ago

Commit b286ff61 parent de28e734 files · +45 −50Browse files

Unified · Split

4 files
  1. libavcodec/dcadata.c +0 −42
  2. libavcodec/dcadata.h +0 −5
  3. libavcodec/dcaenc.c +3 −3
  4. libavcodec/dcaenc.h +42 −0
libavcodec/dcadata.c+0−42
@@ -8730,48 +8730,6 @@ const int32_t ff_dca_sampling_freqs[16] = { · 8729 unmodified lines
8730 176400, 352800, 12000, 24000, 48000, 96000, 192000, 384000,8730 176400, 352800, 12000, 24000, 48000, 96000, 192000, 384000,
8731};8731};
8732 8732
8733const int8_t ff_dca_lfe_index[16] = {
8734 1, 2, 2, 2, 2, 3, 2, 3, 2, 3, 2, 3, 1, 3, 2, 3
8735};
8736
8737const int8_t ff_dca_channel_reorder_lfe[16][9] = {
8738 { 0, -1, -1, -1, -1, -1, -1, -1, -1 },
8739 { 0, 1, -1, -1, -1, -1, -1, -1, -1 },
8740 { 0, 1, -1, -1, -1, -1, -1, -1, -1 },
8741 { 0, 1, -1, -1, -1, -1, -1, -1, -1 },
8742 { 0, 1, -1, -1, -1, -1, -1, -1, -1 },
8743 { 2, 0, 1, -1, -1, -1, -1, -1, -1 },
8744 { 0, 1, 3, -1, -1, -1, -1, -1, -1 },
8745 { 2, 0, 1, 4, -1, -1, -1, -1, -1 },
8746 { 0, 1, 3, 4, -1, -1, -1, -1, -1 },
8747 { 2, 0, 1, 4, 5, -1, -1, -1, -1 },
8748 { 3, 4, 0, 1, 5, 6, -1, -1, -1 },
8749 { 2, 0, 1, 4, 5, 6, -1, -1, -1 },
8750 { 0, 6, 4, 5, 2, 3, -1, -1, -1 },
8751 { 4, 2, 5, 0, 1, 6, 7, -1, -1 },
8752 { 5, 6, 0, 1, 7, 3, 8, 4, -1 },
8753 { 4, 2, 5, 0, 1, 6, 8, 7, -1 },
8754};
8755
8756const int8_t ff_dca_channel_reorder_nolfe[16][9] = {
8757 { 0, -1, -1, -1, -1, -1, -1, -1, -1 },
8758 { 0, 1, -1, -1, -1, -1, -1, -1, -1 },
8759 { 0, 1, -1, -1, -1, -1, -1, -1, -1 },
8760 { 0, 1, -1, -1, -1, -1, -1, -1, -1 },
8761 { 0, 1, -1, -1, -1, -1, -1, -1, -1 },
8762 { 2, 0, 1, -1, -1, -1, -1, -1, -1 },
8763 { 0, 1, 2, -1, -1, -1, -1, -1, -1 },
8764 { 2, 0, 1, 3, -1, -1, -1, -1, -1 },
8765 { 0, 1, 2, 3, -1, -1, -1, -1, -1 },
8766 { 2, 0, 1, 3, 4, -1, -1, -1, -1 },
8767 { 2, 3, 0, 1, 4, 5, -1, -1, -1 },
8768 { 2, 0, 1, 3, 4, 5, -1, -1, -1 },
8769 { 0, 5, 3, 4, 1, 2, -1, -1, -1 },
8770 { 3, 2, 4, 0, 1, 5, 6, -1, -1 },
8771 { 4, 5, 0, 1, 6, 2, 7, 3, -1 },
8772 { 3, 2, 4, 0, 1, 5, 7, 6, -1 },
8773};
8774
8775const uint16_t ff_dca_vlc_offs[63] = {8733const uint16_t ff_dca_vlc_offs[63] = {
8776 0, 512, 640, 768, 1282, 1794, 2436, 3080, 3770, 4454, 5364,8734 0, 512, 640, 768, 1282, 1794, 2436, 3080, 3770, 4454, 5364,
8777 5372, 5380, 5388, 5392, 5396, 5412, 5420, 5428, 5460, 5492, 5508,8735 5372, 5380, 5388, 5392, 5396, 5412, 5420, 5428, 5460, 5492, 5508,
libavcodec/dcadata.h+0−5
@@ -73,11 +73,6 @@ extern const int32_t ff_dca_xll_band_coeff[20]; · 72 unmodified lines
73 73
74extern const int32_t ff_dca_sampling_freqs[16];74extern const int32_t ff_dca_sampling_freqs[16];
75 75
76extern const int8_t ff_dca_lfe_index[16];
77
78extern const int8_t ff_dca_channel_reorder_lfe[16][9];
79extern const int8_t ff_dca_channel_reorder_nolfe[16][9];
80
81extern const uint16_t ff_dca_vlc_offs[63];76extern const uint16_t ff_dca_vlc_offs[63];
82 77
83#endif /* AVCODEC_DCADATA_H */78#endif /* AVCODEC_DCADATA_H */
libavcodec/dcaenc.c+3−3
@@ -137,9 +137,9 @@ static int encode_init(AVCodecContext *avctx) · 136 unmodified lines
137 137
138 if (c->lfe_channel) {138 if (c->lfe_channel) {
139 c->fullband_channels--;139 c->fullband_channels--;
140 c->channel_order_tab = ff_dca_channel_reorder_lfe[c->channel_config];140 c->channel_order_tab = channel_reorder_lfe[c->channel_config];
141 } else {141 } else {
142 c->channel_order_tab = ff_dca_channel_reorder_nolfe[c->channel_config];142 c->channel_order_tab = channel_reorder_nolfe[c->channel_config];
143 }143 }
144 144
145 for (i = 0; i < 9; i++) {145 for (i = 0; i < 9; i++) {
@@ -303,7 +303,7 @@ static void subband_transform(DCAEncContext *c, const int32_t *input) · 157 unmodified lines
303static void lfe_downsample(DCAEncContext *c, const int32_t *input)303static void lfe_downsample(DCAEncContext *c, const int32_t *input)
304{304{
305 /* FIXME: make 128x LFE downsampling possible */305 /* FIXME: make 128x LFE downsampling possible */
306 const int lfech = ff_dca_lfe_index[c->channel_config];306 const int lfech = lfe_index[c->channel_config];
307 int i, j, lfes;307 int i, j, lfes;
308 int32_t hist[512];308 int32_t hist[512];
309 int32_t accum;309 int32_t accum;
libavcodec/dcaenc.h+42−0
@@ -103,4 +103,46 @@ static const int bit_consumption[27] = { · 102 unmodified lines
103 272, 288, 304, 320, 336, 352, 368,103 272, 288, 304, 320, 336, 352, 368,
104};104};
105 105
106static const int8_t lfe_index[16] = {
107 1, 2, 2, 2, 2, 3, 2, 3, 2, 3, 2, 3, 1, 3, 2, 3
108};
109
110static const int8_t channel_reorder_lfe[16][9] = {
111 { 0, -1, -1, -1, -1, -1, -1, -1, -1 },
112 { 0, 1, -1, -1, -1, -1, -1, -1, -1 },
113 { 0, 1, -1, -1, -1, -1, -1, -1, -1 },
114 { 0, 1, -1, -1, -1, -1, -1, -1, -1 },
115 { 0, 1, -1, -1, -1, -1, -1, -1, -1 },
116 { 2, 0, 1, -1, -1, -1, -1, -1, -1 },
117 { 0, 1, 3, -1, -1, -1, -1, -1, -1 },
118 { 2, 0, 1, 4, -1, -1, -1, -1, -1 },
119 { 0, 1, 3, 4, -1, -1, -1, -1, -1 },
120 { 2, 0, 1, 4, 5, -1, -1, -1, -1 },
121 { 3, 4, 0, 1, 5, 6, -1, -1, -1 },
122 { 2, 0, 1, 4, 5, 6, -1, -1, -1 },
123 { 0, 6, 4, 5, 2, 3, -1, -1, -1 },
124 { 4, 2, 5, 0, 1, 6, 7, -1, -1 },
125 { 5, 6, 0, 1, 7, 3, 8, 4, -1 },
126 { 4, 2, 5, 0, 1, 6, 8, 7, -1 },
127};
128
129static const int8_t channel_reorder_nolfe[16][9] = {
130 { 0, -1, -1, -1, -1, -1, -1, -1, -1 },
131 { 0, 1, -1, -1, -1, -1, -1, -1, -1 },
132 { 0, 1, -1, -1, -1, -1, -1, -1, -1 },
133 { 0, 1, -1, -1, -1, -1, -1, -1, -1 },
134 { 0, 1, -1, -1, -1, -1, -1, -1, -1 },
135 { 2, 0, 1, -1, -1, -1, -1, -1, -1 },
136 { 0, 1, 2, -1, -1, -1, -1, -1, -1 },
137 { 2, 0, 1, 3, -1, -1, -1, -1, -1 },
138 { 0, 1, 2, 3, -1, -1, -1, -1, -1 },
139 { 2, 0, 1, 3, 4, -1, -1, -1, -1 },
140 { 2, 3, 0, 1, 4, 5, -1, -1, -1 },
141 { 2, 0, 1, 3, 4, 5, -1, -1, -1 },
142 { 0, 5, 3, 4, 1, 2, -1, -1, -1 },
143 { 3, 2, 4, 0, 1, 5, 6, -1, -1 },
144 { 4, 5, 0, 1, 6, 2, 7, 3, -1 },
145 { 3, 2, 4, 0, 1, 5, 7, 6, -1 },
146};
147
106#endif /* AVCODEC_DCAENC_H */148#endif /* AVCODEC_DCAENC_H */

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t