mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-10-31 22:25:38 -04:00
resample: fix resample length
Don't use output sizes as input size for the next channel.
This commit is contained in:
parent
e5629b23f3
commit
1b37db8add
1 changed files with 6 additions and 3 deletions
|
|
@ -740,7 +740,7 @@ static int impl_node_process(struct spa_node *node)
|
|||
struct spa_io_buffers *outio, *inio;
|
||||
struct buffer *sbuf, *dbuf;
|
||||
struct spa_buffer *sb, *db;
|
||||
uint32_t i, size, in_len, out_len, maxsize;
|
||||
uint32_t i, size, in_len, out_len, pin_len, pout_len, maxsize;
|
||||
int res = 0;
|
||||
|
||||
spa_return_val_if_fail(node != NULL, -EINVAL);
|
||||
|
|
@ -784,10 +784,13 @@ static int impl_node_process(struct spa_node *node)
|
|||
size = sb->datas[0].chunk->size;
|
||||
maxsize = db->datas[0].maxsize;
|
||||
|
||||
in_len = (size - inport->offset) / sizeof(float);
|
||||
out_len = (maxsize - outport->offset) / sizeof(float);
|
||||
pin_len = in_len = (size - inport->offset) / sizeof(float);
|
||||
pout_len = out_len = (maxsize - outport->offset) / sizeof(float);
|
||||
|
||||
for (i = 0; i < sb->n_datas; i++) {
|
||||
in_len = pin_len;
|
||||
out_len = pout_len;
|
||||
|
||||
speex_resampler_process_float(this->state, i,
|
||||
SPA_MEMBER(sb->datas[i].data, inport->offset, void), &in_len,
|
||||
SPA_MEMBER(db->datas[i].data, outport->offset, void), &out_len);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue