spa: clean up some port io checks

We should not generate a warning.
This commit is contained in:
Wim Taymans 2022-09-01 15:39:34 +02:00
parent 2fa1b4384b
commit 9123710971
7 changed files with 42 additions and 43 deletions

View file

@ -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;
}

View file

@ -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);

View file

@ -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);

View file

@ -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;
}

View file

@ -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);

View file

@ -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;

View file

@ -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;