summaryrefslogtreecommitdiffstats
path: root/media/capture
diff options
context:
space:
mode:
authorsuvanjanmukherjee <suvanjanmukherjee@gmail.com>2015-10-02 20:43:49 -0700
committerCommit bot <commit-bot@chromium.org>2015-10-03 03:44:42 +0000
commit8c98c566c838ec5f22964ff066a3e16262023f64 (patch)
tree6aa9bd393b5e579353357020f906a6931d06cc99 /media/capture
parent99ce62a76a46f74ee31cd6dd1b28e05d3aafd2fb (diff)
downloadchromium_src-8c98c566c838ec5f22964ff066a3e16262023f64.zip
chromium_src-8c98c566c838ec5f22964ff066a3e16262023f64.tar.gz
chromium_src-8c98c566c838ec5f22964ff066a3e16262023f64.tar.bz2
Change the functions in video_capture_device to pass around PowerLineFrequency enums instead of integers to reduce the amount of static casting required
BUG=525167 Review URL: https://codereview.chromium.org/1345993002 Cr-Commit-Position: refs/heads/master@{#352234}
Diffstat (limited to 'media/capture')
-rw-r--r--media/capture/video/linux/video_capture_device_linux.cc7
-rw-r--r--media/capture/video/linux/video_capture_device_linux.h2
-rw-r--r--media/capture/video/mac/video_capture_device_mac.mm17
-rw-r--r--media/capture/video/video_capture_device.cc15
-rw-r--r--media/capture/video/video_capture_device.h5
-rw-r--r--media/capture/video/win/video_capture_device_win.cc15
6 files changed, 31 insertions, 30 deletions
diff --git a/media/capture/video/linux/video_capture_device_linux.cc b/media/capture/video/linux/video_capture_device_linux.cc
index 487199e..cbf2b49 100644
--- a/media/capture/video/linux/video_capture_device_linux.cc
+++ b/media/capture/video/linux/video_capture_device_linux.cc
@@ -132,11 +132,12 @@ void VideoCaptureDeviceLinux::SetRotation(int rotation) {
}
// static
-int VideoCaptureDeviceLinux::TranslatePowerLineFrequencyToV4L2(int frequency) {
+int VideoCaptureDeviceLinux::TranslatePowerLineFrequencyToV4L2(
+ PowerLineFrequency frequency) {
switch (frequency) {
- case static_cast<int>(media::PowerLineFrequency::FREQUENCY_50HZ):
+ case media::PowerLineFrequency::FREQUENCY_50HZ:
return V4L2_CID_POWER_LINE_FREQUENCY_50HZ;
- case static_cast<int>(media::PowerLineFrequency::FREQUENCY_60HZ):
+ case media::PowerLineFrequency::FREQUENCY_60HZ:
return V4L2_CID_POWER_LINE_FREQUENCY_60HZ;
default:
// If we have no idea of the frequency, at least try and set it to AUTO.
diff --git a/media/capture/video/linux/video_capture_device_linux.h b/media/capture/video/linux/video_capture_device_linux.h
index 61e2cba..100d87f 100644
--- a/media/capture/video/linux/video_capture_device_linux.h
+++ b/media/capture/video/linux/video_capture_device_linux.h
@@ -41,7 +41,7 @@ class VideoCaptureDeviceLinux : public VideoCaptureDevice {
void SetRotation(int rotation);
private:
- static int TranslatePowerLineFrequencyToV4L2(int frequency);
+ static int TranslatePowerLineFrequencyToV4L2(PowerLineFrequency frequency);
// Internal delegate doing the actual capture setting, buffer allocation and
// circulation with the V4L2 API. Created and deleted in the thread where
diff --git a/media/capture/video/mac/video_capture_device_mac.mm b/media/capture/video/mac/video_capture_device_mac.mm
index 8f71b68..5fc083e 100644
--- a/media/capture/video/mac/video_capture_device_mac.mm
+++ b/media/capture/video/mac/video_capture_device_mac.mm
@@ -189,7 +189,7 @@ static bool FindVideoControlInterfaceInDeviceInterface(
// set the appropriate Power Line frequency for flicker removal.
static void SetAntiFlickerInVideoControlInterface(
IOCFPlugInInterface** plugin_interface,
- const int frequency) {
+ const PowerLineFrequency frequency) {
// Create, the control interface for the found plugin, and release
// the intermediate plugin.
IOUSBInterfaceInterface** control_interface = NULL;
@@ -249,7 +249,8 @@ static void SetAntiFlickerInVideoControlInterface(
command.wValue = (selector << 8);
command.wLength = kPuPowerLineFrequencyControlCommandSize;
command.wLenDone = 0;
- int power_line_flag_value = (frequency == 50) ? k50Hz : k60Hz;
+ int power_line_flag_value =
+ (frequency == PowerLineFrequency::FREQUENCY_50HZ) ? k50Hz : k60Hz;
command.pData = &power_line_flag_value;
IOReturn ret =
@@ -257,8 +258,8 @@ static void SetAntiFlickerInVideoControlInterface(
DLOG_IF(ERROR, ret != kIOReturnSuccess) << "Anti-flicker control request"
<< " failed (0x" << std::hex << ret
<< "), unit id: " << real_unit_id;
- DVLOG_IF(1, ret == kIOReturnSuccess) << "Anti-flicker set to " << frequency
- << "Hz";
+ DVLOG_IF(1, ret == kIOReturnSuccess) << "Anti-flicker set to "
+ << static_cast<int>(frequency) << "Hz";
(*control_interface)->USBInterfaceClose(control_interface);
}
@@ -270,11 +271,11 @@ static void SetAntiFlickerInVideoControlInterface(
// are created. The latter is used to a send a power frequency setting command.
static void SetAntiFlickerInUsbDevice(const int vendor_id,
const int product_id,
- const int frequency) {
- if (frequency == 0)
+ const PowerLineFrequency frequency) {
+ if (frequency == PowerLineFrequency::FREQUENCY_DEFAULT)
return;
- DVLOG(1) << "Setting Power Line Frequency to " << frequency << " Hz, device "
- << std::hex << vendor_id << "-" << product_id;
+ DVLOG(1) << "Setting Power Line Frequency to " << static_cast<int>(frequency)
+ << " Hz, device " << std::hex << vendor_id << "-" << product_id;
// Compose a search dictionary with vendor and product ID.
CFMutableDictionaryRef query_dictionary =
diff --git a/media/capture/video/video_capture_device.cc b/media/capture/video/video_capture_device.cc
index 01816c2..e7e2c91 100644
--- a/media/capture/video/video_capture_device.cc
+++ b/media/capture/video/video_capture_device.cc
@@ -145,10 +145,11 @@ VideoCaptureDevice::Client::Buffer::~Buffer() {
VideoCaptureDevice::~VideoCaptureDevice() {
}
-int VideoCaptureDevice::GetPowerLineFrequencyForLocation() const {
- std::string current_country = base::CountryCodeForCurrentTimezone();
+PowerLineFrequency VideoCaptureDevice::GetPowerLineFrequencyForLocation()
+ const {
+ const std::string current_country = base::CountryCodeForCurrentTimezone();
if (current_country.empty())
- return 0;
+ return PowerLineFrequency::FREQUENCY_DEFAULT;
// Sorted out list of countries with 60Hz power line frequency, from
// http://en.wikipedia.org/wiki/Mains_electricity_by_country
const char* countries_using_60Hz[] = {
@@ -160,17 +161,17 @@ int VideoCaptureDevice::GetPowerLineFrequencyForLocation() const {
countries_using_60Hz + arraysize(countries_using_60Hz);
if (std::find(countries_using_60Hz, countries_using_60Hz_end,
current_country) == countries_using_60Hz_end) {
- return static_cast<int>(media::PowerLineFrequency::FREQUENCY_50HZ);
+ return media::PowerLineFrequency::FREQUENCY_50HZ;
}
- return static_cast<int>(media::PowerLineFrequency::FREQUENCY_60HZ);
+ return media::PowerLineFrequency::FREQUENCY_60HZ;
}
-int VideoCaptureDevice::GetPowerLineFrequency(
+PowerLineFrequency VideoCaptureDevice::GetPowerLineFrequency(
const VideoCaptureParams& params) const {
switch (params.power_line_frequency) {
case media::PowerLineFrequency::FREQUENCY_50HZ: // fall through
case media::PowerLineFrequency::FREQUENCY_60HZ:
- return static_cast<int>(params.power_line_frequency);
+ return params.power_line_frequency;
default:
return GetPowerLineFrequencyForLocation();
}
diff --git a/media/capture/video/video_capture_device.h b/media/capture/video/video_capture_device.h
index 33601336..b66409b 100644
--- a/media/capture/video/video_capture_device.h
+++ b/media/capture/video/video_capture_device.h
@@ -283,12 +283,13 @@ class MEDIA_EXPORT VideoCaptureDevice {
// Gets the power line frequency, either from the params if specified by the
// user or from the current system time zone.
- int GetPowerLineFrequency(const VideoCaptureParams& params) const;
+ PowerLineFrequency GetPowerLineFrequency(
+ const VideoCaptureParams& params) const;
private:
// Gets the power line frequency from the current system time zone if this is
// defined, otherwise returns 0.
- int GetPowerLineFrequencyForLocation() const;
+ PowerLineFrequency GetPowerLineFrequencyForLocation() const;
};
} // namespace media
diff --git a/media/capture/video/win/video_capture_device_win.cc b/media/capture/video/win/video_capture_device_win.cc
index 055fc21..9960406 100644
--- a/media/capture/video/win/video_capture_device_win.cc
+++ b/media/capture/video/win/video_capture_device_win.cc
@@ -539,11 +539,9 @@ bool VideoCaptureDeviceWin::CreateCapabilityMap() {
// Set the power line frequency removal in |capture_filter_| if available.
void VideoCaptureDeviceWin::SetAntiFlickerInCaptureFilter(
const VideoCaptureParams& params) {
- const int power_line_frequency = GetPowerLineFrequency(params);
- if (power_line_frequency !=
- static_cast<int>(media::PowerLineFrequency::FREQUENCY_50HZ) &&
- power_line_frequency !=
- static_cast<int>(media::PowerLineFrequency::FREQUENCY_60HZ)) {
+ const PowerLineFrequency power_line_frequency = GetPowerLineFrequency(params);
+ if (power_line_frequency != media::PowerLineFrequency::FREQUENCY_50HZ &&
+ power_line_frequency != media::PowerLineFrequency::FREQUENCY_60HZ) {
return;
}
ScopedComPtr<IKsPropertySet> ks_propset;
@@ -559,10 +557,9 @@ void VideoCaptureDeviceWin::SetAntiFlickerInCaptureFilter(
data.Property.Set = PROPSETID_VIDCAP_VIDEOPROCAMP;
data.Property.Id = KSPROPERTY_VIDEOPROCAMP_POWERLINE_FREQUENCY;
data.Property.Flags = KSPROPERTY_TYPE_SET;
- data.Value = (power_line_frequency ==
- static_cast<int>(media::PowerLineFrequency::FREQUENCY_50HZ))
- ? 1
- : 2;
+ data.Value =
+ (power_line_frequency == media::PowerLineFrequency::FREQUENCY_50HZ) ? 1
+ : 2;
data.Flags = KSPROPERTY_VIDEOPROCAMP_FLAGS_MANUAL;
hr = ks_propset->Set(PROPSETID_VIDCAP_VIDEOPROCAMP,
KSPROPERTY_VIDEOPROCAMP_POWERLINE_FREQUENCY, &data,