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