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