v4l2allocator: Fix use of atomic active marker
authorNicolas Dufresne <nicolas.dufresne@collabora.com>
Wed, 14 May 2014 17:28:31 +0000 (13:28 -0400)
committerNicolas Dufresne <nicolas.dufresne@collabora.com>
Thu, 15 May 2014 16:21:35 +0000 (12:21 -0400)
https://bugzilla.gnome.org/show_bug.cgi?id=730207

sys/v4l2/gstv4l2allocator.c

index ebc1f31..c745a9b 100644 (file)
@@ -500,7 +500,7 @@ gst_v4l2_allocator_create_buf (GstV4l2Allocator * allocator)
 
   GST_OBJECT_LOCK (allocator);
 
-  if (!allocator->active)
+  if (!g_atomic_int_get (&allocator->active))
     goto done;
 
   bcreate.memory = allocator->memory;
@@ -661,7 +661,7 @@ gst_v4l2_allocator_start (GstV4l2Allocator * allocator, guint32 count,
 
   GST_OBJECT_LOCK (allocator);
 
-  if (allocator->active)
+  if (g_atomic_int_get (&allocator->active))
     goto already_active;
 
   if (v4l2_ioctl (allocator->video_fd, VIDIOC_REQBUFS, &breq) < 0)
@@ -742,7 +742,7 @@ gst_v4l2_allocator_stop (GstV4l2Allocator * allocator)
 
   GST_OBJECT_LOCK (allocator);
 
-  if (!allocator->active)
+  if (!g_atomic_int_get (&allocator->active))
     goto done;
 
   if (gst_atomic_queue_length (allocator->free_queue) != allocator->count) {
@@ -1191,7 +1191,7 @@ gst_v4l2_allocator_flush (GstV4l2Allocator * allocator)
 
   GST_OBJECT_LOCK (allocator);
 
-  if (!allocator->active)
+  if (!g_atomic_int_get (&allocator->active))
     goto done;
 
   for (i = 0; i < allocator->count; i++) {