summaryrefslogtreecommitdiff
path: root/chromium/media
diff options
context:
space:
mode:
authorMichal Klocek <michal.klocek@qt.io>2017-01-03 14:46:48 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2017-07-31 13:46:42 +0200
commit770c1f9e7428ef158533e17bb25c7dc000ea37a3 (patch)
tree544bf1435ef20133738890f2ff905e50187f40fd /chromium/media
parent76f155f81acc7a5d8cdb7722b06f52ddf1650d03 (diff)
downloadqtwebengine-chromium-770c1f9e7428ef158533e17bb25c7dc000ea37a3.tar.gz
Fix Linux kernel lacking V4L2_CID_POWER_LINE_FREQUENCY_AUTO
Fix compilation with older Linux kernel's (e.g. Red Hat 6.6). The enum was introduced in Linux kernel version 3.2 (kernel commit d26a6635b2421). Task-number: QTBUG-48298 Task-number: QTBUG-57014 Change-Id: I05b86520fc162d55d043d70d1b92aea5f7a61bc5 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
Diffstat (limited to 'chromium/media')
-rw-r--r--chromium/media/capture/video/linux/v4l2_capture_delegate.cc13
-rw-r--r--chromium/media/capture/video/linux/video_capture_device_linux.cc5
2 files changed, 15 insertions, 3 deletions
diff --git a/chromium/media/capture/video/linux/v4l2_capture_delegate.cc b/chromium/media/capture/video/linux/v4l2_capture_delegate.cc
index 118d9976ea5..be27a97586a 100644
--- a/chromium/media/capture/video/linux/v4l2_capture_delegate.cc
+++ b/chromium/media/capture/video/linux/v4l2_capture_delegate.cc
@@ -12,6 +12,10 @@
#include <sys/mman.h>
#include <utility>
+#if !defined(OS_OPENBSD)
+#include <linux/version.h>
+#endif
+
#include "base/bind.h"
#include "base/files/file_enumerator.h"
#include "base/posix/eintr_wrapper.h"
@@ -468,9 +472,12 @@ void V4L2CaptureDelegate::AllocateAndStart(
// Set anti-banding/anti-flicker to 50/60Hz. May fail due to not supported
// operation (|errno| == EINVAL in this case) or plain failure.
- if ((power_line_frequency_ == V4L2_CID_POWER_LINE_FREQUENCY_50HZ) ||
- (power_line_frequency_ == V4L2_CID_POWER_LINE_FREQUENCY_60HZ) ||
- (power_line_frequency_ == V4L2_CID_POWER_LINE_FREQUENCY_AUTO)) {
+ if ((power_line_frequency_ == V4L2_CID_POWER_LINE_FREQUENCY_50HZ)
+ || (power_line_frequency_ == V4L2_CID_POWER_LINE_FREQUENCY_60HZ)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
+ || (power_line_frequency_ == V4L2_CID_POWER_LINE_FREQUENCY_AUTO)
+#endif
+ ) {
struct v4l2_control control = {};
control.id = V4L2_CID_POWER_LINE_FREQUENCY;
control.value = power_line_frequency_;
diff --git a/chromium/media/capture/video/linux/video_capture_device_linux.cc b/chromium/media/capture/video/linux/video_capture_device_linux.cc
index ff0402bfa12..4b3e8bcbae1 100644
--- a/chromium/media/capture/video/linux/video_capture_device_linux.cc
+++ b/chromium/media/capture/video/linux/video_capture_device_linux.cc
@@ -17,6 +17,7 @@
#include <sys/videoio.h>
#else
#include <linux/videodev2.h>
+#include <linux/version.h>
#endif
namespace media {
@@ -145,8 +146,12 @@ int VideoCaptureDeviceLinux::TranslatePowerLineFrequencyToV4L2(
case media::PowerLineFrequency::FREQUENCY_60HZ:
return V4L2_CID_POWER_LINE_FREQUENCY_60HZ;
default:
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
// If we have no idea of the frequency, at least try and set it to AUTO.
return V4L2_CID_POWER_LINE_FREQUENCY_AUTO;
+#else
+ return V4L2_CID_POWER_LINE_FREQUENCY_60HZ;
+#endif
}
}