mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-12-15 08:56:34 -05:00
echo-cancel: Use S16NE for adrian module
This forces us to get native-endian samples in the adrian module so that we can rely on the existing endianness conversion mechanisms instead of doing it in the module.
This commit is contained in:
parent
6897217d26
commit
b424008160
1 changed files with 5 additions and 9 deletions
|
|
@ -44,7 +44,7 @@ static const char* const valid_modargs[] = {
|
||||||
static void pa_adrian_ec_fixate_spec(pa_sample_spec *source_ss, pa_channel_map *source_map,
|
static void pa_adrian_ec_fixate_spec(pa_sample_spec *source_ss, pa_channel_map *source_map,
|
||||||
pa_sample_spec *sink_ss, pa_channel_map *sink_map)
|
pa_sample_spec *sink_ss, pa_channel_map *sink_map)
|
||||||
{
|
{
|
||||||
source_ss->format = PA_SAMPLE_S16LE;
|
source_ss->format = PA_SAMPLE_S16NE;
|
||||||
source_ss->channels = 1;
|
source_ss->channels = 1;
|
||||||
pa_channel_map_init_mono(source_map);
|
pa_channel_map_init_mono(source_map);
|
||||||
|
|
||||||
|
|
@ -103,14 +103,10 @@ void pa_adrian_ec_run(pa_echo_canceller *ec, const uint8_t *rec, const uint8_t *
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
for (i = 0; i < ec->params.priv.adrian.blocksize; i += 2) {
|
for (i = 0; i < ec->params.priv.adrian.blocksize; i += 2) {
|
||||||
/* We know it's S16LE mono data */
|
/* We know it's S16NE mono data */
|
||||||
int r = PA_INT16_FROM_LE(*(int16_t *)(rec + i));
|
int r = *(int16_t *)(rec + i);
|
||||||
int p = PA_INT16_FROM_LE(*(int16_t *)(play + i));
|
int p = *(int16_t *)(play + i);
|
||||||
int res;
|
*(int16_t *)(out + i) = (int16_t) AEC_doAEC(ec->params.priv.adrian.aec, r, p);
|
||||||
|
|
||||||
res = AEC_doAEC(ec->params.priv.adrian.aec, r, p);
|
|
||||||
out[i] = (uint8_t) (res & 0xff);
|
|
||||||
out[i + 1] = (uint8_t) ((res >> 8) & 0xff);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue