GST_LOG_OBJECT (self, "Output timestamp %" GST_TIME_FORMAT
" using clock epoch %" GST_TIME_FORMAT,
GST_TIME_ARGS (*timestamp), GST_TIME_ARGS (self->output->clock_epoch));
+
+ if (clock)
+ gst_object_unref (clock);
}
/* Copied from ext/closedcaption/gstccconverter.c */
GstClockTime start_time;
HRESULT res;
bool active;
- GstClock *clock = NULL;
// Check if we're already started
if (self->output->started) {
// Need to unlock to get the clock time
g_mutex_unlock (&self->output->lock);
- clock = gst_element_get_clock (element);
start_time = gst_clock_get_internal_time (self->output->clock);
g_mutex_lock (&self->output->lock);
// Check if someone else started in the meantime
if (self->output->started) {
- gst_object_unref (clock);
return;
}
GST_ELEMENT_ERROR (self, STREAM, FAILED,
(NULL), ("Failed to stop scheduled playback: 0x%08lx",
(unsigned long) res));
- gst_object_unref (clock);
return;
}
// Wait until scheduled playback actually stopped
GST_ELEMENT_ERROR (self, STREAM, FAILED,
(NULL), ("Failed to start scheduled playback: 0x%08lx",
(unsigned long) res));
- gst_object_unref (clock);
return;
}
self->output->started = TRUE;
-
- // Need to unlock to get the clock time
- g_mutex_unlock (&self->output->lock);
-
- if (clock) {
- gst_object_unref (clock);
- }
- g_mutex_lock (&self->output->lock);
}
static GstStateChangeReturn