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

@ -563,6 +563,7 @@ impl_node_port_use_buffers(struct spa_node *node,
uint32_t type;
b->buf = buffers[i];
b->id = i;
b->flags = BUFFER_FLAG_OUT;
b->h = spa_buffer_find_meta_data(b->buf, SPA_META_Header, sizeof(*b->h));

View file

@ -562,6 +562,7 @@ impl_node_port_use_buffers(struct spa_node *node,
struct spa_data *d = buffers[i]->datas;
b->buf = buffers[i];
b->id = i;
b->flags = 0;
b->h = spa_buffer_find_meta_data(b->buf, SPA_META_Header, sizeof(*b->h));
@ -579,7 +580,6 @@ impl_node_port_use_buffers(struct spa_node *node,
return 0;
}
static int
impl_node_port_alloc_buffers(struct spa_node *node,
enum spa_direction direction,
@ -687,9 +687,9 @@ static int impl_node_process(struct spa_node *node)
b = spa_list_first(&this->ready, struct buffer, link);
spa_list_remove(&b->link);
spa_log_trace(this->log, NAME " %p: dequeue buffer %d", node, b->buf->id);
spa_log_trace(this->log, NAME " %p: dequeue buffer %d", node, b->id);
io->buffer_id = b->buf->id;
io->buffer_id = b->id;
io->status = SPA_STATUS_HAVE_BUFFER;
return SPA_STATUS_HAVE_BUFFER;

View file

@ -716,9 +716,9 @@ again:
if (state->ready_offset >= size) {
spa_list_remove(&b->link);
SPA_FLAG_SET(b->flags, BUFFER_FLAG_OUT);
state->io->buffer_id = b->buf->id;
spa_log_trace(state->log, "alsa-util %p: reuse buffer %u", state, b->buf->id);
state->callbacks->reuse_buffer(state->callbacks_data, 0, b->buf->id);
state->io->buffer_id = b->id;
spa_log_trace(state->log, "alsa-util %p: reuse buffer %u", state, b->id);
state->callbacks->reuse_buffer(state->callbacks_data, 0, b->id);
state->ready_offset = 0;
}
written += n_frames;

View file

@ -57,10 +57,11 @@ struct props {
#define MAX_BUFFERS 32
struct buffer {
uint32_t id;
uint32_t flags;
struct spa_buffer *buf;
struct spa_meta_header *h;
#define BUFFER_FLAG_OUT (1<<0)
uint32_t flags;
struct spa_list link;
};

View file

@ -61,9 +61,10 @@ static void props_reset(struct props *props)
}
struct buffer {
struct spa_list link;
uint32_t id;
#define BUFFER_FLAG_OUT (1 << 0)
uint32_t flags;
struct spa_list link;
struct spa_buffer *outbuf;
struct spa_meta_header *h;
};
@ -959,6 +960,7 @@ impl_node_port_use_buffers(struct spa_node *node,
struct spa_data *d = buffers[i]->datas;
b = &port->buffers[i];
b->id = i;
b->flags = 0;
b->outbuf = buffers[i];
b->h = spa_buffer_find_meta_data(buffers[i], SPA_META_Header, sizeof(*b->h));
@ -1165,7 +1167,7 @@ static int impl_node_process(struct spa_node *node)
}
outio->status = SPA_STATUS_HAVE_BUFFER;
outio->buffer_id = dbuf->outbuf->id;
outio->buffer_id = dbuf->id;
inio->status = SPA_STATUS_NEED_BUFFER;

View file

@ -63,9 +63,10 @@ static void props_reset(struct props *props)
}
struct buffer {
struct spa_list link;
uint32_t id;
#define BUFFER_FLAG_OUT (1 << 0)
uint32_t flags;
struct spa_list link;
struct spa_buffer *outbuf;
struct spa_meta_header *h;
};
@ -676,6 +677,7 @@ impl_node_port_use_buffers(struct spa_node *node,
struct spa_data *d = buffers[i]->datas;
b = &port->buffers[i];
b->id = i;
b->flags = 0;
b->outbuf = buffers[i];
b->h = spa_buffer_find_meta_data(buffers[i], SPA_META_Header, sizeof(*b->h));
@ -882,7 +884,7 @@ static int impl_node_process(struct spa_node *node)
res |= SPA_STATUS_NEED_BUFFER;
outio->status = SPA_STATUS_HAVE_BUFFER;
outio->buffer_id = outb->id;
outio->buffer_id = outbuf->id;
res |= SPA_STATUS_HAVE_BUFFER;
return res;

View file

@ -47,6 +47,7 @@
#define MAX_PORTS 128
struct buffer {
uint32_t id;
#define BUFFER_FLAG_QUEUED (1<<0)
uint32_t flags;
struct spa_list link;
@ -740,7 +741,7 @@ static struct buffer *dequeue_buffer(struct impl *this, struct port *port)
spa_list_remove(&b->link);
SPA_FLAG_UNSET(b->flags, BUFFER_FLAG_QUEUED);
spa_log_trace(this->log, NAME " %p: dequeue buffer %d on port %d %u",
this, b->buf->id, port->id, b->flags);
this, b->id, port->id, b->flags);
return b;
}
@ -776,8 +777,9 @@ impl_node_port_use_buffers(struct spa_node *node,
struct spa_data *d = buffers[i]->datas;
b = &port->buffers[i];
b->buf = buffers[i];
b->id = i;
b->flags = 0;
b->buf = buffers[i];
if (!((d[0].type == SPA_DATA_MemPtr ||
d[0].type == SPA_DATA_MemFd ||
@ -895,7 +897,7 @@ static inline int get_out_buffer(struct impl *this, struct port *port, struct bu
return -EPIPE;
io->status = SPA_STATUS_HAVE_BUFFER;
io->buffer_id = (*buf)->buf->id;
io->buffer_id = (*buf)->id;
return 0;
}

View file

@ -59,9 +59,10 @@ static void props_reset(struct props *props)
}
struct buffer {
struct spa_list link;
uint32_t id;
#define BUFFER_FLAG_OUT (1 << 0)
uint32_t flags;
struct spa_list link;
struct spa_buffer *outbuf;
struct spa_meta_header *h;
};
@ -607,6 +608,7 @@ impl_node_port_use_buffers(struct spa_node *node,
struct spa_data *d = buffers[i]->datas;
b = &port->buffers[i];
b->id = i;
b->flags = 0;
b->outbuf = buffers[i];
b->h = spa_buffer_find_meta_data(buffers[i], SPA_META_Header, sizeof(*b->h));
@ -838,7 +840,7 @@ static int impl_node_process(struct spa_node *node)
outport->offset += out_len * sizeof(float);
if (outport->offset > 0 && outport->offset >= maxsize) {
outio->status = SPA_STATUS_HAVE_BUFFER;
outio->buffer_id = dbuf->outbuf->id;
outio->buffer_id = dbuf->id;
dequeue_buffer(this, dbuf);
outport->offset = 0;
SPA_FLAG_SET(res, SPA_STATUS_HAVE_BUFFER);

View file

@ -48,6 +48,7 @@
#define MAX_PORTS 128
struct buffer {
uint32_t id;
#define BUFFER_FLAG_QUEUED (1<<0)
uint32_t flags;
struct spa_list link;
@ -716,7 +717,7 @@ static struct buffer *dequeue_buffer(struct impl *this, struct port *port)
spa_list_remove(&b->link);
SPA_FLAG_UNSET(b->flags, BUFFER_FLAG_QUEUED);
spa_log_trace(this->log, NAME " %p: dequeue buffer %d on port %d %u",
this, b->buf->id, port->id, b->flags);
this, b->id, port->id, b->flags);
return b;
}
@ -751,6 +752,7 @@ impl_node_port_use_buffers(struct spa_node *node,
struct spa_data *d = buffers[i]->datas;
b = &port->buffers[i];
b->id = i;
b->buf = buffers[i];
b->flags = 0;
@ -923,7 +925,7 @@ static int impl_node_process(struct spa_node *node)
dd[j].chunk->size = n_samples * outport->stride;
}
outio->status = SPA_STATUS_HAVE_BUFFER;
outio->buffer_id = dbuf->buf->id;
outio->buffer_id = dbuf->id;
res |= SPA_STATUS_HAVE_BUFFER;
}

View file

@ -56,6 +56,7 @@ struct props {
#define MAX_BUFFERS 32
struct buffer {
uint32_t id;
struct spa_buffer *buf;
struct spa_meta_header *h;
bool outstanding;
@ -500,8 +501,8 @@ static int flush_data(struct impl *this, uint64_t now_time)
if (this->ready_offset >= d[0].chunk->size) {
spa_list_remove(&b->link);
b->outstanding = true;
spa_log_trace(this->log, "a2dp-sink %p: reuse buffer %u", this, b->buf->id);
this->callbacks->reuse_buffer(this->callbacks_data, 0, b->buf->id);
spa_log_trace(this->log, "a2dp-sink %p: reuse buffer %u", this, b->id);
this->callbacks->reuse_buffer(this->callbacks_data, 0, b->id);
this->ready_offset = 0;
}
total_frames += n_frames;
@ -1171,6 +1172,7 @@ impl_node_port_use_buffers(struct spa_node *node,
uint32_t type;
b->buf = buffers[i];
b->id = i;
b->outstanding = true;
b->h = spa_buffer_find_meta_data(buffers[i], SPA_META_Header, sizeof(*b->h));

View file

@ -64,10 +64,11 @@ static void reset_props(struct props *props)
#define BUFFER_FLAG_MAPPED (1<<2)
struct buffer {
uint32_t id;
uint32_t flags;
struct spa_list link;
struct spa_buffer *outbuf;
struct spa_meta_header *h;
uint32_t flags;
struct v4l2_buffer v4l2_buffer;
void *ptr;
};
@ -922,9 +923,9 @@ static int impl_node_process(struct spa_node *node)
b = spa_list_first(&port->queue, struct buffer, link);
spa_list_remove(&b->link);
spa_log_trace(this->log, NAME " %p: dequeue buffer %d", node, b->outbuf->id);
spa_log_trace(this->log, NAME " %p: dequeue buffer %d", node, b->id);
io->buffer_id = b->outbuf->id;
io->buffer_id = b->id;
io->status = SPA_STATUS_HAVE_BUFFER;
return SPA_STATUS_HAVE_BUFFER;

View file

@ -1250,6 +1250,7 @@ static int spa_v4l2_use_buffers(struct impl *this, struct spa_buffer **buffers,
struct buffer *b;
b = &port->buffers[i];
b->id = i;
b->outbuf = buffers[i];
b->flags = BUFFER_FLAG_OUTSTANDING;
b->h = spa_buffer_find_meta_data(buffers[i], SPA_META_Header, sizeof(*b->h));
@ -1294,7 +1295,7 @@ static int spa_v4l2_use_buffers(struct impl *this, struct spa_buffer **buffers,
else
return -EIO;
spa_v4l2_buffer_recycle(this, buffers[i]->id);
spa_v4l2_buffer_recycle(this, i);
}
port->n_buffers = reqbuf.count;