#define CLAMP(value, min, max) (value < min ? min : (value > max ? max : value))
-static struct sample_size_table {
- int sample_size;
- audio_effect_format_e format;
-} sample_size_table[] = {
- { 1, AUDIO_EFFECT_FORMAT_S8 },
- { 2, AUDIO_EFFECT_FORMAT_S16 },
- { 3, AUDIO_EFFECT_FORMAT_S24 },
- { 4, AUDIO_EFFECT_FORMAT_S32 },
- { 4, AUDIO_EFFECT_FORMAT_FLOAT },
+static size_t sample_size_table[] = {
+ [AUDIO_EFFECT_FORMAT_S8] = 1,
+ [AUDIO_EFFECT_FORMAT_S16] = 2,
+ [AUDIO_EFFECT_FORMAT_S24] = 3,
+ [AUDIO_EFFECT_FORMAT_S32] = 4,
+ [AUDIO_EFFECT_FORMAT_FLOAT] = 4,
};
size_t audio_effect_util_get_sample_size(audio_effect_format_e format)
{
- return sample_size_table[format].sample_size;
+ assert(format < AUDIO_EFFECT_FORMAT_MAX);
+
+ return sample_size_table[format];
}
size_t audio_effect_util_get_frame_size(audio_effect_format_e format, int channels)
{
- return sample_size_table[format].sample_size * channels;
+ assert(format < AUDIO_EFFECT_FORMAT_MAX);
+
+ return sample_size_table[format] * channels;
}
size_t audio_effect_util_msec_to_frame(size_t msec, int rate)
size_t audio_effect_util_msec_to_bytes(size_t msec, int rate, int channels, audio_effect_format_e format)
{
- return ((msec * rate) / 1000) * channels * sample_size_table[format].sample_size;
+ return ((msec * rate) / 1000) * channels * sample_size_table[format];
}
void audio_effect_util_convert_s16le_to_float(size_t n, const short *a, float *b)