mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2026-05-08 12:06:40 -04:00
combine-stream: clean up some variables
Move the source offs, stride, data and size calculations out of the destination loop. We only need to clamp the size to copy to the maxsize of the destination buffer.
This commit is contained in:
parent
93b940edef
commit
4c8093fa72
1 changed files with 11 additions and 15 deletions
|
|
@ -1294,35 +1294,31 @@ static void combine_output_process(void *d)
|
|||
|
||||
for (j = 0; j < in->buffer->n_datas; j++) {
|
||||
struct spa_data *ds, *dd;
|
||||
uint32_t outsize = 0, remap;
|
||||
int32_t stride = 0;
|
||||
uint32_t remap, offs, ssize, stride;
|
||||
void *sdata;
|
||||
|
||||
ds = &in->buffer->datas[j];
|
||||
offs = SPA_MIN(ds->chunk->offset, ds->maxsize);
|
||||
ssize = SPA_MIN(ds->chunk->size, ds->maxsize - offs);
|
||||
stride = ds->chunk->stride;
|
||||
sdata = SPA_PTROFF(ds->data, offs, void);
|
||||
|
||||
remap = s->remap[j];
|
||||
if (remap < out->buffer->n_datas) {
|
||||
uint32_t offs, size;
|
||||
uint32_t size;
|
||||
|
||||
dd = &out->buffer->datas[remap];
|
||||
|
||||
offs = SPA_MIN(ds->chunk->offset, ds->maxsize);
|
||||
size = SPA_MIN(ds->chunk->size, ds->maxsize - offs);
|
||||
size = SPA_MIN(size, dd->maxsize);
|
||||
size = SPA_MIN(ssize, dd->maxsize);
|
||||
|
||||
if (mix[remap]) {
|
||||
ringbuffer_mix(&s->delay[j],
|
||||
dd->data, SPA_PTROFF(ds->data, offs, void), size);
|
||||
ringbuffer_mix(&s->delay[j], dd->data, sdata, size);
|
||||
} else {
|
||||
ringbuffer_memcpy(&s->delay[j],
|
||||
dd->data, SPA_PTROFF(ds->data, offs, void), size);
|
||||
ringbuffer_memcpy(&s->delay[j], dd->data, sdata, size);
|
||||
mix[remap] = true;
|
||||
}
|
||||
|
||||
outsize = SPA_MAX(outsize, size);
|
||||
stride = SPA_MAX(stride, ds->chunk->stride);
|
||||
|
||||
dd->chunk->offset = 0;
|
||||
dd->chunk->size = outsize;
|
||||
dd->chunk->size = size;
|
||||
dd->chunk->stride = stride;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue