1From 7b685dab8b859ae74f88d6b68056c58bbf10bb0f Mon Sep 17 00:00:00 2001 2From: Damian Hobson-Garcia <dhobsong@igel.co.jp> 3Date: Wed, 21 Mar 2018 13:18:17 +0200 4Subject: [PATCH 02/17] Add mmap via libv4l to generic_v4l2_device 5 6Issue #437 7--- 8 media/gpu/v4l2/generic_v4l2_device.cc | 10 ++++++++++ 9 media/gpu/v4l2/v4l2.sig | 2 ++ 10 2 files changed, 12 insertions(+) 11 12diff --git a/media/gpu/v4l2/generic_v4l2_device.cc b/media/gpu/v4l2/generic_v4l2_device.cc 13index 184111288..ee637c196 100644 14--- a/media/gpu/v4l2/generic_v4l2_device.cc 15+++ b/media/gpu/v4l2/generic_v4l2_device.cc 16@@ -124,10 +124,20 @@ void* GenericV4L2Device::Mmap(void* addr, 17 int flags, 18 unsigned int offset) { 19 DCHECK(device_fd_.is_valid()); 20+#if BUILDFLAG(USE_LIBV4L2) 21+ if (use_libv4l2_) 22+ return v4l2_mmap(addr, len, prot, flags, device_fd_.get(), offset); 23+#endif 24 return mmap(addr, len, prot, flags, device_fd_.get(), offset); 25 } 26 27 void GenericV4L2Device::Munmap(void* addr, unsigned int len) { 28+#if BUILDFLAG(USE_LIBV4L2) 29+ if (use_libv4l2_) { 30+ v4l2_munmap(addr, len); 31+ return; 32+ } 33+#endif 34 munmap(addr, len); 35 } 36 37diff --git a/media/gpu/v4l2/v4l2.sig b/media/gpu/v4l2/v4l2.sig 38index 4269fb48d..71b5b3787 100644 39--- a/media/gpu/v4l2/v4l2.sig 40+++ b/media/gpu/v4l2/v4l2.sig 41@@ -8,3 +8,5 @@ 42 LIBV4L_PUBLIC int v4l2_close(int fd); 43 LIBV4L_PUBLIC int v4l2_ioctl(int fd, unsigned long int request, ...); 44 LIBV4L_PUBLIC int v4l2_fd_open(int fd, int v4l2_flags); 45+LIBV4L_PUBLIC void *v4l2_mmap(void *start, size_t length, int prot, int flags, int fd, int64_t offset); 46+LIBV4L_PUBLIC int v4l2_munmap(void *_start, size_t length); 47-- 482.20.1 49 50