mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-02 09:01:50 -05:00
client-node: remove the area
Remove the share node area, we don't need it
This commit is contained in:
parent
2a159c04ff
commit
c547baf952
4 changed files with 9 additions and 42 deletions
|
|
@ -38,14 +38,6 @@ struct pw_client_node_proxy;
|
|||
|
||||
struct pw_client_node_message;
|
||||
|
||||
/** Shared structure between client and server \memberof pw_client_node */
|
||||
struct pw_client_node_area {
|
||||
uint32_t max_input_ports; /**< max input ports of the node */
|
||||
uint32_t n_input_ports; /**< number of input ports of the node */
|
||||
uint32_t max_output_ports; /**< max output ports of the node */
|
||||
uint32_t n_output_ports; /**< number of output ports of the node */
|
||||
};
|
||||
|
||||
/** \class pw_client_node_transport
|
||||
*
|
||||
* \brief Transport object
|
||||
|
|
@ -55,7 +47,6 @@ struct pw_client_node_area {
|
|||
* lockfree way.
|
||||
*/
|
||||
struct pw_client_node_transport {
|
||||
struct pw_client_node_area *area; /**< the transport area */
|
||||
void *input_data; /**< input memory for ringbuffer */
|
||||
struct spa_ringbuffer *input_buffer; /**< ringbuffer for input memory */
|
||||
void *output_data; /**< output memory for ringbuffer */
|
||||
|
|
|
|||
|
|
@ -938,17 +938,6 @@ static int handle_node_message(struct node *this, struct pw_client_node_message
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void setup_transport(struct impl *impl)
|
||||
{
|
||||
uint32_t max_inputs = 0, max_outputs = 0, n_inputs = 0, n_outputs = 0;
|
||||
|
||||
spa_node_get_n_ports(&impl->node.node, &n_inputs, &max_inputs, &n_outputs, &max_outputs);
|
||||
|
||||
impl->transport = pw_client_node_transport_new(max_inputs, max_outputs);
|
||||
impl->transport->area->n_input_ports = n_inputs;
|
||||
impl->transport->area->n_output_ports = n_outputs;
|
||||
}
|
||||
|
||||
static void
|
||||
client_node_done(void *data, int seq, int res)
|
||||
{
|
||||
|
|
@ -956,7 +945,7 @@ client_node_done(void *data, int seq, int res)
|
|||
struct node *this = &impl->node;
|
||||
|
||||
if (seq == 0 && res == 0 && impl->transport == NULL)
|
||||
setup_transport(impl);
|
||||
impl->transport = pw_client_node_transport_new();
|
||||
|
||||
this->callbacks->done(this->callbacks_data, seq, res);
|
||||
}
|
||||
|
|
@ -1259,6 +1248,8 @@ static int port_init_mix(void *data, struct pw_port_mix *mix)
|
|||
ioid = pw_map_insert_new(&impl->io_map, NULL);
|
||||
|
||||
mix->port.io = SPA_MEMBER(impl->io_areas->ptr, ioid * sizeof(struct spa_io_buffers), void);
|
||||
mix->port.io->buffer_id = SPA_ID_INVALID;
|
||||
mix->port.io->status = SPA_STATUS_NEED_BUFFER;
|
||||
|
||||
pw_log_debug("client-node %p: init mix io %d %p", impl, ioid, mix->port.io);
|
||||
|
||||
|
|
|
|||
|
|
@ -44,11 +44,10 @@ struct transport {
|
|||
};
|
||||
/** \endcond */
|
||||
|
||||
static size_t area_get_size(struct pw_client_node_area *area)
|
||||
static size_t area_get_size(void)
|
||||
{
|
||||
size_t size;
|
||||
size = sizeof(struct pw_client_node_area);
|
||||
size += sizeof(struct spa_ringbuffer);
|
||||
size = sizeof(struct spa_ringbuffer);
|
||||
size += INPUT_BUFFER_SIZE;
|
||||
size += sizeof(struct spa_ringbuffer);
|
||||
size += OUTPUT_BUFFER_SIZE;
|
||||
|
|
@ -57,11 +56,6 @@ static size_t area_get_size(struct pw_client_node_area *area)
|
|||
|
||||
static void transport_setup_area(void *p, struct pw_client_node_transport *trans)
|
||||
{
|
||||
struct pw_client_node_area *a;
|
||||
|
||||
trans->area = a = p;
|
||||
p = SPA_MEMBER(p, sizeof(struct pw_client_node_area), struct spa_io_buffers);
|
||||
|
||||
trans->input_buffer = p;
|
||||
p = SPA_MEMBER(p, sizeof(struct spa_ringbuffer), void);
|
||||
|
||||
|
|
@ -158,28 +152,20 @@ static int parse_message(struct pw_client_node_transport *trans, void *message)
|
|||
}
|
||||
|
||||
/** Create a new transport
|
||||
* \param max_input_ports maximum number of input_ports
|
||||
* \param max_output_ports maximum number of output_ports
|
||||
* \return a newly allocated \ref pw_client_node_transport
|
||||
* \memberof pw_client_node_transport
|
||||
*/
|
||||
struct pw_client_node_transport *
|
||||
pw_client_node_transport_new(uint32_t max_input_ports, uint32_t max_output_ports)
|
||||
pw_client_node_transport_new(void)
|
||||
{
|
||||
struct transport *impl;
|
||||
struct pw_client_node_transport *trans;
|
||||
struct pw_client_node_area area = { 0 };
|
||||
|
||||
area.max_input_ports = max_input_ports;
|
||||
area.n_input_ports = 0;
|
||||
area.max_output_ports = max_output_ports;
|
||||
area.n_output_ports = 0;
|
||||
|
||||
impl = calloc(1, sizeof(struct transport));
|
||||
if (impl == NULL)
|
||||
return NULL;
|
||||
|
||||
pw_log_debug("transport %p: new %d %d", impl, max_input_ports, max_output_ports);
|
||||
pw_log_debug("transport %p: new", impl);
|
||||
|
||||
trans = &impl->trans;
|
||||
impl->offset = 0;
|
||||
|
|
@ -187,11 +173,10 @@ pw_client_node_transport_new(uint32_t max_input_ports, uint32_t max_output_ports
|
|||
if (pw_memblock_alloc(PW_MEMBLOCK_FLAG_WITH_FD |
|
||||
PW_MEMBLOCK_FLAG_MAP_READWRITE |
|
||||
PW_MEMBLOCK_FLAG_SEAL,
|
||||
area_get_size(&area),
|
||||
area_get_size(),
|
||||
&impl->mem) < 0)
|
||||
return NULL;
|
||||
|
||||
memcpy(impl->mem->ptr, &area, sizeof(struct pw_client_node_area));
|
||||
transport_setup_area(impl->mem->ptr, trans);
|
||||
transport_reset_area(trans);
|
||||
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ struct pw_client_node_transport_info {
|
|||
};
|
||||
|
||||
struct pw_client_node_transport *
|
||||
pw_client_node_transport_new(uint32_t max_input_ports, uint32_t max_output_ports);
|
||||
pw_client_node_transport_new(void);
|
||||
|
||||
struct pw_client_node_transport *
|
||||
pw_client_node_transport_new_from_info(struct pw_client_node_transport_info *info);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue