dv1394src: make the internal clock thread safe
authorAndoni Morales Alastruey <amorales@flumotion.com>
Mon, 20 Jun 2011 16:49:57 +0000 (18:49 +0200)
committerDavid Schleef <ds@schleef.org>
Fri, 24 Jun 2011 19:01:39 +0000 (12:01 -0700)
Fixes: #653091.

ext/raw1394/gst1394clock.c

index b7d4a8f..0505c8c 100644 (file)
@@ -113,6 +113,7 @@ gst_1394_clock_get_internal_time (GstClock * clock)
   _1394clock = GST_1394_CLOCK_CAST (clock);
 
   if (_1394clock->handle != NULL) {
+    GST_OBJECT_LOCK (clock);
     raw1394_read_cycle_timer (_1394clock->handle, &cycle_timer, &local_time);
 
     if (cycle_timer < _1394clock->cycle_timer_lo) {
@@ -130,6 +131,7 @@ gst_1394_clock_get_internal_time (GstClock * clock)
     result += (((cycle_timer >> 12) & 0x1fff) * 125) * GST_USECOND;
 
     GST_LOG_OBJECT (clock, "result %" GST_TIME_FORMAT, GST_TIME_ARGS (result));
+    GST_OBJECT_UNLOCK (clock);
   } else {
     result = GST_CLOCK_TIME_NONE;
   }