mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-12 13:30:15 -05:00
buffer: remove buffer id
The buffer id is not needed/used, we use the index of the buffer in the buffer array when configuring the port.
This commit is contained in:
parent
e918f9f77c
commit
5b7ddb0105
33 changed files with 167 additions and 65 deletions
|
|
@ -39,6 +39,7 @@
|
|||
#define BUFFER_SAMPLES 128
|
||||
|
||||
struct buffer {
|
||||
uint32_t id;
|
||||
struct spa_buffer *buffer;
|
||||
struct spa_list link;
|
||||
void *ptr;
|
||||
|
|
@ -359,6 +360,7 @@ static int impl_port_use_buffers(struct spa_node *node, enum spa_direction direc
|
|||
pw_log_error("invalid buffer mem");
|
||||
return -EINVAL;
|
||||
}
|
||||
b->id = i;
|
||||
b->buffer = buffers[i];
|
||||
pw_log_info("got buffer %d size %d", i, datas[0].maxsize);
|
||||
spa_list_append(&d->empty, &b->link);
|
||||
|
|
@ -464,7 +466,7 @@ static int impl_node_process(struct spa_node *node)
|
|||
od[0].chunk->size = avail;
|
||||
od[0].chunk->stride = 0;
|
||||
|
||||
io->buffer_id = b->buffer->id;
|
||||
io->buffer_id = b->id;
|
||||
io->status = SPA_STATUS_HAVE_BUFFER;
|
||||
|
||||
update_volume(d);
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ on_process(void *_data)
|
|||
|
||||
buf = b->buffer;
|
||||
|
||||
pw_log_trace("new buffer %d", buf->id);
|
||||
pw_log_trace("new buffer %p", buf);
|
||||
|
||||
handle_events(data);
|
||||
|
||||
|
|
|
|||
|
|
@ -97,7 +97,6 @@ struct node {
|
|||
static void init_buffer(struct port *port, uint32_t id)
|
||||
{
|
||||
struct buffer *b = &port->buffers[id];
|
||||
b->buf.id = id;
|
||||
b->buf.n_metas = 0;
|
||||
b->buf.metas = NULL;
|
||||
b->buf.n_datas = 1;
|
||||
|
|
|
|||
|
|
@ -55,14 +55,13 @@ static void port_props_reset(struct port_props *props)
|
|||
}
|
||||
|
||||
struct buffer {
|
||||
struct spa_list link;
|
||||
uint32_t id;
|
||||
#define BUFFER_FLAG_QUEUED (1 << 0)
|
||||
uint32_t flags;
|
||||
|
||||
struct spa_list link;
|
||||
struct spa_buffer *buffer;
|
||||
struct spa_meta_header *h;
|
||||
|
||||
uint32_t id;
|
||||
struct spa_buffer buf;
|
||||
struct spa_data datas[1];
|
||||
struct spa_chunk chunk[1];
|
||||
|
|
@ -505,7 +504,7 @@ static int queue_buffer(struct impl *this, struct port *port, struct buffer *b)
|
|||
|
||||
spa_list_append(&port->queue, &b->link);
|
||||
SPA_FLAG_SET(b->flags, BUFFER_FLAG_QUEUED);
|
||||
spa_log_trace(this->log, NAME " %p: queue buffer %d", this, b->buffer->id);
|
||||
spa_log_trace(this->log, NAME " %p: queue buffer %d", this, b->id);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -519,7 +518,7 @@ static struct buffer *dequeue_buffer(struct impl *this, struct port *port)
|
|||
b = spa_list_first(&port->queue, struct buffer, link);
|
||||
spa_list_remove(&b->link);
|
||||
SPA_FLAG_UNSET(b->flags, BUFFER_FLAG_QUEUED);
|
||||
spa_log_trace(this->log, NAME " %p: dequeue buffer %d", this, b->buffer->id);
|
||||
spa_log_trace(this->log, NAME " %p: dequeue buffer %d", this, b->id);
|
||||
return b;
|
||||
}
|
||||
|
||||
|
|
@ -827,12 +826,10 @@ static int impl_node_process(struct spa_node *node)
|
|||
|
||||
if (n_buffers == 1) {
|
||||
*outb->buffer = *buffers[0]->buffer;
|
||||
outb->buffer->id = outb->id;
|
||||
}
|
||||
else {
|
||||
float *dst;
|
||||
|
||||
outb->buffer->id = outb->id;
|
||||
outb->buffer->n_datas = 1;
|
||||
outb->buffer->datas = outb->datas;
|
||||
outb->datas[0].data = this->empty;
|
||||
|
|
@ -855,7 +852,7 @@ static int impl_node_process(struct spa_node *node)
|
|||
}
|
||||
}
|
||||
|
||||
outio->buffer_id = outb->buffer->id;
|
||||
outio->buffer_id = outb->id;
|
||||
outio->status = SPA_STATUS_HAVE_BUFFER;
|
||||
|
||||
return SPA_STATUS_HAVE_BUFFER | SPA_STATUS_NEED_BUFFER;
|
||||
|
|
|
|||
|
|
@ -346,7 +346,6 @@ static int client_node_demarshal_port_use_buffers(void *object, void *data, size
|
|||
"i", &buffers[i].mem_id,
|
||||
"i", &buffers[i].offset,
|
||||
"i", &buffers[i].size,
|
||||
"i", &buf->id,
|
||||
"i", &buf->n_metas, NULL) < 0)
|
||||
return -EINVAL;
|
||||
|
||||
|
|
@ -619,7 +618,6 @@ client_node_marshal_port_use_buffers(void *object,
|
|||
"i", buffers[i].mem_id,
|
||||
"i", buffers[i].offset,
|
||||
"i", buffers[i].size,
|
||||
"i", buf->id,
|
||||
"i", buf->n_metas, NULL);
|
||||
|
||||
for (j = 0; j < buf->n_metas; j++) {
|
||||
|
|
|
|||
|
|
@ -483,7 +483,6 @@ static int alloc_buffers(struct pw_link *this,
|
|||
|
||||
p = SPA_MEMBER(m->ptr, data_size * i, void);
|
||||
|
||||
b->id = i;
|
||||
b->n_metas = n_metas;
|
||||
b->metas = SPA_MEMBER(b, sizeof(struct spa_buffer), struct spa_meta);
|
||||
for (j = 0; j < n_metas; j++) {
|
||||
|
|
|
|||
|
|
@ -1096,8 +1096,6 @@ client_node_port_use_buffers(void *object,
|
|||
struct buffer_mem);
|
||||
bid->n_mem = 0;
|
||||
|
||||
bid->id = b->id;
|
||||
|
||||
bid->mem[bid->n_mem++] = bmem;
|
||||
m->ref++;
|
||||
|
||||
|
|
|
|||
|
|
@ -577,7 +577,7 @@ static int impl_port_use_buffers(struct spa_node *node, enum spa_direction direc
|
|||
struct buffer *b = &impl->buffers[i];
|
||||
|
||||
b->flags = 0;
|
||||
b->id = buffers[i]->id;
|
||||
b->id = i;
|
||||
|
||||
if (SPA_FLAG_CHECK(flags, PW_STREAM_FLAG_MAP_BUFFERS)) {
|
||||
for (j = 0; j < buffers[i]->n_datas; j++) {
|
||||
|
|
@ -1277,14 +1277,9 @@ struct pw_buffer *pw_stream_dequeue_buffer(struct pw_stream *stream)
|
|||
int pw_stream_queue_buffer(struct pw_stream *stream, struct pw_buffer *buffer)
|
||||
{
|
||||
struct stream *impl = SPA_CONTAINER_OF(stream, struct stream, this);
|
||||
struct buffer *b;
|
||||
struct buffer *b = SPA_CONTAINER_OF(buffer, struct buffer, this);
|
||||
int res;
|
||||
|
||||
if ((b = get_buffer(stream, buffer->buffer->id)) == NULL) {
|
||||
pw_log_error("stream %p: invalid buffer %d", stream, buffer->buffer->id);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
pw_log_trace("stream %p: queue buffer %d", stream, b->id);
|
||||
if ((res = push_queue(impl, &impl->queued, b)) < 0)
|
||||
return res;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue