v4l2: Fix compilation without libv4l2
authorNicolas Dufresne <nicolas.dufresne@collabora.com>
Mon, 24 Jul 2017 20:45:40 +0000 (16:45 -0400)
committerNicolas Dufresne <nicolas.dufresne@collabora.com>
Mon, 24 Jul 2017 20:45:40 +0000 (16:45 -0400)
sys/v4l2/gstv4l2allocator.c
sys/v4l2/gstv4l2bufferpool.c
sys/v4l2/gstv4l2object.h

index cb488ef..24bdc0f 100644 (file)
@@ -37,6 +37,7 @@
 #include <sys/stat.h>
 #include <sys/types.h>
 #include <sys/mman.h>
+#include <unistd.h>
 
 #define GST_V4L2_MEMORY_TYPE "V4l2Memory"
 
index d51c5c7..cf8c29e 100644 (file)
@@ -1517,7 +1517,7 @@ gst_v4l2_buffer_pool_finalize (GObject * object)
   GstV4l2BufferPool *pool = GST_V4L2_BUFFER_POOL (object);
 
   if (pool->video_fd >= 0)
-    v4l2_close (pool->video_fd);
+    pool->obj->close (pool->video_fd);
 
   gst_poll_free (pool->poll);
 
@@ -1581,7 +1581,7 @@ gst_v4l2_buffer_pool_new (GstV4l2Object * obj, GstCaps * caps)
   gchar *name, *parent_name;
   gint fd;
 
-  fd = v4l2_dup (obj->video_fd);
+  fd = obj->dup (obj->video_fd);
   if (fd < 0)
     goto dup_failed;
 
index ed38dbf..7f46f8d 100644 (file)
@@ -187,14 +187,14 @@ struct _GstV4l2Object {
   GstV4l2UpdateFpsFunction update_fps_func;
 
   /* syscalls */
-  int (*fd_open) (int fd, int v4l2_flags);
-  int (*close) (int fd);
-  int (*dup) (int fd);
-  int (*ioctl) (int fd, unsigned long int request, ...);
-  ssize_t (*read) (int fd, void *buffer, size_t n);
-  void * (*mmap) (void *start, size_t length, int prot, int flags,
-      int fd, int64_t offset);
-  int (*munmap) (void *_start, size_t length);
+  gint (*fd_open) (gint fd, gint v4l2_flags);
+  gint (*close) (gint fd);
+  gint (*dup) (gint fd);
+  gint (*ioctl) (gint fd, gulong request, ...);
+  gssize (*read) (gint fd, gpointer buffer, gsize n);
+  gpointer (*mmap) (gpointer start, gsize length, gint prot, gint flags,
+      gint fd, gint64 offset);
+  gint (*munmap) (gpointer _start, gsize length);
 
   /* Quirks */
   /* Skips interlacing probes */