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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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