Mercurial > libavcodec.hg
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 |
