mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-10-31 22:25:38 -04:00
spa: clean up some port io checks
We should not generate a warning.
This commit is contained in:
parent
2fa1b4384b
commit
9123710971
7 changed files with 42 additions and 43 deletions
|
|
@ -798,38 +798,38 @@ static int impl_node_port_reuse_buffer(void *object, uint32_t port_id, uint32_t
|
||||||
static int impl_node_process(void *object)
|
static int impl_node_process(void *object)
|
||||||
{
|
{
|
||||||
struct state *this = object;
|
struct state *this = object;
|
||||||
struct spa_io_buffers *input;
|
struct spa_io_buffers *io;
|
||||||
|
|
||||||
spa_return_val_if_fail(this != NULL, -EINVAL);
|
spa_return_val_if_fail(this != NULL, -EINVAL);
|
||||||
|
|
||||||
input = this->io;
|
if ((io = this->io) == NULL)
|
||||||
spa_return_val_if_fail(input != NULL, -EIO);
|
return -EIO;
|
||||||
|
|
||||||
spa_log_trace_fp(this->log, "%p: process %d %d/%d", this, input->status,
|
spa_log_trace_fp(this->log, "%p: process %d %d/%d", this, io->status,
|
||||||
input->buffer_id, this->n_buffers);
|
io->buffer_id, this->n_buffers);
|
||||||
|
|
||||||
if (this->position && this->position->clock.flags & SPA_IO_CLOCK_FLAG_FREEWHEEL) {
|
if (this->position && this->position->clock.flags & SPA_IO_CLOCK_FLAG_FREEWHEEL) {
|
||||||
input->status = SPA_STATUS_NEED_DATA;
|
io->status = SPA_STATUS_NEED_DATA;
|
||||||
return SPA_STATUS_HAVE_DATA;
|
return SPA_STATUS_HAVE_DATA;
|
||||||
}
|
}
|
||||||
if (input->status == SPA_STATUS_HAVE_DATA &&
|
if (io->status == SPA_STATUS_HAVE_DATA &&
|
||||||
input->buffer_id < this->n_buffers) {
|
io->buffer_id < this->n_buffers) {
|
||||||
struct buffer *b = &this->buffers[input->buffer_id];
|
struct buffer *b = &this->buffers[io->buffer_id];
|
||||||
|
|
||||||
if (!SPA_FLAG_IS_SET(b->flags, BUFFER_FLAG_OUT)) {
|
if (!SPA_FLAG_IS_SET(b->flags, BUFFER_FLAG_OUT)) {
|
||||||
spa_log_warn(this->log, "%p: buffer %u in use",
|
spa_log_warn(this->log, "%p: buffer %u in use",
|
||||||
this, input->buffer_id);
|
this, io->buffer_id);
|
||||||
input->status = -EINVAL;
|
io->status = -EINVAL;
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
spa_log_trace_fp(this->log, "%p: queue buffer %u", this, input->buffer_id);
|
spa_log_trace_fp(this->log, "%p: queue buffer %u", this, io->buffer_id);
|
||||||
spa_list_append(&this->ready, &b->link);
|
spa_list_append(&this->ready, &b->link);
|
||||||
SPA_FLAG_CLEAR(b->flags, BUFFER_FLAG_OUT);
|
SPA_FLAG_CLEAR(b->flags, BUFFER_FLAG_OUT);
|
||||||
input->buffer_id = SPA_ID_INVALID;
|
io->buffer_id = SPA_ID_INVALID;
|
||||||
|
|
||||||
spa_alsa_write(this);
|
spa_alsa_write(this);
|
||||||
|
|
||||||
input->status = SPA_STATUS_OK;
|
io->status = SPA_STATUS_OK;
|
||||||
}
|
}
|
||||||
return SPA_STATUS_HAVE_DATA;
|
return SPA_STATUS_HAVE_DATA;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -730,8 +730,8 @@ static int impl_node_process(void *object)
|
||||||
spa_return_val_if_fail(this != NULL, -EINVAL);
|
spa_return_val_if_fail(this != NULL, -EINVAL);
|
||||||
|
|
||||||
outport = GET_OUT_PORT(this, 0);
|
outport = GET_OUT_PORT(this, 0);
|
||||||
outio = outport->io;
|
if ((outio = outport->io) == NULL)
|
||||||
spa_return_val_if_fail(outio != NULL, -EIO);
|
return -EIO;
|
||||||
|
|
||||||
spa_log_trace_fp(this->log, "%p: status %p %d %d",
|
spa_log_trace_fp(this->log, "%p: status %p %d %d",
|
||||||
this, outio, outio->status, outio->buffer_id);
|
this, outio, outio->status, outio->buffer_id);
|
||||||
|
|
|
||||||
|
|
@ -675,8 +675,8 @@ static int impl_node_process(void *object)
|
||||||
spa_return_val_if_fail(this != NULL, -EINVAL);
|
spa_return_val_if_fail(this != NULL, -EINVAL);
|
||||||
|
|
||||||
outport = GET_OUT_PORT(this, 0);
|
outport = GET_OUT_PORT(this, 0);
|
||||||
outio = outport->io;
|
if ((outio = outport->io) == NULL)
|
||||||
spa_return_val_if_fail(outio != NULL, -EIO);
|
return -EIO;
|
||||||
|
|
||||||
spa_log_trace_fp(this->log, "%p: status %p %d %d",
|
spa_log_trace_fp(this->log, "%p: status %p %d %d",
|
||||||
this, outio, outio->status, outio->buffer_id);
|
this, outio, outio->status, outio->buffer_id);
|
||||||
|
|
|
||||||
|
|
@ -699,40 +699,39 @@ static int impl_node_process(void *object)
|
||||||
{
|
{
|
||||||
struct state *this = object;
|
struct state *this = object;
|
||||||
struct port *port;
|
struct port *port;
|
||||||
struct spa_io_buffers *input;
|
struct spa_io_buffers *io;
|
||||||
|
|
||||||
spa_return_val_if_fail(this != NULL, -EINVAL);
|
spa_return_val_if_fail(this != NULL, -EINVAL);
|
||||||
|
|
||||||
port = GET_PORT(this, SPA_DIRECTION_INPUT, 0);
|
port = GET_PORT(this, SPA_DIRECTION_INPUT, 0);
|
||||||
|
if ((io = port->io) == NULL)
|
||||||
|
return -EIO;
|
||||||
|
|
||||||
input = port->io;
|
spa_log_trace_fp(this->log, "%p: process %d %d/%d", this, io->status,
|
||||||
spa_return_val_if_fail(input != NULL, -EIO);
|
io->buffer_id, port->n_buffers);
|
||||||
|
|
||||||
spa_log_trace_fp(this->log, "%p: process %d %d/%d", this, input->status,
|
|
||||||
input->buffer_id, port->n_buffers);
|
|
||||||
|
|
||||||
if (this->position && this->position->clock.flags & SPA_IO_CLOCK_FLAG_FREEWHEEL) {
|
if (this->position && this->position->clock.flags & SPA_IO_CLOCK_FLAG_FREEWHEEL) {
|
||||||
input->status = SPA_STATUS_NEED_DATA;
|
io->status = SPA_STATUS_NEED_DATA;
|
||||||
return SPA_STATUS_HAVE_DATA;
|
return SPA_STATUS_HAVE_DATA;
|
||||||
}
|
}
|
||||||
if (input->status == SPA_STATUS_HAVE_DATA &&
|
if (io->status == SPA_STATUS_HAVE_DATA &&
|
||||||
input->buffer_id < port->n_buffers) {
|
io->buffer_id < port->n_buffers) {
|
||||||
struct buffer *b = &port->buffers[input->buffer_id];
|
struct buffer *b = &port->buffers[io->buffer_id];
|
||||||
|
|
||||||
if (!SPA_FLAG_IS_SET(b->flags, BUFFER_FLAG_OUT)) {
|
if (!SPA_FLAG_IS_SET(b->flags, BUFFER_FLAG_OUT)) {
|
||||||
spa_log_warn(this->log, "%p: buffer %u in use",
|
spa_log_warn(this->log, "%p: buffer %u in use",
|
||||||
this, input->buffer_id);
|
this, io->buffer_id);
|
||||||
input->status = -EINVAL;
|
io->status = -EINVAL;
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
spa_log_trace_fp(this->log, "%p: queue buffer %u", this, input->buffer_id);
|
spa_log_trace_fp(this->log, "%p: queue buffer %u", this, io->buffer_id);
|
||||||
spa_list_append(&port->ready, &b->link);
|
spa_list_append(&port->ready, &b->link);
|
||||||
SPA_FLAG_CLEAR(b->flags, BUFFER_FLAG_OUT);
|
SPA_FLAG_CLEAR(b->flags, BUFFER_FLAG_OUT);
|
||||||
input->buffer_id = SPA_ID_INVALID;
|
io->buffer_id = SPA_ID_INVALID;
|
||||||
|
|
||||||
spa_avb_write(this);
|
spa_avb_write(this);
|
||||||
|
|
||||||
input->status = SPA_STATUS_OK;
|
io->status = SPA_STATUS_OK;
|
||||||
}
|
}
|
||||||
return SPA_STATUS_HAVE_DATA;
|
return SPA_STATUS_HAVE_DATA;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -587,8 +587,8 @@ static int impl_node_process(void *object)
|
||||||
spa_return_val_if_fail(this != NULL, -EINVAL);
|
spa_return_val_if_fail(this != NULL, -EINVAL);
|
||||||
|
|
||||||
outport = GET_OUT_PORT(this, 0);
|
outport = GET_OUT_PORT(this, 0);
|
||||||
outio = outport->io;
|
if ((outio = outport->io) == NULL)
|
||||||
spa_return_val_if_fail(outio != NULL, -EIO);
|
return -EIO;
|
||||||
|
|
||||||
spa_log_trace_fp(this->log, NAME " %p: status %p %d %d",
|
spa_log_trace_fp(this->log, NAME " %p: status %p %d %d",
|
||||||
this, outio, outio->status, outio->buffer_id);
|
this, outio, outio->status, outio->buffer_id);
|
||||||
|
|
|
||||||
|
|
@ -679,8 +679,8 @@ static int impl_node_process(void *object)
|
||||||
spa_return_val_if_fail(this != NULL, -EINVAL);
|
spa_return_val_if_fail(this != NULL, -EINVAL);
|
||||||
|
|
||||||
out_port = GET_OUT_PORT(this, 0);
|
out_port = GET_OUT_PORT(this, 0);
|
||||||
output = out_port->io;
|
if ((output = out_port->io) == NULL)
|
||||||
spa_return_val_if_fail(output != NULL, -EIO);
|
return -EIO;
|
||||||
|
|
||||||
if (output->status == SPA_STATUS_HAVE_DATA)
|
if (output->status == SPA_STATUS_HAVE_DATA)
|
||||||
return SPA_STATUS_HAVE_DATA;
|
return SPA_STATUS_HAVE_DATA;
|
||||||
|
|
@ -692,8 +692,8 @@ static int impl_node_process(void *object)
|
||||||
}
|
}
|
||||||
|
|
||||||
in_port = GET_IN_PORT(this, 0);
|
in_port = GET_IN_PORT(this, 0);
|
||||||
input = in_port->io;
|
if ((input = in_port->io) == NULL)
|
||||||
spa_return_val_if_fail(input != NULL, -EIO);
|
return -EIO;
|
||||||
|
|
||||||
if (input->status != SPA_STATUS_HAVE_DATA)
|
if (input->status != SPA_STATUS_HAVE_DATA)
|
||||||
return SPA_STATUS_NEED_DATA;
|
return SPA_STATUS_NEED_DATA;
|
||||||
|
|
|
||||||
|
|
@ -578,8 +578,8 @@ static int impl_node_process(void *object)
|
||||||
spa_return_val_if_fail(this != NULL, -EINVAL);
|
spa_return_val_if_fail(this != NULL, -EINVAL);
|
||||||
|
|
||||||
inport = &this->port[SPA_DIRECTION_INPUT];
|
inport = &this->port[SPA_DIRECTION_INPUT];
|
||||||
inio = inport->io;
|
if ((inio = inport->io) == NULL)
|
||||||
spa_return_val_if_fail(inio != NULL, -EIO);
|
return -EIO;
|
||||||
|
|
||||||
if (inio->status != SPA_STATUS_HAVE_DATA)
|
if (inio->status != SPA_STATUS_HAVE_DATA)
|
||||||
return inio->status;
|
return inio->status;
|
||||||
|
|
@ -590,8 +590,8 @@ static int impl_node_process(void *object)
|
||||||
}
|
}
|
||||||
|
|
||||||
outport = &this->port[SPA_DIRECTION_OUTPUT];
|
outport = &this->port[SPA_DIRECTION_OUTPUT];
|
||||||
outio = outport->io;
|
if ((outio = outport->io) == NULL)
|
||||||
spa_return_val_if_fail(outio != NULL, -EIO);
|
return -EIO;
|
||||||
|
|
||||||
if (outio->status == SPA_STATUS_HAVE_DATA)
|
if (outio->status == SPA_STATUS_HAVE_DATA)
|
||||||
return SPA_STATUS_HAVE_DATA;
|
return SPA_STATUS_HAVE_DATA;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue