From 3cb7cdfa29f5a829afc0d9f89f520bcae6206f55 Mon Sep 17 00:00:00 2001
|
From: Damian Hobson-Garcia <dhobsong@igel.co.jp>
|
Date: Wed, 21 Mar 2018 13:18:17 +0200
|
Subject: [PATCH 04/12] Add mmap via libv4l to generic_v4l2_device
|
|
Issue #437
|
---
|
.../chromium/media/gpu/v4l2/generic_v4l2_device.cc | 10 ++++++++++
|
src/3rdparty/chromium/media/gpu/v4l2/v4l2.sig | 2 ++
|
2 files changed, 12 insertions(+)
|
|
diff --git a/src/3rdparty/chromium/media/gpu/v4l2/generic_v4l2_device.cc b/src/3rdparty/chromium/media/gpu/v4l2/generic_v4l2_device.cc
|
index f0f103458b..70a15d047f 100644
|
--- a/src/3rdparty/chromium/media/gpu/v4l2/generic_v4l2_device.cc
|
+++ b/src/3rdparty/chromium/media/gpu/v4l2/generic_v4l2_device.cc
|
@@ -99,10 +99,20 @@ void* GenericV4L2Device::Mmap(void* addr,
|
int flags,
|
unsigned int offset) {
|
DCHECK(device_fd_.is_valid());
|
+#if BUILDFLAG(USE_LIBV4L2)
|
+ if (use_libv4l2_)
|
+ return v4l2_mmap(addr, len, prot, flags, device_fd_.get(), offset);
|
+#endif
|
return mmap(addr, len, prot, flags, device_fd_.get(), offset);
|
}
|
|
void GenericV4L2Device::Munmap(void* addr, unsigned int len) {
|
+#if BUILDFLAG(USE_LIBV4L2)
|
+ if (use_libv4l2_) {
|
+ v4l2_munmap(addr, len);
|
+ return;
|
+ }
|
+#endif
|
munmap(addr, len);
|
}
|
|
diff --git a/src/3rdparty/chromium/media/gpu/v4l2/v4l2.sig b/src/3rdparty/chromium/media/gpu/v4l2/v4l2.sig
|
index 4269fb48d5..71b5b3787d 100644
|
--- a/src/3rdparty/chromium/media/gpu/v4l2/v4l2.sig
|
+++ b/src/3rdparty/chromium/media/gpu/v4l2/v4l2.sig
|
@@ -8,3 +8,5 @@
|
LIBV4L_PUBLIC int v4l2_close(int fd);
|
LIBV4L_PUBLIC int v4l2_ioctl(int fd, unsigned long int request, ...);
|
LIBV4L_PUBLIC int v4l2_fd_open(int fd, int v4l2_flags);
|
+LIBV4L_PUBLIC void *v4l2_mmap(void *start, size_t length, int prot, int flags, int fd, int64_t offset);
|
+LIBV4L_PUBLIC int v4l2_munmap(void *_start, size_t length);
|
--
|
2.20.1
|