v4l2object: Check for mmap64 before using it
mmap64 is not available on FreeBSD.
https://bugzilla.gnome.org/show_bug.cgi?id=791779
diff --git a/configure.ac b/configure.ac
index 3846303..6e3e577 100644
--- a/configure.ac
+++ b/configure.ac
@@ -197,6 +197,7 @@
dnl Check for mmap (needed by electricfence plugin)
AC_FUNC_MMAP
+AC_CHECK_FUNCS([mmap64])
AM_CONDITIONAL(GST_HAVE_MMAP, test "x$ac_cv_func_mmap_fixed_mapped" = "xyes")
dnl Check for mmap (needed by electricfence plugin)
diff --git a/meson.build b/meson.build
index 61f0077..ebae8cb 100644
--- a/meson.build
+++ b/meson.build
@@ -105,6 +105,7 @@
['HAVE_ISINF', 'isinf', '#include<math.h>'],
# check token HAVE_LIBV4L2
['HAVE_MMAP', 'mmap', '#include<sys/mman.h>'],
+ ['HAVE_MMAP64', 'mmap64', '#include<sys/mman.h>'],
# check token HAVE_OSX_AUDIO
# check token HAVE_OSX_VIDEO
# check token HAVE_RDTSC
diff --git a/sys/v4l2/gstv4l2object.c b/sys/v4l2/gstv4l2object.c
index bf1a88c..c2400d1 100644
--- a/sys/v4l2/gstv4l2object.c
+++ b/sys/v4l2/gstv4l2object.c
@@ -515,7 +515,11 @@
v4l2object->dup = dup;
v4l2object->ioctl = ioctl;
v4l2object->read = read;
+#ifdef HAVE_MMAP64
v4l2object->mmap = mmap64;
+#else
+ v4l2object->mmap = mmap;
+#endif
v4l2object->munmap = munmap;
}