GstValidateScenario *scenario;
gst_structure_get (data, "target", G_TYPE_POINTER, &target,
- "action", G_TYPE_POINTER, &action, "sigid", G_TYPE_UINT, &sigid, NULL);
+ "action", GST_TYPE_VALIDATE_ACTION, &action, "sigid", G_TYPE_UINT, &sigid,
+ NULL);
gst_structure_free (data);
scenario = gst_validate_action_get_scenario (action);
SCENARIO_UNLOCK (scenario);
gst_validate_action_set_done (action);
+ gst_validate_action_unref (action);
_add_execute_actions_gsource (scenario);
gst_object_unref (scenario);
gst_object_unref (target);
}
data =
- gst_structure_new ("a", "action", G_TYPE_POINTER, action, "target",
- G_TYPE_POINTER, target, NULL);
+ gst_structure_new ("a", "action", GST_TYPE_VALIDATE_ACTION, action,
+ "target", G_TYPE_POINTER, target, NULL);
SCENARIO_LOCK (scenario);
priv->signal_handler_id = g_signal_connect_swapped (target, signal_name,
(GCallback) stop_waiting_signal, data);
gst_structure_get_boolean (action->structure, "non-blocking",
&non_blocking);
if (non_blocking) {
- gst_validate_action_ref (action);
gst_structure_set (data, "sigid", G_TYPE_UINT, priv->signal_handler_id,
NULL);
priv->signal_handler_id = 0;