mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-01 22:58:50 -04: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
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue