From 9b93fd396a833eff1eeb814d9ec5190e4dfb3702 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Mon, 13 Mar 2017 11:43:34 +0100 Subject: [PATCH] Fix some crashers --- pinos/gst/gstpinossink.c | 2 -- pinos/modules/module-autolink.c | 2 +- pinos/server/node.c | 6 ++++++ 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/pinos/gst/gstpinossink.c b/pinos/gst/gstpinossink.c index e6df83acd..6810e853b 100644 --- a/pinos/gst/gstpinossink.c +++ b/pinos/gst/gstpinossink.c @@ -901,10 +901,8 @@ gst_pinos_sink_change_state (GstElement * element, GstStateChange transition) case GST_STATE_CHANGE_PLAYING_TO_PAUSED: break; case GST_STATE_CHANGE_PAUSED_TO_READY: - g_hash_table_remove_all (this->buf_ids); break; case GST_STATE_CHANGE_READY_TO_NULL: - g_hash_table_remove_all (this->buf_ids); gst_pinos_sink_close (this); break; default: diff --git a/pinos/modules/module-autolink.c b/pinos/modules/module-autolink.c index dbc2b1517..e18f3d3b1 100644 --- a/pinos/modules/module-autolink.c +++ b/pinos/modules/module-autolink.c @@ -219,7 +219,7 @@ try_link_port (PinosNode *node, error: { pinos_log_error ("module %p: can't link node '%s'", impl, error); - if (info->info->client) { + if (info->info->client && info->info->client->core_resource) { pinos_core_notify_error (info->info->client->core_resource, info->resource->id, SPA_RESULT_ERROR, diff --git a/pinos/server/node.c b/pinos/server/node.c index 09d21f091..0996c2c9a 100644 --- a/pinos/server/node.c +++ b/pinos/server/node.c @@ -302,8 +302,14 @@ on_node_event (SpaNode *node, SpaNodeEvent *event, void *user_data) processed = true; pi->buffer_id = po->buffer_id; + if ((res = spa_node_port_reuse_buffer (outport->node->node, + outport->port_id, + po->buffer_id)) < 0) + pinos_log_warn ("node %p: error reuse buffer: %d", outport->node, res); + po->buffer_id = SPA_ID_INVALID; } + if ((res = spa_node_process_output (outport->node->node)) < 0) pinos_log_warn ("node %p: got process output %d", outport->node, res); }