gst_validate_print_action (action, NULL);
action->priv->execution_time = gst_util_get_timestamp ();
+ action->priv->state = GST_VALIDATE_EXECUTE_ACTION_IN_PROGRESS;
res = action_type->execute (scenario, action);
gst_object_unref (scenario);
act = scenario->priv->actions->data;
if (act) {
- if (act->priv->state == GST_VALIDATE_EXECUTE_ACTION_OK && act->repeat <= 0) {
+
+ if (act->priv->state == GST_VALIDATE_EXECUTE_ACTION_IN_PROGRESS) {
+ return G_SOURCE_CONTINUE;
+ } else if (act->priv->state == GST_VALIDATE_EXECUTE_ACTION_OK
+ && act->repeat <= 0) {
tmp = priv->actions;
priv->actions = g_list_remove_link (priv->actions, tmp);
GST_VALIDATE_EXECUTE_ACTION_OK,
GST_VALIDATE_EXECUTE_ACTION_ASYNC,
GST_VALIDATE_EXECUTE_ACTION_INTERLACED,
- GST_VALIDATE_EXECUTE_ACTION_ERROR_REPORTED
+ GST_VALIDATE_EXECUTE_ACTION_ERROR_REPORTED,
+ GST_VALIDATE_EXECUTE_ACTION_IN_PROGRESS
} GstValidateActionReturn;
/* TODO 2.0 -- Make it an actual enum type */