## How to build
* local : meson build [-Dtestsuite=enabled] && ninja -C build clean && ninja -C build/
- e.g) meson build -Dtestsuite=enabled -Damplify=enabled -Dagc-speex=enabled -Dns-rnnoise=enabled -Dns-srid=enabled -Drefcopy=enabled -Daec-speex=enabled -Daec-webrtc=enabled && ninja -C build clean && ninja -C build/
- e.g) meson build -Db_sanitize=address -Db_coverage=true -Dtestsuite=enabled -Damplify=enabled && ninja -C build clean && ninja -C build/
+ e.g) meson setup build -Dtestsuite=enabled -Damplify=enabled -Dagc-speex=enabled -Dns-rnnoise=enabled -Dns-srid=enabled -Drefcopy=enabled -Daec-speex=enabled -Daec-webrtc=enabled && ninja -C build clean && ninja -C build/
+ e.g) meson setup build -Db_sanitize=address -Db_coverage=true -Dtestsuite=enabled -Damplify=enabled && ninja -C build clean && ninja -C build/
* GBS : gbs build -A aarch64 --include-all
## How to test
#include <audio_effect_util.h>
#include <audio_effect_log.h>
-#define FIXED_FRAME_SIZE_MSEC 10
+#define FRAME_SIZE_MSEC 10
#define CHANNELS_MAX 2
using namespace webrtc;
static void *aec_webrtc_create(int rate, int channels, audio_effect_format_e format, size_t frames)
{
struct userdata *u;
- size_t fixed_bytes, request_bytes;
Config config;
u = (struct userdata *)calloc(1, sizeof(struct userdata));
if (!u)
return NULL;
- fixed_bytes = audio_effect_util_msec_to_bytes(FIXED_FRAME_SIZE_MSEC, rate, channels, format);
- request_bytes = frames * audio_effect_util_get_frame_size(format, channels);
-
- if (fixed_bytes > request_bytes) {
- LOG_ERROR("frames should be bigger than %dms. frames(%zu) request_bytes(%zu)",
- FIXED_FRAME_SIZE_MSEC, frames, request_bytes);
- goto fail;
- }
-
- if (request_bytes % fixed_bytes) {
- LOG_ERROR("request_bytes(%zu) should be multiples of fixed_bytes(%zu)",
- frames, request_bytes);
- goto fail;
- }
-
u->rate = rate;
u->channels = channels;
-
- u->fixed_bytes = fixed_bytes;
- u->fixed_frames = fixed_bytes / audio_effect_util_get_frame_size(format, channels);
+ u->fixed_bytes = audio_effect_util_msec_to_bytes(FRAME_SIZE_MSEC, rate, channels, format);
+ u->fixed_frames = u->fixed_bytes / audio_effect_util_get_frame_size(format, channels);
config.Set<ExperimentalNs>(new ExperimentalNs(false));
config.Set<Intelligibility>(new Intelligibility(false));
.destroy = aec_webrtc_destroy,
},
.constraint = {
- .frames_msec = FIXED_FRAME_SIZE_MSEC,
+ .frames_msec = FRAME_SIZE_MSEC,
.min_rate = 8000,
.max_rate = 48000,
.min_channels = 1,
[ 'NOISE_48K_FILE_NAME', 'noise_48k_1ch.raw' ],
[ 'NOISE_441K_MONO_FILE_NAME', 'noise_441k_1ch.raw' ],
[ 'NOISE_441K_STEREO_FILE_NAME', 'noise_441k_2ch.raw' ],
- [ 'AEC_REFERENCE_FILE_NAME', 'rec.raw' ],
- [ 'AEC_RECORDING_FILE_NAME', 'ref.raw' ],
+ [ 'AEC_RECORDING_FILE_NAME', 'rec.raw' ],
+ [ 'AEC_REFERENCE_FILE_NAME', 'ref.raw' ],
[ 'AEC_REFERENCE_COPY_5CH_FILE_NAME', 'rec_refcopy_5ch.raw' ] ]
cdata = configuration_data()