Use SPA_IO_BUFFERS_INIT when we can

We should not have to initialize the state to NEED_DATA, anything
that is not HAVE_DATA is good. Also we need to set the buffer to
INVALID because else it might be recycled.
This commit is contained in:
Wim Taymans 2020-03-19 13:09:21 +01:00
parent 07f935a5ed
commit acccccd2c0
6 changed files with 7 additions and 13 deletions

View file

@ -169,7 +169,7 @@ static int link_io(struct impl *this)
res, spa_strerror(res));
}
spa_zero(this->io_buffers);
this->io_buffers = SPA_IO_BUFFERS_INIT;
if ((res = spa_node_port_set_io(this->follower,
this->direction, 0,

View file

@ -143,8 +143,7 @@ static int make_link(struct impl *this,
l->in_port = in_port;
l->in_flags = 0;
l->negotiated = false;
l->io.status = SPA_STATUS_NEED_DATA;
l->io.buffer_id = SPA_ID_INVALID;
l->io = SPA_IO_BUFFERS_INIT;
l->n_buffers = 0;
l->min_buffers = min_buffers;

View file

@ -165,7 +165,7 @@ static int link_io(struct impl *this)
res, spa_strerror(res));
}
spa_zero(this->io_buffers);
this->io_buffers = SPA_IO_BUFFERS_INIT;
if ((res = spa_node_port_set_io(this->follower,
this->direction, 0,

View file

@ -1110,8 +1110,7 @@ struct pw_impl_link *pw_context_create_link(struct pw_context *context,
this->info.format = NULL;
this->info.props = &this->properties->dict;
impl->io.buffer_id = SPA_ID_INVALID;
impl->io.status = SPA_STATUS_NEED_DATA;
impl->io = SPA_IO_BUFFERS_INIT;
pw_impl_port_init_mix(output, &this->rt.out_mix);
pw_impl_port_init_mix(input, &this->rt.in_mix);

View file

@ -430,8 +430,6 @@ struct pw_impl_port *pw_context_create_port(
pw_map_init(&this->mix_port_map, 64, 64);
this->rt.io.status = SPA_STATUS_NEED_DATA;
if (info)
update_info(this, info);

View file

@ -379,13 +379,11 @@ static int impl_send_command(void *object, const struct spa_command *command)
if (stream->state == PW_STREAM_STATE_PAUSED) {
pw_log_debug(NAME" %p: start %d", stream, impl->direction);
if (impl->direction == SPA_DIRECTION_INPUT) {
if (impl->direction == SPA_DIRECTION_INPUT)
impl->io->status = SPA_STATUS_NEED_DATA;
impl->io->buffer_id = SPA_ID_INVALID;
}
else {
else
call_process(impl);
}
stream_set_state(stream, PW_STREAM_STATE_STREAMING, NULL);
}
break;