comparison dca.c @ 11910:284f85e281fc libavcodec

Support DTS-ES extension (XCh) in dca: update and add channel mapping tables for DTS-ES mappings Patch by Nick Brereton, nick at nbrereton dot net
author mstorsjo
date Tue, 22 Jun 2010 08:34:02 +0000
parents 3bfcb8fd3dc9
children 180c6aca1f6e
comparison
equal deleted inserted replaced
11909:3bfcb8fd3dc9 11910:284f85e281fc
93 93
94 static const int8_t dca_lfe_index[] = { 94 static const int8_t dca_lfe_index[] = {
95 1,2,2,2,2,3,2,3,2,3,2,3,1,3,2,3 95 1,2,2,2,2,3,2,3,2,3,2,3,1,3,2,3
96 }; 96 };
97 97
98 static const int8_t dca_channel_reorder_lfe[][8] = { 98 static const int8_t dca_channel_reorder_lfe[][9] = {
99 { 0, -1, -1, -1, -1, -1, -1, -1}, 99 { 0, -1, -1, -1, -1, -1, -1, -1, -1},
100 { 0, 1, -1, -1, -1, -1, -1, -1}, 100 { 0, 1, -1, -1, -1, -1, -1, -1, -1},
101 { 0, 1, -1, -1, -1, -1, -1, -1}, 101 { 0, 1, -1, -1, -1, -1, -1, -1, -1},
102 { 0, 1, -1, -1, -1, -1, -1, -1}, 102 { 0, 1, -1, -1, -1, -1, -1, -1, -1},
103 { 0, 1, -1, -1, -1, -1, -1, -1}, 103 { 0, 1, -1, -1, -1, -1, -1, -1, -1},
104 { 2, 0, 1, -1, -1, -1, -1, -1}, 104 { 2, 0, 1, -1, -1, -1, -1, -1, -1},
105 { 0, 1, 3, -1, -1, -1, -1, -1}, 105 { 0, 1, 3, -1, -1, -1, -1, -1, -1},
106 { 2, 0, 1, 4, -1, -1, -1, -1}, 106 { 2, 0, 1, 4, -1, -1, -1, -1, -1},
107 { 0, 1, 3, 4, -1, -1, -1, -1}, 107 { 0, 1, 3, 4, -1, -1, -1, -1, -1},
108 { 2, 0, 1, 4, 5, -1, -1, -1}, 108 { 2, 0, 1, 4, 5, -1, -1, -1, -1},
109 { 3, 4, 0, 1, 5, 6, -1, -1}, 109 { 3, 4, 0, 1, 5, 6, -1, -1, -1},
110 { 2, 0, 1, 4, 5, 6, -1, -1}, 110 { 2, 0, 1, 4, 5, 6, -1, -1, -1},
111 { 0, 6, 4, 5, 2, 3, -1, -1}, 111 { 0, 6, 4, 5, 2, 3, -1, -1, -1},
112 { 4, 2, 5, 0, 1, 6, 7, -1}, 112 { 4, 2, 5, 0, 1, 6, 7, -1, -1},
113 { 5, 6, 0, 1, 7, 3, 8, 4}, 113 { 5, 6, 0, 1, 7, 3, 8, 4, -1},
114 { 4, 2, 5, 0, 1, 6, 8, 7}, 114 { 4, 2, 5, 0, 1, 6, 8, 7, -1},
115 }; 115 };
116 116
117 static const int8_t dca_channel_reorder_nolfe[][8] = { 117 static const int8_t dca_channel_reorder_lfe_xch[][9] = {
118 { 0, -1, -1, -1, -1, -1, -1, -1}, 118 { 0, 2, -1, -1, -1, -1, -1, -1, -1},
119 { 0, 1, -1, -1, -1, -1, -1, -1}, 119 { 0, 1, 3, -1, -1, -1, -1, -1, -1},
120 { 0, 1, -1, -1, -1, -1, -1, -1}, 120 { 0, 1, 3, -1, -1, -1, -1, -1, -1},
121 { 0, 1, -1, -1, -1, -1, -1, -1}, 121 { 0, 1, 3, -1, -1, -1, -1, -1, -1},
122 { 0, 1, -1, -1, -1, -1, -1, -1}, 122 { 0, 1, 3, -1, -1, -1, -1, -1, -1},
123 { 2, 0, 1, -1, -1, -1, -1, -1}, 123 { 2, 0, 1, 4, -1, -1, -1, -1, -1},
124 { 0, 1, 2, -1, -1, -1, -1, -1}, 124 { 0, 1, 3, 4, -1, -1, -1, -1, -1},
125 { 2, 0, 1, 3, -1, -1, -1, -1}, 125 { 2, 0, 1, 4, 5, -1, -1, -1, -1},
126 { 0, 1, 2, 3, -1, -1, -1, -1}, 126 { 0, 1, 4, 5, 3, -1, -1, -1, -1},
127 { 2, 0, 1, 3, 4, -1, -1, -1}, 127 { 2, 0, 1, 5, 6, 4, -1, -1, -1},
128 { 2, 3, 0, 1, 4, 5, -1, -1}, 128 { 3, 4, 0, 1, 6, 7, 5, -1, -1},
129 { 2, 0, 1, 3, 4, 5, -1, -1}, 129 { 2, 0, 1, 4, 5, 6, 7, -1, -1},
130 { 0, 5, 3, 4, 1, 2, -1, -1}, 130 { 0, 6, 4, 5, 2, 3, 7, -1, -1},
131 { 3, 2, 4, 0, 1, 5, 6, -1}, 131 { 4, 2, 5, 0, 1, 7, 8, 6, -1},
132 { 4, 5, 0, 1, 6, 2, 7, 3}, 132 { 5, 6, 0, 1, 8, 3, 9, 4, 7},
133 { 3, 2, 4, 0, 1, 5, 7, 6}, 133 { 4, 2, 5, 0, 1, 6, 9, 8, 7},
134 }; 134 };
135 135
136 static const int8_t dca_channel_reorder_nolfe[][9] = {
137 { 0, -1, -1, -1, -1, -1, -1, -1, -1},
138 { 0, 1, -1, -1, -1, -1, -1, -1, -1},
139 { 0, 1, -1, -1, -1, -1, -1, -1, -1},
140 { 0, 1, -1, -1, -1, -1, -1, -1, -1},
141 { 0, 1, -1, -1, -1, -1, -1, -1, -1},
142 { 2, 0, 1, -1, -1, -1, -1, -1, -1},
143 { 0, 1, 2, -1, -1, -1, -1, -1, -1},
144 { 2, 0, 1, 3, -1, -1, -1, -1, -1},
145 { 0, 1, 2, 3, -1, -1, -1, -1, -1},
146 { 2, 0, 1, 3, 4, -1, -1, -1, -1},
147 { 2, 3, 0, 1, 4, 5, -1, -1, -1},
148 { 2, 0, 1, 3, 4, 5, -1, -1, -1},
149 { 0, 5, 3, 4, 1, 2, -1, -1, -1},
150 { 3, 2, 4, 0, 1, 5, 6, -1, -1},
151 { 4, 5, 0, 1, 6, 2, 7, 3, -1},
152 { 3, 2, 4, 0, 1, 5, 7, 6, -1},
153 };
154
155 static const int8_t dca_channel_reorder_nolfe_xch[][9] = {
156 { 0, 1, -1, -1, -1, -1, -1, -1, -1},
157 { 0, 1, 2, -1, -1, -1, -1, -1, -1},
158 { 0, 1, 2, -1, -1, -1, -1, -1, -1},
159 { 0, 1, 2, -1, -1, -1, -1, -1, -1},
160 { 0, 1, 2, -1, -1, -1, -1, -1, -1},
161 { 2, 0, 1, 3, -1, -1, -1, -1, -1},
162 { 0, 1, 2, 3, -1, -1, -1, -1, -1},
163 { 2, 0, 1, 3, 4, -1, -1, -1, -1},
164 { 0, 1, 3, 4, 2, -1, -1, -1, -1},
165 { 2, 0, 1, 4, 5, 3, -1, -1, -1},
166 { 2, 3, 0, 1, 5, 6, 4, -1, -1},
167 { 2, 0, 1, 3, 4, 5, 6, -1, -1},
168 { 0, 5, 3, 4, 1, 2, 6, -1, -1},
169 { 3, 2, 4, 0, 1, 6, 7, 5, -1},
170 { 4, 5, 0, 1, 7, 2, 8, 3, 6},
171 { 3, 2, 4, 0, 1, 5, 8, 7, 6},
172 };
136 173
137 #define DCA_DOLBY 101 /* FIXME */ 174 #define DCA_DOLBY 101 /* FIXME */
138 175
139 #define DCA_CHANNEL_BITS 6 176 #define DCA_CHANNEL_BITS 6
140 #define DCA_CHANNEL_MASK 0x3F 177 #define DCA_CHANNEL_MASK 0x3F