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;
   }