Mercurial > libavcodec.hg
comparison ac3.c @ 7017:60fd9ae9540e libavcodec
pass bap table to ff_ac3_bit_alloc_calc_bap()
author | jbr |
---|---|
date | Sat, 07 Jun 2008 22:29:54 +0000 |
parents | d32b97ccfd42 |
children | 1a93d3bbe3ee |
comparison
equal
deleted
inserted
replaced
7016:b514562e0aef | 7017:60fd9ae9540e |
---|---|
171 } | 171 } |
172 } | 172 } |
173 } | 173 } |
174 | 174 |
175 void ff_ac3_bit_alloc_calc_bap(int16_t *mask, int16_t *psd, int start, int end, | 175 void ff_ac3_bit_alloc_calc_bap(int16_t *mask, int16_t *psd, int start, int end, |
176 int snr_offset, int floor, uint8_t *bap) | 176 int snr_offset, int floor, |
177 const uint8_t *bap_tab, uint8_t *bap) | |
177 { | 178 { |
178 int i, j, k, end1, v, address; | 179 int i, j, k, end1, v, address; |
179 | 180 |
180 /* special case, if snr offset is -960, set all bap's to zero */ | 181 /* special case, if snr offset is -960, set all bap's to zero */ |
181 if(snr_offset == -960) { | 182 if(snr_offset == -960) { |
188 do { | 189 do { |
189 v = (FFMAX(mask[j] - snr_offset - floor, 0) & 0x1FE0) + floor; | 190 v = (FFMAX(mask[j] - snr_offset - floor, 0) & 0x1FE0) + floor; |
190 end1 = FFMIN(band_start_tab[j] + ff_ac3_critical_band_size_tab[j], end); | 191 end1 = FFMIN(band_start_tab[j] + ff_ac3_critical_band_size_tab[j], end); |
191 for (k = i; k < end1; k++) { | 192 for (k = i; k < end1; k++) { |
192 address = av_clip((psd[i] - v) >> 5, 0, 63); | 193 address = av_clip((psd[i] - v) >> 5, 0, 63); |
193 bap[i] = ff_ac3_bap_tab[address]; | 194 bap[i] = bap_tab[address]; |
194 i++; | 195 i++; |
195 } | 196 } |
196 } while (end > band_start_tab[j++]); | 197 } while (end > band_start_tab[j++]); |
197 } | 198 } |
198 | 199 |
213 | 214 |
214 ff_ac3_bit_alloc_calc_mask(s, band_psd, start, end, fast_gain, is_lfe, | 215 ff_ac3_bit_alloc_calc_mask(s, band_psd, start, end, fast_gain, is_lfe, |
215 dba_mode, dba_nsegs, dba_offsets, dba_lengths, dba_values, | 216 dba_mode, dba_nsegs, dba_offsets, dba_lengths, dba_values, |
216 mask); | 217 mask); |
217 | 218 |
218 ff_ac3_bit_alloc_calc_bap(mask, psd, start, end, snr_offset, s->floor, bap); | 219 ff_ac3_bit_alloc_calc_bap(mask, psd, start, end, snr_offset, s->floor, |
220 ff_ac3_bap_tab, bap); | |
219 } | 221 } |
220 | 222 |
221 /** | 223 /** |
222 * Initializes some tables. | 224 * Initializes some tables. |
223 * note: This function must remain thread safe because it is called by the | 225 * note: This function must remain thread safe because it is called by the |