{
if (data->error == NULL)
g_propagate_error (&data->error, error);
- g_main_loop_quit (data->loop);
+
+ if (data->loop) {
+ g_main_loop_quit (data->loop);
+ data->loop = NULL;
+ }
}
static void
_done_cb (GstTranscoder * self, RunSyncData * data)
{
- g_main_loop_quit (data->loop);
+ if (data->loop) {
+ g_main_loop_quit (data->loop);
+ data->loop = NULL;
+ }
}
/**
if (!data.error)
g_main_loop_run (data.loop);
+ g_signal_handlers_disconnect_by_func (self, _error_cb, &data);
+ g_signal_handlers_disconnect_by_func (self, _done_cb, &data);
+
if (data.error) {
if (error)
g_propagate_error (error, data.error);