mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-02 09:01:50 -05:00
echo-cancel: add wav debug file support
This commit is contained in:
parent
0563e1da52
commit
670bf8fe8f
6 changed files with 112 additions and 26 deletions
|
|
@ -2159,7 +2159,7 @@ static int impl_node_port_reuse_buffer(void *object, uint32_t port_id, uint32_t
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void handle_wav(struct impl *this, void **src, uint32_t n_samples)
|
||||
static void handle_wav(struct impl *this, const void **src, uint32_t n_samples)
|
||||
{
|
||||
if (SPA_UNLIKELY(this->props.wav_path[0])) {
|
||||
if (this->wav_file == NULL) {
|
||||
|
|
@ -2576,7 +2576,7 @@ static int impl_node_process(void *object)
|
|||
}
|
||||
|
||||
if (this->direction == SPA_DIRECTION_INPUT)
|
||||
handle_wav(this, (void**)src_datas, n_samples);
|
||||
handle_wav(this, src_datas, n_samples);
|
||||
|
||||
dir = &this->dir[SPA_DIRECTION_INPUT];
|
||||
if (!in_passthrough) {
|
||||
|
|
@ -2666,7 +2666,7 @@ static int impl_node_process(void *object)
|
|||
convert_process(&dir->conv, dst_datas, in_datas, n_samples);
|
||||
}
|
||||
if (this->direction == SPA_DIRECTION_OUTPUT)
|
||||
handle_wav(this, dst_datas, n_samples);
|
||||
handle_wav(this, (const void**)dst_datas, n_samples);
|
||||
|
||||
spa_log_trace_fp(this->log, "%d/%d %d/%d %d->%d", this->in_offset, max_in,
|
||||
this->out_offset, max_out, n_samples, n_out);
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
audioconvert_sources = [
|
||||
'audioadapter.c',
|
||||
'audioconvert.c',
|
||||
'wavfile.c',
|
||||
'plugin.c'
|
||||
]
|
||||
|
||||
|
|
@ -105,6 +104,7 @@ audioconvert_lib = static_library('audioconvert',
|
|||
'peaks-ops.c',
|
||||
'resample-native.c',
|
||||
'resample-peaks.c',
|
||||
'wavfile.c',
|
||||
'volume-ops.c' ],
|
||||
c_args : [ simd_cargs, '-O3'],
|
||||
link_with : simd_dependencies,
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ static inline ssize_t write_data(struct wav_file *wf, const void *data, size_t s
|
|||
return len;
|
||||
}
|
||||
|
||||
static ssize_t writei(struct wav_file *wf, void **data, size_t samples)
|
||||
static ssize_t writei(struct wav_file *wf, const void **data, size_t samples)
|
||||
{
|
||||
return write_data(wf, data[0], samples * wf->stride);
|
||||
}
|
||||
|
|
@ -61,7 +61,7 @@ typedef struct {
|
|||
} __attribute__ ((packed)) uint24_t;
|
||||
|
||||
#define MAKE_WRITEN_FUNC(name, type) \
|
||||
static ssize_t name (struct wav_file *wf, void **data, size_t samples) \
|
||||
static ssize_t name (struct wav_file *wf, const void **data, size_t samples) \
|
||||
{ \
|
||||
uint32_t b, n, k, blocks = wf->blocks, chunk; \
|
||||
uint8_t buf[BLOCK_SIZE]; \
|
||||
|
|
@ -114,7 +114,7 @@ static struct format_info {
|
|||
uint32_t bits;
|
||||
bool planar;
|
||||
uint32_t fmt;
|
||||
ssize_t (*write) (struct wav_file *wf, void **data, size_t samples);
|
||||
ssize_t (*write) (struct wav_file *wf, const void **data, size_t samples);
|
||||
} format_info[] = {
|
||||
MAKE_AUDIO_RAW(SPA_AUDIO_FORMAT_U8P, 8, true, 1, writen_8),
|
||||
MAKE_AUDIO_RAW(SPA_AUDIO_FORMAT_U8, 8, false, 1, writei),
|
||||
|
|
@ -243,7 +243,7 @@ int wav_file_close(struct wav_file *wf)
|
|||
return 0;
|
||||
}
|
||||
|
||||
ssize_t wav_file_write(struct wav_file *wf, void **data, size_t samples)
|
||||
ssize_t wav_file_write(struct wav_file *wf, const void **data, size_t samples)
|
||||
{
|
||||
return wf->fi->write(wf, data, samples);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,4 +38,4 @@ wav_file_open(const char *filename, const char *mode, struct wav_file_info *info
|
|||
|
||||
int wav_file_close(struct wav_file *wf);
|
||||
|
||||
ssize_t wav_file_write(struct wav_file *wf, void **data, size_t size);
|
||||
ssize_t wav_file_write(struct wav_file *wf, const void **data, size_t size);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue