mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-10-29 05:40:27 -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)
|
||||
{
|
||||
struct state *this = object;
|
||||
struct spa_io_buffers *input;
|
||||
struct spa_io_buffers *io;
|
||||
|
||||
spa_return_val_if_fail(this != NULL, -EINVAL);
|
||||
|
||||
input = this->io;
|
||||
spa_return_val_if_fail(input != NULL, -EIO);
|
||||
if ((io = this->io) == NULL)
|
||||
return -EIO;
|
||||
|
||||
spa_log_trace_fp(this->log, "%p: process %d %d/%d", this, input->status,
|
||||
input->buffer_id, this->n_buffers);
|
||||
spa_log_trace_fp(this->log, "%p: process %d %d/%d", this, io->status,
|
||||
io->buffer_id, this->n_buffers);
|
||||
|
||||
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;
|
||||
}
|
||||
if (input->status == SPA_STATUS_HAVE_DATA &&
|
||||
input->buffer_id < this->n_buffers) {
|
||||
struct buffer *b = &this->buffers[input->buffer_id];
|
||||
if (io->status == SPA_STATUS_HAVE_DATA &&
|
||||
io->buffer_id < this->n_buffers) {
|
||||
struct buffer *b = &this->buffers[io->buffer_id];
|
||||
|
||||
if (!SPA_FLAG_IS_SET(b->flags, BUFFER_FLAG_OUT)) {
|
||||
spa_log_warn(this->log, "%p: buffer %u in use",
|
||||
this, input->buffer_id);
|
||||
input->status = -EINVAL;
|
||||
this, io->buffer_id);
|
||||
io->status = -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_FLAG_CLEAR(b->flags, BUFFER_FLAG_OUT);
|
||||
input->buffer_id = SPA_ID_INVALID;
|
||||
io->buffer_id = SPA_ID_INVALID;
|
||||
|
||||
spa_alsa_write(this);
|
||||
|
||||
input->status = SPA_STATUS_OK;
|
||||
io->status = SPA_STATUS_OK;
|
||||
}
|
||||
return SPA_STATUS_HAVE_DATA;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -730,8 +730,8 @@ static int impl_node_process(void *object)
|
|||
spa_return_val_if_fail(this != NULL, -EINVAL);
|
||||
|
||||
outport = GET_OUT_PORT(this, 0);
|
||||
outio = outport->io;
|
||||
spa_return_val_if_fail(outio != NULL, -EIO);
|
||||
if ((outio = outport->io) == NULL)
|
||||
return -EIO;
|
||||
|
||||
spa_log_trace_fp(this->log, "%p: status %p %d %d",
|
||||
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);
|
||||
|
||||
outport = GET_OUT_PORT(this, 0);
|
||||
outio = outport->io;
|
||||
spa_return_val_if_fail(outio != NULL, -EIO);
|
||||
if ((outio = outport->io) == NULL)
|
||||
return -EIO;
|
||||
|
||||
spa_log_trace_fp(this->log, "%p: status %p %d %d",
|
||||
this, outio, outio->status, outio->buffer_id);
|
||||
|
|
|
|||
|
|
@ -699,40 +699,39 @@ static int impl_node_process(void *object)
|
|||
{
|
||||
struct state *this = object;
|
||||
struct port *port;
|
||||
struct spa_io_buffers *input;
|
||||
struct spa_io_buffers *io;
|
||||
|
||||
spa_return_val_if_fail(this != NULL, -EINVAL);
|
||||
|
||||
port = GET_PORT(this, SPA_DIRECTION_INPUT, 0);
|
||||
if ((io = port->io) == NULL)
|
||||
return -EIO;
|
||||
|
||||
input = port->io;
|
||||
spa_return_val_if_fail(input != NULL, -EIO);
|
||||
|
||||
spa_log_trace_fp(this->log, "%p: process %d %d/%d", this, input->status,
|
||||
input->buffer_id, port->n_buffers);
|
||||
spa_log_trace_fp(this->log, "%p: process %d %d/%d", this, io->status,
|
||||
io->buffer_id, port->n_buffers);
|
||||
|
||||
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;
|
||||
}
|
||||
if (input->status == SPA_STATUS_HAVE_DATA &&
|
||||
input->buffer_id < port->n_buffers) {
|
||||
struct buffer *b = &port->buffers[input->buffer_id];
|
||||
if (io->status == SPA_STATUS_HAVE_DATA &&
|
||||
io->buffer_id < port->n_buffers) {
|
||||
struct buffer *b = &port->buffers[io->buffer_id];
|
||||
|
||||
if (!SPA_FLAG_IS_SET(b->flags, BUFFER_FLAG_OUT)) {
|
||||
spa_log_warn(this->log, "%p: buffer %u in use",
|
||||
this, input->buffer_id);
|
||||
input->status = -EINVAL;
|
||||
this, io->buffer_id);
|
||||
io->status = -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_FLAG_CLEAR(b->flags, BUFFER_FLAG_OUT);
|
||||
input->buffer_id = SPA_ID_INVALID;
|
||||
io->buffer_id = SPA_ID_INVALID;
|
||||
|
||||
spa_avb_write(this);
|
||||
|
||||
input->status = SPA_STATUS_OK;
|
||||
io->status = SPA_STATUS_OK;
|
||||
}
|
||||
return SPA_STATUS_HAVE_DATA;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -587,8 +587,8 @@ static int impl_node_process(void *object)
|
|||
spa_return_val_if_fail(this != NULL, -EINVAL);
|
||||
|
||||
outport = GET_OUT_PORT(this, 0);
|
||||
outio = outport->io;
|
||||
spa_return_val_if_fail(outio != NULL, -EIO);
|
||||
if ((outio = outport->io) == NULL)
|
||||
return -EIO;
|
||||
|
||||
spa_log_trace_fp(this->log, NAME " %p: status %p %d %d",
|
||||
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);
|
||||
|
||||
out_port = GET_OUT_PORT(this, 0);
|
||||
output = out_port->io;
|
||||
spa_return_val_if_fail(output != NULL, -EIO);
|
||||
if ((output = out_port->io) == NULL)
|
||||
return -EIO;
|
||||
|
||||
if (output->status == 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);
|
||||
input = in_port->io;
|
||||
spa_return_val_if_fail(input != NULL, -EIO);
|
||||
if ((input = in_port->io) == NULL)
|
||||
return -EIO;
|
||||
|
||||
if (input->status != SPA_STATUS_HAVE_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);
|
||||
|
||||
inport = &this->port[SPA_DIRECTION_INPUT];
|
||||
inio = inport->io;
|
||||
spa_return_val_if_fail(inio != NULL, -EIO);
|
||||
if ((inio = inport->io) == NULL)
|
||||
return -EIO;
|
||||
|
||||
if (inio->status != SPA_STATUS_HAVE_DATA)
|
||||
return inio->status;
|
||||
|
|
@ -590,8 +590,8 @@ static int impl_node_process(void *object)
|
|||
}
|
||||
|
||||
outport = &this->port[SPA_DIRECTION_OUTPUT];
|
||||
outio = outport->io;
|
||||
spa_return_val_if_fail(outio != NULL, -EIO);
|
||||
if ((outio = outport->io) == NULL)
|
||||
return -EIO;
|
||||
|
||||
if (outio->status == SPA_STATUS_HAVE_DATA)
|
||||
return SPA_STATUS_HAVE_DATA;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue