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:
Wim Taymans 2019-01-07 17:57:03 +01:00
parent e918f9f77c
commit 5b7ddb0105
33 changed files with 167 additions and 65 deletions

View file

@ -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);

View file

@ -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);

View file

@ -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;

View file

@ -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;

View file

@ -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++) {

View file

@ -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++) {

View file

@ -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++;

View file

@ -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;