v4l2: fix crash when unplugging

Only remove the v4l2 fd once on disconnect
Make sure we don't use the clock anymore when a link is destroyed.
This commit is contained in:
Wim Taymans 2018-11-22 10:54:57 +01:00
parent 16b6a51b78
commit 49afacd66f
2 changed files with 7 additions and 2 deletions

View file

@ -1194,7 +1194,8 @@ static void v4l2_on_fd_events(struct spa_source *source)
if (source->rmask & SPA_IO_ERR) {
struct port *port = &this->out_ports[0];
spa_log_error(this->log, "v4l2 %p: error %d", this, source->rmask);
spa_loop_remove_source(port->data_loop, &port->source);
if (port->source.loop)
spa_loop_remove_source(port->data_loop, &port->source);
return;
}
@ -1470,7 +1471,8 @@ static int do_remove_source(struct spa_loop *loop,
void *user_data)
{
struct port *port = user_data;
spa_loop_remove_source(port->data_loop, &port->source);
if (port->source.loop)
spa_loop_remove_source(port->data_loop, &port->source);
return 0;
}