int old_band_limit = s->band_limit;
int old_nchannels = s->nchannels;
int version, bit_rate_hi;
- unsigned int code;
+ unsigned int sr_code;
// Sample rate of LBR audio
- code = bytestream2_get_byte(gb);
- if (code >= FF_ARRAY_ELEMS(ff_dca_sampling_freqs)) {
+ sr_code = bytestream2_get_byte(gb);
+ if (sr_code >= FF_ARRAY_ELEMS(ff_dca_sampling_freqs)) {
av_log(s->avctx, AV_LOG_ERROR, "Invalid LBR sample rate\n");
return AVERROR_INVALIDDATA;
}
- s->sample_rate = ff_dca_sampling_freqs[code];
+ s->sample_rate = ff_dca_sampling_freqs[sr_code];
if (s->sample_rate > 48000) {
avpriv_report_missing_feature(s->avctx, "%d Hz LBR sample rate", s->sample_rate);
return AVERROR_PATCHWELCOME;
}
// Setup frequency range
- if (s->sample_rate < 14000)
- s->freq_range = 0;
- else if (s->sample_rate < 28000)
- s->freq_range = 1;
- else
- s->freq_range = 2;
+ s->freq_range = ff_dca_freq_ranges[sr_code];
// Setup resolution profile
if (s->bit_rate_orig >= 44000 * (s->nchannels_total + 2))
3259333, -5074941, 6928550, -8204883
};
-const int32_t ff_dca_sampling_freqs[16] = {
+const uint32_t ff_dca_sampling_freqs[16] = {
8000, 16000, 32000, 64000, 128000, 22050, 44100, 88200,
176400, 352800, 12000, 24000, 48000, 96000, 192000, 384000,
};
+const uint8_t ff_dca_freq_ranges[16] = {
+ 0, 1, 2, 3, 4, 1, 2, 3, 4, 4, 0, 1, 2, 3, 4, 4
+};
+
const uint16_t ff_dca_avg_g3_freqs[3] = { 16000, 18000, 24000 };
const uint16_t ff_dca_fst_amp[44] = {
extern const int32_t ff_dca_xll_band_coeff[20];
-extern const int32_t ff_dca_sampling_freqs[16];
+extern const uint32_t ff_dca_sampling_freqs[16];
+extern const uint8_t ff_dca_freq_ranges[16];
extern const uint16_t ff_dca_avg_g3_freqs[3];