Reland of Unify the macOS and iOS capturer implementations (patchset #1 id:1 of https://codereview.webrtc.org/2381853002/ )

Reason for revert:
Internal project has been fixed

Original issue's description:
> Revert of Unify the macOS and iOS capturer implementations (patchset #4 id:60001 of https://codereview.webrtc.org/2309253005/ )
>
> Reason for revert:
> Breaks internal project
>
> Original issue's description:
> > Unify the macOS and iOS capturer implementations
> >
> > This removes the QTKit based capturer for mac, and removes the need
> > to link against deprecated system libraries on macOS.
> >
> > BUG=webrtc:3968,webrtc:6275,webrtc:6333
> >
> > Committed: https://crrev.com/242d8bdddd77109781cbb70c59d161be7566ac98
> > Cr-Commit-Position: refs/heads/master@{#14418}
>
> TBR=magjed@webrtc.org,tkchin@webrtc.org,perkj@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:3968,webrtc:6275,webrtc:6333
>
> Committed: https://crrev.com/eddb7571d81e51a66f4abaf55013c85b4132c837
> Cr-Commit-Position: refs/heads/master@{#14429}

TBR=magjed@webrtc.org,tkchin@webrtc.org,perkj@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:3968,webrtc:6275,webrtc:6333

Review-Url: https://codereview.webrtc.org/2375273004
Cr-Commit-Position: refs/heads/master@{#14451}
diff --git a/webrtc/modules/video_capture/BUILD.gn b/webrtc/modules/video_capture/BUILD.gn
index 60573ba..cd4d3c9 100644
--- a/webrtc/modules/video_capture/BUILD.gn
+++ b/webrtc/modules/video_capture/BUILD.gn
@@ -60,7 +60,7 @@
 
 if (!build_with_chromium) {
   config("video_capture_internal_impl_config") {
-    if (is_ios) {
+    if (is_ios || is_mac) {
       libs = [
         "AVFoundation.framework",
         "CoreMedia.framework",
@@ -104,30 +104,6 @@
       ]
       deps += [ "../..:webrtc_common" ]
     }
-    if (is_mac) {
-      sources = [
-        "mac/qtkit/video_capture_qtkit.h",
-        "mac/qtkit/video_capture_qtkit.mm",
-        "mac/qtkit/video_capture_qtkit_info.h",
-        "mac/qtkit/video_capture_qtkit_info.mm",
-        "mac/qtkit/video_capture_qtkit_info_objc.h",
-        "mac/qtkit/video_capture_qtkit_info_objc.mm",
-        "mac/qtkit/video_capture_qtkit_objc.h",
-        "mac/qtkit/video_capture_qtkit_objc.mm",
-        "mac/qtkit/video_capture_qtkit_utility.h",
-        "mac/video_capture_mac.mm",
-      ]
-
-      libs = [
-        # For NSAlert in video_capture_qtkit_info_objc.mm.
-        "Cocoa.framework",
-
-        # For GetGestalt in video_capture_mac.mm.
-        "CoreServices.framework",
-        "CoreVideo.framework",
-        "QTKit.framework",
-      ]
-    }
     if (is_win) {
       sources = [
         "windows/device_info_ds.cc",
@@ -149,16 +125,16 @@
 
       deps += [ "//third_party/winsdk_samples" ]
     }
-    if (is_ios) {
+    if (is_ios || is_mac) {
       sources = [
-        "ios/device_info_ios.h",
-        "ios/device_info_ios.mm",
-        "ios/device_info_ios_objc.h",
-        "ios/device_info_ios_objc.mm",
-        "ios/rtc_video_capture_ios_objc.h",
-        "ios/rtc_video_capture_ios_objc.mm",
-        "ios/video_capture_ios.h",
-        "ios/video_capture_ios.mm",
+        "objc/device_info.h",
+        "objc/device_info.mm",
+        "objc/device_info_objc.h",
+        "objc/device_info_objc.mm",
+        "objc/rtc_video_capture_objc.h",
+        "objc/rtc_video_capture_objc.mm",
+        "objc/video_capture.h",
+        "objc/video_capture.mm",
       ]
 
       cflags = [
@@ -183,7 +159,6 @@
   if (!is_android && rtc_include_tests) {
     rtc_test("video_capture_tests") {
       sources = [
-        "test/video_capture_main_mac.mm",
         "test/video_capture_unittest.cc",
       ]
 
@@ -215,11 +190,7 @@
         "../utility",
         "//testing/gtest",
       ]
-      if (is_mac) {
-        deps += [ "//webrtc/test:test_support_main_threaded_mac" ]
-      } else {
-        deps += [ "//webrtc/test:test_support_main" ]
-      }
+      deps += [ "//webrtc/test:test_support_main" ]
 
       if (is_clang) {
         # Suppress warnings from Chrome's Clang plugins.
diff --git a/webrtc/modules/video_capture/mac/qtkit/video_capture_qtkit.h b/webrtc/modules/video_capture/mac/qtkit/video_capture_qtkit.h
deleted file mode 100644
index e3ddd9f..0000000
--- a/webrtc/modules/video_capture/mac/qtkit/video_capture_qtkit.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- *  Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS.  All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#ifndef WEBRTC_MODULES_VIDEO_CAPTURE_MAIN_SOURCE_MAC_QTKIT_VIDEO_CAPTURE_QTKIT_H_
-#define WEBRTC_MODULES_VIDEO_CAPTURE_MAIN_SOURCE_MAC_QTKIT_VIDEO_CAPTURE_QTKIT_H_
-
-#import <QTKit/QTKit.h>
-#include <stdio.h>
-
-#include "webrtc/modules/video_capture/device_info_impl.h"
-#include "webrtc/modules/video_capture/mac/qtkit/video_capture_qtkit_utility.h"
-#include "webrtc/modules/video_capture/video_capture_impl.h"
-
-@class VideoCaptureMacQTKitObjC;
-@class VideoCaptureMacQTKitInfoObjC;
-
-namespace webrtc
-{
-namespace videocapturemodule
-{
-
-class VideoCaptureMacQTKit : public VideoCaptureImpl
-{
-public:
-    VideoCaptureMacQTKit(const int32_t id);
-    virtual ~VideoCaptureMacQTKit();
-
-    /*
-    *   Create a video capture module object
-    *
-    *   id - unique identifier of this video capture module object
-    *   deviceUniqueIdUTF8 -  name of the device. Available names can be found
-    *       by using GetDeviceName
-    *   deviceUniqueIdUTF8Length - length of deviceUniqueIdUTF8
-    */
-    static void Destroy(VideoCaptureModule* module);
-
-    int32_t Init(const int32_t id, const char* deviceUniqueIdUTF8);
-
-
-    // Start/Stop
-    virtual int32_t StartCapture(
-        const VideoCaptureCapability& capability);
-    virtual int32_t StopCapture();
-
-    // Properties of the set device
-
-    virtual bool CaptureStarted();
-
-    int32_t CaptureSettings(VideoCaptureCapability& settings);
-
-protected:
-    // Help functions
-    int32_t SetCameraOutput();
-
-private:
-    VideoCaptureMacQTKitObjC*        _captureDevice;
-    VideoCaptureMacQTKitInfoObjC*    _captureInfo;
-    bool                    _isCapturing;
-    int32_t            _id;
-    int32_t            _captureWidth;
-    int32_t            _captureHeight;
-    int32_t            _captureFrameRate;
-    char                     _currentDeviceNameUTF8[MAX_NAME_LENGTH];
-    char                     _currentDeviceUniqueIdUTF8[MAX_NAME_LENGTH];
-    char                     _currentDeviceProductUniqueIDUTF8[MAX_NAME_LENGTH];
-    int32_t            _frameCount;
-};
-}  // namespace videocapturemodule
-}  // namespace webrtc
-
-#endif  // WEBRTC_MODULES_VIDEO_CAPTURE_MAIN_SOURCE_MAC_QTKIT_VIDEO_CAPTURE_QTKIT_H_
diff --git a/webrtc/modules/video_capture/mac/qtkit/video_capture_qtkit.mm b/webrtc/modules/video_capture/mac/qtkit/video_capture_qtkit.mm
deleted file mode 100644
index ad057b4..0000000
--- a/webrtc/modules/video_capture/mac/qtkit/video_capture_qtkit.mm
+++ /dev/null
@@ -1,211 +0,0 @@
-/*
- *  Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS.  All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#include "webrtc/modules/video_capture/mac/qtkit/video_capture_qtkit.h"
-#import "webrtc/modules/video_capture/mac/qtkit/video_capture_qtkit_info_objc.h"
-#import "webrtc/modules/video_capture/mac/qtkit/video_capture_qtkit_objc.h"
-#include "webrtc/modules/video_capture/video_capture_config.h"
-#include "webrtc/system_wrappers/include/critical_section_wrapper.h"
-#include "webrtc/system_wrappers/include/trace.h"
-
-namespace webrtc
-{
-
-namespace videocapturemodule
-{
-
-VideoCaptureMacQTKit::VideoCaptureMacQTKit(const int32_t id) :
-    VideoCaptureImpl(id),
-    _captureDevice(NULL),
-    _captureInfo(NULL),
-    _isCapturing(false),
-    _id(id),
-    _captureWidth(QTKIT_DEFAULT_WIDTH),
-    _captureHeight(QTKIT_DEFAULT_HEIGHT),
-    _captureFrameRate(QTKIT_DEFAULT_FRAME_RATE),
-    _frameCount(0)
-{
-
-    memset(_currentDeviceNameUTF8, 0, MAX_NAME_LENGTH);
-    memset(_currentDeviceUniqueIdUTF8, 0, MAX_NAME_LENGTH);
-    memset(_currentDeviceProductUniqueIDUTF8, 0, MAX_NAME_LENGTH);
-}
-
-VideoCaptureMacQTKit::~VideoCaptureMacQTKit()
-{
-
-    WEBRTC_TRACE(webrtc::kTraceDebug, webrtc::kTraceVideoCapture, _id,
-                 "~VideoCaptureMacQTKit() called");
-    if(_captureDevice)
-    {
-        [_captureDevice registerOwner:nil];
-        [_captureDevice stopCapture];
-        [_captureDevice release];
-    }
-
-    if(_captureInfo)
-    {
-        [_captureInfo release];
-    }
-}
-
-int32_t VideoCaptureMacQTKit::Init(
-    const int32_t id, const char* iDeviceUniqueIdUTF8)
-{
-    CriticalSectionScoped cs(&_apiCs);
-
-
-    const int32_t nameLength =
-        (int32_t) strlen((char*)iDeviceUniqueIdUTF8);
-    if(nameLength>kVideoCaptureUniqueNameLength)
-        return -1;
-
-    // Store the device name
-    _deviceUniqueId = new char[nameLength+1];
-    memcpy(_deviceUniqueId, iDeviceUniqueIdUTF8,nameLength+1);
-
-    _captureDevice = [[VideoCaptureMacQTKitObjC alloc] init];
-    if(NULL == _captureDevice)
-    {
-        WEBRTC_TRACE(webrtc::kTraceError, webrtc::kTraceVideoCapture, id,
-                     "Failed to create an instance of "
-                     "VideoCaptureMacQTKitObjC");
-        return -1;
-    }
-
-    [_captureDevice registerOwner:this];
-
-    if(0 == strcmp((char*)iDeviceUniqueIdUTF8, ""))
-    {
-        // the user doesn't want to set a capture device at this time
-        return 0;
-    }
-
-    _captureInfo = [[VideoCaptureMacQTKitInfoObjC alloc]init];
-    if(nil == _captureInfo)
-    {
-        WEBRTC_TRACE(webrtc::kTraceError, webrtc::kTraceVideoCapture, id,
-        "Failed to create an instance of VideoCaptureMacQTKitInfoObjC");
-        return -1;
-    }
-
-    int captureDeviceCount = [[_captureInfo getCaptureDeviceCount]intValue];
-    if(captureDeviceCount < 0)
-    {
-        WEBRTC_TRACE(webrtc::kTraceError, webrtc::kTraceVideoCapture, id,
-                     "No Capture Devices Present");
-        return -1;
-    }
-
-    const int NAME_LENGTH = 1024;
-    char deviceNameUTF8[1024] = "";
-    char deviceUniqueIdUTF8[1024] = "";
-    char deviceProductUniqueIDUTF8[1024] = "";
-
-    bool captureDeviceFound = false;
-    for(int index = 0; index < captureDeviceCount; index++){
-
-        memset(deviceNameUTF8, 0, NAME_LENGTH);
-        memset(deviceUniqueIdUTF8, 0, NAME_LENGTH);
-        memset(deviceProductUniqueIDUTF8, 0, NAME_LENGTH);
-        if(-1 == [[_captureInfo getDeviceNamesFromIndex:index
-                   DefaultName:deviceNameUTF8 WithLength:NAME_LENGTH
-                   AndUniqueID:deviceUniqueIdUTF8 WithLength:NAME_LENGTH
-                   AndProductID:deviceProductUniqueIDUTF8
-                   WithLength:NAME_LENGTH]intValue])
-        {
-            WEBRTC_TRACE(webrtc::kTraceError, webrtc::kTraceVideoCapture, _id,
-                         "GetDeviceName returned -1 for index %d", index);
-            return -1;
-        }
-        if(0 == strcmp((const char*)iDeviceUniqueIdUTF8,
-                       (char*)deviceUniqueIdUTF8))
-        {
-            // we have a match
-            captureDeviceFound = true;
-            break;
-        }
-    }
-
-    if(false == captureDeviceFound)
-    {
-        WEBRTC_TRACE(webrtc::kTraceInfo, webrtc::kTraceVideoCapture, _id,
-                     "Failed to find capture device unique ID %s",
-                     iDeviceUniqueIdUTF8);
-        return -1;
-    }
-
-    // at this point we know that the user has passed in a valid camera. Let's
-    // set it as the current.
-    if(![_captureDevice setCaptureDeviceById:(char*)deviceUniqueIdUTF8])
-    {
-        strcpy((char*)_deviceUniqueId, (char*)deviceUniqueIdUTF8);
-        WEBRTC_TRACE(webrtc::kTraceError, webrtc::kTraceVideoCapture, _id,
-                     "Failed to set capture device %s (unique ID %s) even "
-                     "though it was a valid return from "
-                     "VideoCaptureMacQTKitInfo", deviceNameUTF8,
-                     iDeviceUniqueIdUTF8);
-        return -1;
-    }
-
-    WEBRTC_TRACE(webrtc::kTraceInfo, webrtc::kTraceVideoCapture, _id,
-                 "successfully Init VideoCaptureMacQTKit" );
-    return 0;
-}
-
-int32_t VideoCaptureMacQTKit::StartCapture(
-    const VideoCaptureCapability& capability)
-{
-
-    _captureWidth = capability.width;
-    _captureHeight = capability.height;
-    _captureFrameRate = capability.maxFPS;
-    _captureDelay = 120;
-
-    [_captureDevice setCaptureHeight:_captureHeight
-                               width:_captureWidth
-                           frameRate:_captureFrameRate];
-
-    [_captureDevice startCapture];
-    _isCapturing = true;
-    return 0;
-}
-
-int32_t VideoCaptureMacQTKit::StopCapture()
-{
-    [_captureDevice stopCapture];
-    _isCapturing = false;
-    return 0;
-}
-
-bool VideoCaptureMacQTKit::CaptureStarted()
-{
-    return _isCapturing;
-}
-
-int32_t VideoCaptureMacQTKit::CaptureSettings(VideoCaptureCapability& settings)
-{
-    settings.width = _captureWidth;
-    settings.height = _captureHeight;
-    settings.maxFPS = _captureFrameRate;
-    return 0;
-}
-
-
-// ********** begin functions inherited from DeviceInfoImpl **********
-
-struct VideoCaptureCapabilityMacQTKit:public VideoCaptureCapability
-{
-    VideoCaptureCapabilityMacQTKit()
-    {
-    }
-};
-}  // namespace videocapturemodule
-}  // namespace webrtc
diff --git a/webrtc/modules/video_capture/mac/qtkit/video_capture_qtkit_info.h b/webrtc/modules/video_capture/mac/qtkit/video_capture_qtkit_info.h
deleted file mode 100644
index fd994ad..0000000
--- a/webrtc/modules/video_capture/mac/qtkit/video_capture_qtkit_info.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- *  Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS.  All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#ifndef WEBRTC_MODULES_VIDEO_CAPTURE_MAIN_SOURCE_MAC_QTKIT_VIDEO_CAPTURE_QTKIT_INFO_H_
-#define WEBRTC_MODULES_VIDEO_CAPTURE_MAIN_SOURCE_MAC_QTKIT_VIDEO_CAPTURE_QTKIT_INFO_H_
-
-#include "webrtc/modules/video_capture/device_info_impl.h"
-#include "webrtc/modules/video_capture/mac/qtkit/video_capture_qtkit_utility.h"
-#include "webrtc/modules/video_capture/video_capture_impl.h"
-
-
-@class VideoCaptureMacQTKitInfoObjC;
-
-namespace webrtc
-{
-namespace videocapturemodule
-{
-
-class VideoCaptureMacQTKitInfo: public DeviceInfoImpl
-{
-public:
-
-   VideoCaptureMacQTKitInfo(const int32_t id);
-    virtual ~VideoCaptureMacQTKitInfo();
-
-    int32_t Init();
-
-    virtual uint32_t NumberOfDevices();
-
-    /*
-     * Returns the available capture devices.
-     * deviceNumber   -[in] index of capture device
-     * deviceNameUTF8 - friendly name of the capture device
-     * deviceUniqueIdUTF8 - unique name of the capture device if it exist.
-     *      Otherwise same as deviceNameUTF8
-     * productUniqueIdUTF8 - unique product id if it exist. Null terminated
-     *      otherwise.
-     */
-    virtual int32_t GetDeviceName(
-        uint32_t deviceNumber, char* deviceNameUTF8,
-        uint32_t deviceNameLength, char* deviceUniqueIdUTF8,
-        uint32_t deviceUniqueIdUTF8Length,
-        char* productUniqueIdUTF8 = 0,
-        uint32_t productUniqueIdUTF8Length = 0);
-
-    /*
-     *   Returns the number of capabilities for this device
-     */
-    virtual int32_t NumberOfCapabilities(
-        const char* deviceUniqueIdUTF8);
-
-    /*
-     *   Gets the capabilities of the named device
-     */
-    virtual int32_t GetCapability(
-        const char* deviceUniqueIdUTF8,
-        const uint32_t deviceCapabilityNumber,
-        VideoCaptureCapability& capability);
-
-    /*
-     *  Gets the capability that best matches the requested width, height and frame rate.
-     *  Returns the deviceCapabilityNumber on success.
-     */
-    virtual int32_t GetBestMatchedCapability(
-        const char* deviceUniqueIdUTF8,
-        const VideoCaptureCapability& requested,
-        VideoCaptureCapability& resulting);
-
-    /*
-     * Display OS /capture device specific settings dialog
-     */
-    virtual int32_t DisplayCaptureSettingsDialogBox(
-        const char* deviceUniqueIdUTF8,
-        const char* dialogTitleUTF8, void* parentWindow,
-        uint32_t positionX, uint32_t positionY);
-
-protected:
-    virtual int32_t CreateCapabilityMap(
-        const char* deviceUniqueIdUTF8);
-
-    VideoCaptureMacQTKitInfoObjC*    _captureInfo;
-};
-}  // namespace videocapturemodule
-}  // namespace webrtc
-
-#endif  // WEBRTC_MODULES_VIDEO_CAPTURE_MAIN_SOURCE_MAC_QTKIT_VIDEO_CAPTURE_QTKIT_INFO_H_
diff --git a/webrtc/modules/video_capture/mac/qtkit/video_capture_qtkit_info.mm b/webrtc/modules/video_capture/mac/qtkit/video_capture_qtkit_info.mm
deleted file mode 100644
index 0c0c6a1..0000000
--- a/webrtc/modules/video_capture/mac/qtkit/video_capture_qtkit_info.mm
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- *  Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS.  All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#import "webrtc/modules/video_capture/mac/qtkit/video_capture_qtkit_info_objc.h"
-#include "webrtc/modules/video_capture/video_capture.h"
-#include "webrtc/modules/video_capture/video_capture_config.h"
-#include "webrtc/system_wrappers/include/trace.h"
-
-namespace webrtc
-{
-namespace videocapturemodule
-{
-
-VideoCaptureMacQTKitInfo::VideoCaptureMacQTKitInfo(const int32_t id) :
-    DeviceInfoImpl(id)
-{
-    _captureInfo = [[VideoCaptureMacQTKitInfoObjC alloc] init];
-}
-
-VideoCaptureMacQTKitInfo::~VideoCaptureMacQTKitInfo()
-{
-    [_captureInfo release];
-
-}
-
-int32_t VideoCaptureMacQTKitInfo::Init()
-{
-
-    return 0;
-}
-
-uint32_t VideoCaptureMacQTKitInfo::NumberOfDevices()
-{
-
-    uint32_t captureDeviceCount =
-        [[_captureInfo getCaptureDeviceCount]intValue];
-    return captureDeviceCount;
-
-}
-
-int32_t VideoCaptureMacQTKitInfo::GetDeviceName(
-    uint32_t deviceNumber, char* deviceNameUTF8,
-    uint32_t deviceNameLength, char* deviceUniqueIdUTF8,
-    uint32_t deviceUniqueIdUTF8Length, char* productUniqueIdUTF8,
-    uint32_t productUniqueIdUTF8Length)
-{
-    int errNum = [[_captureInfo getDeviceNamesFromIndex:deviceNumber
-                   DefaultName:deviceNameUTF8 WithLength:deviceNameLength
-                   AndUniqueID:deviceUniqueIdUTF8
-                   WithLength:deviceUniqueIdUTF8Length
-                   AndProductID:productUniqueIdUTF8
-                   WithLength:productUniqueIdUTF8Length]intValue];
-    return errNum;
-}
-
-int32_t VideoCaptureMacQTKitInfo::NumberOfCapabilities(
-    const char* deviceUniqueIdUTF8)
-{
-    // Not implemented. Mac doesn't use discrete steps in capabilities, rather
-    // "analog". QTKit will do it's best to convert frames to what ever format
-    // you ask for.
-    WEBRTC_TRACE(webrtc::kTraceError, webrtc::kTraceVideoCapture, _id,
-                 "NumberOfCapabilities is not supported on the Mac platform.");
-    return -1;
-}
-
-
-int32_t VideoCaptureMacQTKitInfo::GetCapability(
-    const char* deviceUniqueIdUTF8,
-    const uint32_t deviceCapabilityNumber,
-    VideoCaptureCapability& capability)
-{
-    // Not implemented. Mac doesn't use discrete steps in capabilities, rather
-    // "analog". QTKit will do it's best to convert frames to what ever format
-    // you ask for.
-    WEBRTC_TRACE(webrtc::kTraceError, webrtc::kTraceVideoCapture, _id,
-                 "NumberOfCapabilities is not supported on the Mac platform.");
-    return -1;
-}
-
-
-int32_t VideoCaptureMacQTKitInfo::GetBestMatchedCapability(
-    const char*deviceUniqueIdUTF8,
-    const VideoCaptureCapability& requested, VideoCaptureCapability& resulting)
-{
-    // Not implemented. Mac doesn't use discrete steps in capabilities, rather
-    // "analog". QTKit will do it's best to convert frames to what ever format
-    // you ask for.
-    WEBRTC_TRACE(webrtc::kTraceInfo, webrtc::kTraceVideoCapture, _id,
-                 "NumberOfCapabilities is not supported on the Mac platform.");
-    return -1;
-}
-
-int32_t VideoCaptureMacQTKitInfo::DisplayCaptureSettingsDialogBox(
-    const char* deviceUniqueIdUTF8,
-    const char* dialogTitleUTF8, void* parentWindow,
-    uint32_t positionX, uint32_t positionY)
-{
-
-    return [[_captureInfo
-             displayCaptureSettingsDialogBoxWithDevice:deviceUniqueIdUTF8
-             AndTitle:dialogTitleUTF8
-             AndParentWindow:parentWindow AtX:positionX AndY:positionY]
-             intValue];
-}
-
-int32_t VideoCaptureMacQTKitInfo::CreateCapabilityMap(
-    const char* deviceUniqueIdUTF8)
-{
-    // Not implemented. Mac doesn't use discrete steps in capabilities, rather
-    // "analog". QTKit will do it's best to convert frames to what ever format
-    // you ask for.
-    WEBRTC_TRACE(webrtc::kTraceInfo, webrtc::kTraceVideoCapture, _id,
-                 "NumberOfCapabilities is not supported on the Mac platform.");
-     return -1;
-}
-}  // namespace videocapturemodule
-}  // namespace webrtc
diff --git a/webrtc/modules/video_capture/mac/qtkit/video_capture_qtkit_info_objc.h b/webrtc/modules/video_capture/mac/qtkit/video_capture_qtkit_info_objc.h
deleted file mode 100644
index c03aa93..0000000
--- a/webrtc/modules/video_capture/mac/qtkit/video_capture_qtkit_info_objc.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- *  Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS.  All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-//
-//  video_capture_qtkit_info_objc.h
-//
-//
-
-#ifndef WEBRTC_MODULES_VIDEO_CAPTURE_MAIN_SOURCE_MAC_QTKIT_VIDEO_CAPTURE_QTKIT_INFO_OBJC_H_
-#define WEBRTC_MODULES_VIDEO_CAPTURE_MAIN_SOURCE_MAC_QTKIT_VIDEO_CAPTURE_QTKIT_INFO_OBJC_H_
-
-#import <Foundation/Foundation.h>
-#import <QTKit/QTKit.h>
-
-#include "webrtc/modules/video_capture/mac/qtkit/video_capture_qtkit_info.h"
-#include "webrtc/modules/video_capture/mac/qtkit/video_capture_qtkit_utility.h"
-
-@interface VideoCaptureMacQTKitInfoObjC : NSObject{
-    bool                                _OSSupportedInfo;
-    NSArray*                            _captureDevicesInfo;
-    NSAutoreleasePool*                    _poolInfo;
-    int                                    _captureDeviceCountInfo;
-
-}
-
-/**************************************************************************
- *
- *   The following functions are considered to be private
- *
- ***************************************************************************/
-
-- (NSNumber*)getCaptureDevices;
-- (NSNumber*)initializeVariables;
-- (void)checkOSSupported;
-
-
-/**************************************************************************
- *
- *   The following functions are considered to be public and called by VideoCaptureMacQTKitInfo class
- *
- ***************************************************************************/
-
-- (NSNumber*)getCaptureDeviceCount;
-
-- (NSNumber*)getDeviceNamesFromIndex:(uint32_t)index
-    DefaultName:(char*)deviceName
-    WithLength:(uint32_t)deviceNameLength
-    AndUniqueID:(char*)deviceUniqueID
-    WithLength:(uint32_t)deviceUniqueIDLength
-    AndProductID:(char*)deviceProductID
-    WithLength:(uint32_t)deviceProductIDLength;
-
-- (NSNumber*)displayCaptureSettingsDialogBoxWithDevice:
-        (const char*)deviceUniqueIdUTF8
-    AndTitle:(const char*)dialogTitleUTF8
-    AndParentWindow:(void*) parentWindow AtX:(uint32_t)positionX
-    AndY:(uint32_t) positionY;
-@end
-
-#endif  // WEBRTC_MODULES_VIDEO_CAPTURE_MAIN_SOURCE_MAC_QTKIT_VIDEO_CAPTURE_QTKIT_INFO_OBJC_H_
diff --git a/webrtc/modules/video_capture/mac/qtkit/video_capture_qtkit_info_objc.mm b/webrtc/modules/video_capture/mac/qtkit/video_capture_qtkit_info_objc.mm
deleted file mode 100644
index d3f2188..0000000
--- a/webrtc/modules/video_capture/mac/qtkit/video_capture_qtkit_info_objc.mm
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
- *  Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS.  All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#pragma mark **** imports/includes
-
-#import "webrtc/modules/video_capture/mac/qtkit/video_capture_qtkit_info_objc.h"
-
-#include "webrtc/system_wrappers/include/trace.h"
-
-using namespace webrtc;
-
-#pragma mark **** hidden class interface
-
-@implementation VideoCaptureMacQTKitInfoObjC
-
-// ****************** over-written OS methods ***********************
-#pragma mark **** over-written OS methods
-
-/// ***** Objective-C. Similar to C++ constructor, although invoked manually
-/// ***** Potentially returns an instance of self
--(id)init{
-    self = [super init];
-    if(nil != self){
-        [self checkOSSupported];
-        [self initializeVariables];
-    }
-    else
-    {
-        return nil;
-    }
-    return self;
-}
-
-/// ***** Objective-C. Similar to C++ destructor
-/// ***** Returns nothing
-- (void)dealloc {
-
-    [_captureDevicesInfo release];
-
-    [super dealloc];
-}
-
-// ****************** public methods ******************
-#pragma mark **** public method implementations
-
-/// ***** Creates a message box with Cocoa framework
-/// ***** Returns 0 on success, -1 otherwise.
-- (NSNumber*)displayCaptureSettingsDialogBoxWithDevice:(const char*)deviceUniqueIdUTF8
-                    AndTitle:(const char*)dialogTitleUTF8
-                    AndParentWindow:(void*) parentWindow
-                    AtX:(uint32_t)positionX
-                    AndY:(uint32_t) positionY
-{
-    NSString* strTitle = [NSString stringWithFormat:@"%s", dialogTitleUTF8];
-    NSString* strButton = @"Alright";
-    NSAlert* alert = [NSAlert alertWithMessageText:strTitle
-                      defaultButton:strButton
-                      alternateButton:nil otherButton:nil
-                      informativeTextWithFormat:@"Device %s is capturing", deviceUniqueIdUTF8];
-    [alert setAlertStyle:NSInformationalAlertStyle];
-    [alert runModal];
-    return [NSNumber numberWithInt:0];
-}
-
-- (NSNumber*)getCaptureDeviceCount{
-    [self getCaptureDevices];
-    return [NSNumber numberWithInt:_captureDeviceCountInfo];
-}
-
-
-- (NSNumber*)getDeviceNamesFromIndex:(uint32_t)index
-    DefaultName:(char*)deviceName
-    WithLength:(uint32_t)deviceNameLength
-    AndUniqueID:(char*)deviceUniqueID
-    WithLength:(uint32_t)deviceUniqueIDLength
-    AndProductID:(char*)deviceProductID
-    WithLength:(uint32_t)deviceProductIDLength
-{
-    if(NO == _OSSupportedInfo)
-    {
-        return [NSNumber numberWithInt:0];
-    }
-
-    if(index >= (uint32_t)_captureDeviceCountInfo)
-    {
-        return [NSNumber numberWithInt:-1];
-    }
-
-    QTCaptureDevice* tempCaptureDevice =
-        (QTCaptureDevice*)[_captureDevicesInfo objectAtIndex:index];
-    if(!tempCaptureDevice)
-    {
-        return [NSNumber numberWithInt:-1];
-    }
-
-    memset(deviceName, 0, deviceNameLength);
-    memset(deviceUniqueID, 0, deviceUniqueIDLength);
-
-    bool successful = NO;
-
-    NSString* tempString = [tempCaptureDevice localizedDisplayName];
-    successful = [tempString getCString:(char*)deviceName
-                  maxLength:deviceNameLength encoding:NSUTF8StringEncoding];
-    if(NO == successful)
-    {
-        memset(deviceName, 0, deviceNameLength);
-        return [NSNumber numberWithInt:-1];
-    }
-
-    tempString = [tempCaptureDevice uniqueID];
-    successful = [tempString getCString:(char*)deviceUniqueID
-                  maxLength:deviceUniqueIDLength encoding:NSUTF8StringEncoding];
-    if(NO == successful)
-    {
-        memset(deviceUniqueID, 0, deviceNameLength);
-        return [NSNumber numberWithInt:-1];
-    }
-
-    return [NSNumber numberWithInt:0];
-
-}
-
-// ****************** "private" category functions below here  ******************
-#pragma mark **** "private" method implementations
-
-- (NSNumber*)initializeVariables
-{
-    if(NO == _OSSupportedInfo)
-    {
-        return [NSNumber numberWithInt:0];
-    }
-
-    _poolInfo = [[NSAutoreleasePool alloc]init];
-    _captureDeviceCountInfo = 0;
-    [self getCaptureDevices];
-
-    return [NSNumber numberWithInt:0];
-}
-
-// ***** Checks to see if the QTCaptureSession framework is available in the OS
-// ***** If it is not, isOSSupprted = NO
-// ***** Throughout the rest of the class isOSSupprted is checked and functions
-// ***** are/aren't called depending
-// ***** The user can use weak linking to the QTKit framework and run on older
-// ***** versions of the OS
-// ***** I.E. Backwards compaitibility
-// ***** Returns nothing. Sets member variable
-- (void)checkOSSupported
-{
-    Class osSupportedTest = NSClassFromString(@"QTCaptureSession");
-    if(nil == osSupportedTest)
-    {
-      _OSSupportedInfo = NO;
-    }
-    else
-    {
-      _OSSupportedInfo = YES;
-    }
-}
-
-/// ***** Retrieves the number of capture devices currently available
-/// ***** Stores them in an NSArray instance
-/// ***** Returns 0 on success, -1 otherwise.
-- (NSNumber*)getCaptureDevices
-{
-    if(NO == _OSSupportedInfo)
-    {
-        return [NSNumber numberWithInt:0];
-    }
-
-    if(_captureDevicesInfo)
-    {
-        [_captureDevicesInfo release];
-    }
-    _captureDevicesInfo = [[NSArray alloc]
-                            initWithArray:[QTCaptureDevice
-                                           inputDevicesWithMediaType:QTMediaTypeVideo]];
-
-    _captureDeviceCountInfo = _captureDevicesInfo.count;
-
-    return [NSNumber numberWithInt:0];
-}
-
-@end
diff --git a/webrtc/modules/video_capture/mac/qtkit/video_capture_qtkit_objc.h b/webrtc/modules/video_capture/mac/qtkit/video_capture_qtkit_objc.h
deleted file mode 100644
index 5007600..0000000
--- a/webrtc/modules/video_capture/mac/qtkit/video_capture_qtkit_objc.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- *  Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS.  All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-//
-//  video_capture_qtkit_objc.h
-//
-//
-
-#ifndef WEBRTC_MODULES_VIDEO_CAPTURE_MAIN_SOURCE_MAC_QTKIT_VIDEO_CAPTURE_QTKIT_OBJC_H_
-#define WEBRTC_MODULES_VIDEO_CAPTURE_MAIN_SOURCE_MAC_QTKIT_VIDEO_CAPTURE_QTKIT_OBJC_H_
-
-#import <AppKit/AppKit.h>
-#import <CoreData/CoreData.h>
-#import <CoreFoundation/CoreFoundation.h>
-#import <CoreVideo/CoreVideo.h>
-#import <Foundation/Foundation.h>
-#import <QTKit/QTKit.h>
-
-#include "webrtc/modules/video_capture/mac/qtkit/video_capture_qtkit.h"
-
-@interface VideoCaptureMacQTKitObjC : NSObject {
-  bool _capturing;
-  int _frameRate;
-  int _frameWidth;
-  int _frameHeight;
-  int _framesDelivered;
-  int _framesRendered;
-  bool _captureInitialized;
-
-  webrtc::videocapturemodule::VideoCaptureMacQTKit* _owner;
-  NSLock* _lock;
-
-  QTCaptureSession* _captureSession;
-  QTCaptureDeviceInput* _captureVideoDeviceInput;
-  QTCaptureDecompressedVideoOutput* _captureDecompressedVideoOutput;
-  NSArray* _captureDevices;
-  int _captureDeviceCount;
-  char _captureDeviceNameUTF8[1024];
-  char _captureDeviceNameUniqueID[1024];
-}
-
-- (void)getCaptureDevices;
-- (BOOL)initializeVideoCapture;
-- (BOOL)initializeVariables;
-
-- (void)registerOwner:(webrtc::videocapturemodule::VideoCaptureMacQTKit*)owner;
-- (BOOL)setCaptureDeviceById:(char*)uniqueId;
-- (void)setCaptureHeight:(int)height width:(int)width frameRate:(int)frameRate;
-- (void)startCapture;
-- (void)stopCapture;
-
-@end
-
-#endif  // WEBRTC_MODULES_VIDEO_CAPTURE_MAIN_SOURCE_MAC_QTKIT_VIDEO_CAPTURE_QTKIT_OBJC_H_
diff --git a/webrtc/modules/video_capture/mac/qtkit/video_capture_qtkit_objc.mm b/webrtc/modules/video_capture/mac/qtkit/video_capture_qtkit_objc.mm
deleted file mode 100644
index 53e9db7..0000000
--- a/webrtc/modules/video_capture/mac/qtkit/video_capture_qtkit_objc.mm
+++ /dev/null
@@ -1,259 +0,0 @@
-/*
- *  Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS.  All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#define DEFAULT_CAPTURE_DEVICE_INDEX    1
-#define DEFAULT_FRAME_RATE              30
-#define DEFAULT_FRAME_WIDTH             352
-#define DEFAULT_FRAME_HEIGHT            288
-#define ROTATE_CAPTURED_FRAME           1
-#define LOW_QUALITY                     1
-
-#import "webrtc/modules/video_capture/mac/qtkit/video_capture_qtkit_objc.h"
-
-#include "webrtc/system_wrappers/include/trace.h"
-
-using namespace webrtc;
-using namespace videocapturemodule;
-
-@implementation VideoCaptureMacQTKitObjC
-
--(id)init {
-  self = [super init];
-  if (self) {
-    [self initializeVariables];
-  }
-  return self;
-}
-
-- (void)dealloc {
-  if (_captureSession)
-    [_captureSession stopRunning];
-
-  if (_captureVideoDeviceInput) {
-    if ([[_captureVideoDeviceInput device] isOpen])
-      [[_captureVideoDeviceInput device] close];
-
-    [_captureVideoDeviceInput release];
-  }
-
-  [_captureDecompressedVideoOutput release];
-  [_captureSession release];
-  [_captureDevices release];
-  [_lock release];
-
-  [super dealloc];
-}
-
-#pragma mark Public methods
-
-- (void)registerOwner:(VideoCaptureMacQTKit*)owner {
-  [_lock lock];
-  _owner = owner;
-  [_lock unlock];
-}
-
-- (BOOL)setCaptureDeviceById:(char*)uniqueId {
-  if (uniqueId == nil || !strcmp("", uniqueId)) {
-    WEBRTC_TRACE(kTraceInfo, kTraceVideoCapture, 0,
-                 "Incorrect capture id argument");
-    return NO;
-  }
-
-  if (!strcmp(uniqueId, _captureDeviceNameUniqueID))
-    return YES;
-
-  QTCaptureDevice* captureDevice;
-  for(int index = 0; index < _captureDeviceCount; index++) {
-    captureDevice = (QTCaptureDevice*)[_captureDevices objectAtIndex:index];
-    char captureDeviceId[1024] = "";
-    [[captureDevice uniqueID] getCString:captureDeviceId
-                               maxLength:1024
-                                encoding:NSUTF8StringEncoding];
-    if (strcmp(uniqueId, captureDeviceId) == 0) {
-      WEBRTC_TRACE(kTraceInfo, kTraceVideoCapture, 0,
-                   "%s:%d Found capture device id %s as index %d",
-                   __FUNCTION__, __LINE__, captureDeviceId, index);
-      [[captureDevice localizedDisplayName] getCString:_captureDeviceNameUTF8
-                                             maxLength:1024
-                                              encoding:NSUTF8StringEncoding];
-      [[captureDevice uniqueID] getCString:_captureDeviceNameUniqueID
-                                 maxLength:1024
-                                  encoding:NSUTF8StringEncoding];
-      break;
-    }
-    captureDevice = nil;
-  }
-
-  if (!captureDevice)
-    return NO;
-
-  NSError* error;
-  if (![captureDevice open:&error]) {
-    WEBRTC_TRACE(kTraceError, kTraceVideoCapture, 0,
-                 "Failed to open capture device: %s", _captureDeviceNameUTF8);
-    return NO;
-  }
-
-  if (_captureVideoDeviceInput) {
-    [_captureVideoDeviceInput release];
-  }
-  _captureVideoDeviceInput =
-      [[QTCaptureDeviceInput alloc] initWithDevice:captureDevice];
-
-  if (![_captureSession addInput:_captureVideoDeviceInput error:&error]) {
-    WEBRTC_TRACE(kTraceError, kTraceVideoCapture, 0,
-                 "Failed to add input from %s to the capture session",
-                 _captureDeviceNameUTF8);
-    return NO;
-  }
-
-  WEBRTC_TRACE(kTraceInfo, kTraceVideoCapture, 0,
-               "%s:%d successfully added capture device: %s", __FUNCTION__,
-               __LINE__, _captureDeviceNameUTF8);
-  return YES;
-}
-
-- (void)setCaptureHeight:(int)height width:(int)width frameRate:(int)frameRate {
-  _frameWidth = width;
-  _frameHeight = height;
-  _frameRate = frameRate;
-
-  NSDictionary* captureDictionary =
-      [NSDictionary dictionaryWithObjectsAndKeys:
-          [NSNumber numberWithDouble:_frameWidth],
-          (id)kCVPixelBufferWidthKey,
-          [NSNumber numberWithDouble:_frameHeight],
-          (id)kCVPixelBufferHeightKey,
-          [NSNumber numberWithUnsignedInt:kCVPixelFormatType_32ARGB],
-          (id)kCVPixelBufferPixelFormatTypeKey,
-          nil];
-  [_captureDecompressedVideoOutput
-      performSelectorOnMainThread:@selector(setPixelBufferAttributes:)
-                       withObject:captureDictionary
-                    waitUntilDone:YES];
-}
-
-- (void)startCapture {
-  if (_capturing)
-    return;
-
-  [_captureSession startRunning];
-  _capturing = YES;
-}
-
-- (void)stopCapture {
-  if (!_capturing)
-    return;
-
-  [_captureSession stopRunning];
-  _capturing = NO;
-}
-
-#pragma mark Private methods
-
-- (BOOL)initializeVariables {
-  if (NSClassFromString(@"QTCaptureSession") == nil)
-    return NO;
-
-  memset(_captureDeviceNameUTF8, 0, 1024);
-  _framesDelivered = 0;
-  _framesRendered = 0;
-  _captureDeviceCount = 0;
-  _capturing = NO;
-  _captureInitialized = NO;
-  _frameRate = DEFAULT_FRAME_RATE;
-  _frameWidth = DEFAULT_FRAME_WIDTH;
-  _frameHeight = DEFAULT_FRAME_HEIGHT;
-  _lock = [[NSLock alloc] init];
-  _captureSession = [[QTCaptureSession alloc] init];
-  _captureDecompressedVideoOutput =
-      [[QTCaptureDecompressedVideoOutput alloc] init];
-  [_captureDecompressedVideoOutput setDelegate:self];
-
-  [self getCaptureDevices];
-  if (![self initializeVideoCapture])
-    return NO;
-
-  return NO;
-}
-
-- (void)getCaptureDevices {
-  if (_captureDevices)
-    [_captureDevices release];
-
-  _captureDevices = [[NSArray alloc] initWithArray:
-      [QTCaptureDevice inputDevicesWithMediaType:QTMediaTypeVideo]];
-
-  _captureDeviceCount = _captureDevices.count;
-}
-
-- (BOOL)initializeVideoCapture{
-  NSDictionary *captureDictionary =
-      [NSDictionary dictionaryWithObjectsAndKeys:
-          [NSNumber numberWithDouble:_frameWidth],
-          (id)kCVPixelBufferWidthKey,
-          [NSNumber numberWithDouble:_frameHeight],
-          (id)kCVPixelBufferHeightKey,
-          [NSNumber numberWithUnsignedInt:kCVPixelFormatType_32ARGB],
-          (id)kCVPixelBufferPixelFormatTypeKey,
-          nil];
-
-  [_captureDecompressedVideoOutput setPixelBufferAttributes:captureDictionary];
-  [_captureDecompressedVideoOutput setAutomaticallyDropsLateVideoFrames:YES];
-  [_captureDecompressedVideoOutput
-      setMinimumVideoFrameInterval:(NSTimeInterval)1/(float)_frameRate];
-
-  NSError *error;
-  if (![_captureSession addOutput:_captureDecompressedVideoOutput error:&error])
-    return NO;
-
-  return YES;
-}
-
-- (void)captureOutput:(QTCaptureOutput *)captureOutput
-    didDropVideoFrameWithSampleBuffer:(QTSampleBuffer *)sampleBuffer
-                       fromConnection:(QTCaptureConnection *)connection {
-}
-
-- (void)captureOutput:(QTCaptureOutput *)captureOutput
-  didOutputVideoFrame:(CVImageBufferRef)videoFrame
-     withSampleBuffer:(QTSampleBuffer *)sampleBuffer
-       fromConnection:(QTCaptureConnection *)connection {
-
-  [_lock lock];
-  if (!_owner) {
-    [_lock unlock];
-    return;
-  }
-
-  const int kFlags = 0;
-  if (CVPixelBufferLockBaseAddress(videoFrame, kFlags) == kCVReturnSuccess) {
-    void *baseAddress = CVPixelBufferGetBaseAddress(videoFrame);
-    size_t bytesPerRow = CVPixelBufferGetBytesPerRow(videoFrame);
-    size_t frameHeight = CVPixelBufferGetHeight(videoFrame);
-    size_t frameSize = bytesPerRow * frameHeight;
-
-    VideoCaptureCapability tempCaptureCapability;
-    tempCaptureCapability.width = _frameWidth;
-    tempCaptureCapability.height = _frameHeight;
-    tempCaptureCapability.maxFPS = _frameRate;
-    // TODO(wu) : Update actual type and not hard-coded value.
-    tempCaptureCapability.rawType = kVideoBGRA;
-
-    _owner->IncomingFrame((unsigned char*)baseAddress, frameSize,
-                          tempCaptureCapability, 0);
-    CVPixelBufferUnlockBaseAddress(videoFrame, kFlags);
-  }
-  [_lock unlock];
-  _framesDelivered++;
-  _framesRendered++;
-}
-
-@end
diff --git a/webrtc/modules/video_capture/mac/qtkit/video_capture_qtkit_utility.h b/webrtc/modules/video_capture/mac/qtkit/video_capture_qtkit_utility.h
deleted file mode 100644
index 5ef0b96..0000000
--- a/webrtc/modules/video_capture/mac/qtkit/video_capture_qtkit_utility.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- *  Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS.  All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-/*
- *  video_capture_qtkit_utility.h
- *
- */
-
-
-#ifndef WEBRTC_MODULES_VIDEO_CAPTURE_MAIN_SOURCE_MAC_QTKIT_VIDEO_CAPTURE_QTKIT_UTILITY_H_
-#define WEBRTC_MODULES_VIDEO_CAPTURE_MAIN_SOURCE_MAC_QTKIT_VIDEO_CAPTURE_QTKIT_UTILITY_H_
-
-#define MAX_NAME_LENGTH                1024
-
-#define QTKIT_MIN_WIDTH                0
-#define QTKIT_MAX_WIDTH                2560
-#define QTKIT_DEFAULT_WIDTH            352
-
-#define QTKIT_MIN_HEIGHT            0
-#define QTKIT_MAX_HEIGHT            1440
-#define QTKIT_DEFAULT_HEIGHT        288
-
-#define QTKIT_MIN_FRAME_RATE        1
-#define QTKIT_MAX_FRAME_RATE        60
-#define QTKIT_DEFAULT_FRAME_RATE    30
-
-#define RELEASE_AND_CLEAR(p)        if (p) { (p) -> Release () ; (p) = NULL ; }
-
-#endif  // WEBRTC_MODULES_VIDEO_CAPTURE_MAIN_SOURCE_MAC_QTKIT_VIDEO_CAPTURE_QTKIT_UTILITY_H_
diff --git a/webrtc/modules/video_capture/mac/video_capture_mac.mm b/webrtc/modules/video_capture/mac/video_capture_mac.mm
deleted file mode 100644
index 08b2aeb..0000000
--- a/webrtc/modules/video_capture/mac/video_capture_mac.mm
+++ /dev/null
@@ -1,252 +0,0 @@
-/*
- *  Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS.  All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-/*
- *  video_capture_mac.cc
- *
- */
-
-#include <QuickTime/QuickTime.h>
-
-#include "webrtc/base/refcount.h"
-#include "webrtc/base/scoped_ref_ptr.h"
-#include "webrtc/modules/video_capture/device_info_impl.h"
-#include "webrtc/modules/video_capture/video_capture_config.h"
-#include "webrtc/modules/video_capture/video_capture_impl.h"
-#include "webrtc/system_wrappers/include/trace.h"
-
-// 10.4 support must be decided runtime. We will just decide which framework to
-// use at compile time "work" classes. One for QTKit, one for QuickTime
-#if __MAC_OS_X_VERSION_MIN_REQUIRED == __MAC_10_4 // QuickTime version
-#include <QuickTime/video_capture_quick_time.h>
-#include <QuickTime/video_capture_quick_time_info.h>
-#else
-#include "webrtc/modules/video_capture/mac/qtkit/video_capture_qtkit.h"
-#include "webrtc/modules/video_capture/mac/qtkit/video_capture_qtkit_info.h"
-#endif
-
-namespace webrtc
-{
-namespace videocapturemodule
-{
-
-// static
-bool CheckOSVersion()
-{
-    // Check OSX version
-    OSErr err = noErr;
-
-    SInt32 version;
-
-    err = Gestalt(gestaltSystemVersion, &version);
-    if (err != noErr)
-    {
-        WEBRTC_TRACE(webrtc::kTraceError, webrtc::kTraceVideoCapture, 0,
-                     "Could not get OS version");
-        return false;
-    }
-
-    if (version < 0x00001040) // Older version than Mac OSX 10.4
-    {
-        WEBRTC_TRACE(webrtc::kTraceError, webrtc::kTraceVideoCapture, 0,
-                     "OS version too old: 0x%x", version);
-        return false;
-    }
-
-    WEBRTC_TRACE(webrtc::kTraceDebug, webrtc::kTraceVideoCapture, 0,
-                 "OS version compatible: 0x%x", version);
-
-    return true;
-}
-
-// static
-bool CheckQTVersion()
-{
-    // Check OSX version
-    OSErr err = noErr;
-
-    SInt32 version;
-
-    err = Gestalt(gestaltQuickTime, &version);
-    if (err != noErr)
-    {
-        WEBRTC_TRACE(webrtc::kTraceError, webrtc::kTraceVideoCapture, 0,
-                     "Could not get QuickTime version");
-        return false;
-    }
-
-    if (version < 0x07000000) // QT v. 7.x or newer (QT 5.0.2 0x05020000)
-    {
-        WEBRTC_TRACE(webrtc::kTraceError, webrtc::kTraceVideoCapture, 0,
-                     "QuickTime version too old: 0x%x", version);
-        return false;
-    }
-
-    WEBRTC_TRACE(webrtc::kTraceDebug, webrtc::kTraceVideoCapture, 0,
-                 "QuickTime version compatible: 0x%x", version);
-    return true;
-}
-
-/**************************************************************************
- *
- *    Create/Destroy a VideoCaptureModule
- *
- ***************************************************************************/
-
-/*
- *   Returns version of the module and its components
- *
- *   version                 - buffer to which the version will be written
- *   remainingBufferInBytes  - remaining number of int8_t in the version
- *                             buffer
- *   position                - position of the next empty int8_t in the
- *                             version buffer
- */
-
-rtc::scoped_refptr<VideoCaptureModule> VideoCaptureImpl::Create(
-    const int32_t id,
-    const char* deviceUniqueIdUTF8) {
-    if (!CheckOSVersion()) {
-        WEBRTC_TRACE(webrtc::kTraceError, webrtc::kTraceVideoCapture, id,
-                     "OS version is too old. Could not create video capture "
-                     "module. Returning NULL");
-        return nullptr;
-    }
-
-#if __MAC_OS_X_VERSION_MIN_REQUIRED == __MAC_10_4 // QuickTime version
-    if (!CheckQTVersion())
-    {
-        WEBRTC_TRACE(webrtc::kTraceError, webrtc::kTraceVideoCapture, id,
-                     "QuickTime version is too old. Could not create video "
-                     "capture module. Returning NULL");
-        return nullptr;
-    }
-
-    WEBRTC_TRACE(webrtc::kTraceInfo, webrtc::kTraceVideoCapture, id,
-                 "%s line %d. QTKit is not supported on this machine. Using "
-                 "QuickTime framework to capture video",
-                 __FILE__, __LINE__);
-
-    rtc::scoped_refptr<VideoCaptureMacQuickTime> newCaptureModule(
-        new rtc::RefCountedObject<VideoCaptureMacQuickTime>(id));
-
-    if (newCaptureModule->Init(id, deviceUniqueIdUTF8) != 0)
-    {
-        WEBRTC_TRACE(webrtc::kTraceDebug, webrtc::kTraceVideoCapture, id,
-                     "could not Create for unique device %s, "
-                     "newCaptureModule->Init()!=0",
-                     deviceUniqueIdUTF8);
-        return nullptr;
-    }
-
-    // Successfully created VideoCaptureMacQuicktime. Return it
-    WEBRTC_TRACE(webrtc::kTraceInfo, webrtc::kTraceVideoCapture, id,
-                 "Module created for unique device %s. Will use QuickTime "
-                 "framework to capture",
-                 deviceUniqueIdUTF8);
-    return newCaptureModule;
-
-#else // QTKit version
-
-    WEBRTC_TRACE(webrtc::kTraceInfo, webrtc::kTraceVideoCapture, id,
-                 "Using QTKit framework to capture video", id);
-
-    rtc::scoped_refptr<VideoCaptureMacQTKit> newCaptureModule(
-        new rtc::RefCountedObject<VideoCaptureMacQTKit>(id));
-
-    if(newCaptureModule->Init(id, deviceUniqueIdUTF8) != 0)
-    {
-        WEBRTC_TRACE(webrtc::kTraceDebug, webrtc::kTraceVideoCapture, id,
-                     "could not Create for unique device %s, "
-                     "newCaptureModule->Init()!=0", deviceUniqueIdUTF8);
-        return nullptr;
-    }
-
-    // Successfully created VideoCaptureMacQuicktime. Return it
-    WEBRTC_TRACE(webrtc::kTraceInfo, webrtc::kTraceVideoCapture, id,
-                 "Module created for unique device %s, will use QTKit "
-                 "framework",deviceUniqueIdUTF8);
-    return newCaptureModule;
-#endif
-}
-
-/**************************************************************************
- *
- *    Create/Destroy a DeviceInfo
- *
- ***************************************************************************/
-
-VideoCaptureModule::DeviceInfo*
-VideoCaptureImpl::CreateDeviceInfo(const int32_t id)
-{
-
-
-    if (webrtc::videocapturemodule::CheckOSVersion() == false)
-    {
-        WEBRTC_TRACE(webrtc::kTraceError, webrtc::kTraceVideoCapture, id,
-                     "OS version is too old. Could not create video capture "
-                     "module. Returning NULL");
-        return NULL;
-    }
-
-#if __MAC_OS_X_VERSION_MIN_REQUIRED == __MAC_10_4 // QuickTime version
-    if (webrtc::videocapturemodule::CheckQTVersion() == false)
-    {
-        WEBRTC_TRACE(webrtc::kTraceError, webrtc::kTraceVideoCapture, id,
-                     "QuickTime version is too old. Could not create video "
-                     "capture module. Returning NULL");
-        return NULL;
-    }
-
-    webrtc::videocapturemodule::VideoCaptureMacQuickTimeInfo* newCaptureInfoModule =
-        new webrtc::videocapturemodule::VideoCaptureMacQuickTimeInfo(id);
-
-    if (!newCaptureInfoModule || newCaptureInfoModule->Init() != 0)
-    {
-        Destroy(newCaptureInfoModule);
-        newCaptureInfoModule = NULL;
-        WEBRTC_TRACE(webrtc::kTraceInfo, webrtc::kTraceVideoCapture, id,
-                     "Failed to Init newCaptureInfoModule created with id %d "
-                     "and device \"\" ", id);
-        return NULL;
-    }
-    WEBRTC_TRACE(webrtc::kTraceInfo, webrtc::kTraceVideoCapture, id,
-                 "VideoCaptureModule created for id", id);
-    return newCaptureInfoModule;
-
-#else // QTKit version
-    webrtc::videocapturemodule::VideoCaptureMacQTKitInfo* newCaptureInfoModule =
-        new webrtc::videocapturemodule::VideoCaptureMacQTKitInfo(id);
-
-    if(!newCaptureInfoModule || newCaptureInfoModule->Init() != 0)
-    {
-        //Destroy(newCaptureInfoModule);
-        delete newCaptureInfoModule;
-        newCaptureInfoModule = NULL;
-        WEBRTC_TRACE(webrtc::kTraceInfo, webrtc::kTraceVideoCapture, id,
-                     "Failed to Init newCaptureInfoModule created with id %d "
-                     "and device \"\" ", id);
-        return NULL;
-    }
-    WEBRTC_TRACE(webrtc::kTraceInfo, webrtc::kTraceVideoCapture, id,
-                 "VideoCaptureModule created for id", id);
-    return newCaptureInfoModule;
-
-#endif
-
-}
-
-/**************************************************************************
- *
- *    End Create/Destroy VideoCaptureModule
- *
- ***************************************************************************/
-}  // namespace videocapturemodule
-}  // namespace webrtc
diff --git a/webrtc/modules/video_capture/ios/device_info_ios.h b/webrtc/modules/video_capture/objc/device_info.h
similarity index 91%
rename from webrtc/modules/video_capture/ios/device_info_ios.h
rename to webrtc/modules/video_capture/objc/device_info.h
index 6af7c33..bec5c69 100644
--- a/webrtc/modules/video_capture/ios/device_info_ios.h
+++ b/webrtc/modules/video_capture/objc/device_info.h
@@ -8,12 +8,13 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#ifndef WEBRTC_MODULES_VIDEO_CAPTURE_IOS_DEVICE_INFO_IOS_H_
-#define WEBRTC_MODULES_VIDEO_CAPTURE_IOS_DEVICE_INFO_IOS_H_
+#ifndef WEBRTC_MODULES_VIDEO_CAPTURE_OBJC_DEVICE_INFO_H_
+#define WEBRTC_MODULES_VIDEO_CAPTURE_OBJC_DEVICE_INFO_H_
 
 #include "webrtc/modules/video_capture/device_info_impl.h"
 
 #include <map>
+#include <string>
 
 namespace webrtc {
 namespace videocapturemodule {
@@ -57,4 +58,4 @@
 }  // namespace videocapturemodule
 }  // namespace webrtc
 
-#endif  // WEBRTC_MODULES_VIDEO_CAPTURE_IOS_DEVICE_INFO_IOS_H_
+#endif  // WEBRTC_MODULES_VIDEO_CAPTURE_OBJC_DEVICE_INFO_H_
diff --git a/webrtc/modules/video_capture/ios/device_info_ios.mm b/webrtc/modules/video_capture/objc/device_info.mm
similarity index 81%
rename from webrtc/modules/video_capture/ios/device_info_ios.mm
rename to webrtc/modules/video_capture/objc/device_info.mm
index 307e5d3..2535f1c 100644
--- a/webrtc/modules/video_capture/ios/device_info_ios.mm
+++ b/webrtc/modules/video_capture/objc/device_info.mm
@@ -16,26 +16,22 @@
 
 #include <string>
 
-#include "webrtc/modules/video_capture/ios/device_info_ios.h"
-#include "webrtc/modules/video_capture/ios/device_info_ios_objc.h"
+#include "webrtc/modules/video_capture/objc/device_info.h"
+#include "webrtc/modules/video_capture/objc/device_info_objc.h"
 #include "webrtc/modules/video_capture/video_capture_impl.h"
 #include "webrtc/system_wrappers/include/trace.h"
 
 using namespace webrtc;
 using namespace videocapturemodule;
 
-static NSArray *camera_presets = @[AVCaptureSessionPreset352x288,
-                                   AVCaptureSessionPreset640x480,
-                                   AVCaptureSessionPreset1280x720,
-                                   AVCaptureSessionPreset1920x1080];
+static NSArray* camera_presets = @[
+  AVCaptureSessionPreset352x288, AVCaptureSessionPreset640x480,
+  AVCaptureSessionPreset1280x720
+];
 
-
-#define IOS_UNSUPPORTED()                                  \
-  WEBRTC_TRACE(kTraceError,                                \
-               kTraceVideoCapture,                         \
-               _id,                                        \
-               "%s is not supported on the iOS platform.", \
-               __FUNCTION__);                              \
+#define IOS_UNSUPPORTED()                                                 \
+  WEBRTC_TRACE(kTraceError, kTraceVideoCapture, _id,                      \
+               "%s is not supported on the iOS platform.", __FUNCTION__); \
   return -1;
 
 VideoCaptureModule::DeviceInfo* VideoCaptureImpl::CreateDeviceInfo(
@@ -56,10 +52,10 @@
   int deviceCount = [DeviceInfoIosObjC captureDeviceCount];
 
   for (int i = 0; i < deviceCount; i++) {
-    AVCaptureDevice *avDevice = [DeviceInfoIosObjC captureDeviceForIndex:i];
+    AVCaptureDevice* avDevice = [DeviceInfoIosObjC captureDeviceForIndex:i];
     VideoCaptureCapabilities capabilityVector;
 
-    for (NSString *preset in camera_presets) {
+    for (NSString* preset in camera_presets) {
       BOOL support = [avDevice supportsAVCaptureSessionPreset:preset];
       if (support) {
         VideoCaptureCapability capability =
@@ -73,8 +69,8 @@
     this->GetDeviceName(i, deviceNameUTF8, 256, deviceId, 256);
     std::string deviceIdCopy(deviceId);
     std::pair<std::string, VideoCaptureCapabilities> mapPair =
-        std::pair<std::string, VideoCaptureCapabilities>
-            (deviceIdCopy, capabilityVector);
+        std::pair<std::string, VideoCaptureCapabilities>(deviceIdCopy,
+                                                         capabilityVector);
     _capabilitiesMap.insert(mapPair);
   }
 
@@ -100,9 +96,7 @@
   strncpy(deviceNameUTF8, [deviceName UTF8String], deviceNameUTF8Length);
   deviceNameUTF8[deviceNameUTF8Length - 1] = '\0';
 
-  strncpy(deviceUniqueIdUTF8,
-          [deviceUniqueId UTF8String],
-          deviceUniqueIdUTF8Length);
+  strncpy(deviceUniqueIdUTF8, deviceUniqueId.UTF8String, deviceUniqueIdUTF8Length);
   deviceUniqueIdUTF8[deviceUniqueIdUTF8Length - 1] = '\0';
 
   if (productUniqueIdUTF8) {
diff --git a/webrtc/modules/video_capture/ios/device_info_ios_objc.h b/webrtc/modules/video_capture/objc/device_info_objc.h
similarity index 82%
rename from webrtc/modules/video_capture/ios/device_info_ios_objc.h
rename to webrtc/modules/video_capture/objc/device_info_objc.h
index d67b559..b5db689 100644
--- a/webrtc/modules/video_capture/ios/device_info_ios_objc.h
+++ b/webrtc/modules/video_capture/objc/device_info_objc.h
@@ -8,8 +8,8 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#ifndef WEBRTC_MODULES_VIDEO_CAPTURE_IOS_DEVICE_INFO_IOS_OBJC_H_
-#define WEBRTC_MODULES_VIDEO_CAPTURE_IOS_DEVICE_INFO_IOS_OBJC_H_
+#ifndef WEBRTC_MODULES_VIDEO_CAPTURE_OBJC_DEVICE_INFO_OBJC_H_
+#define WEBRTC_MODULES_VIDEO_CAPTURE_OBJC_DEVICE_INFO_OBJC_H_
 
 #import <AVFoundation/AVFoundation.h>
 
@@ -26,4 +26,4 @@
 
 @end
 
-#endif  // WEBRTC_MODULES_VIDEO_CAPTURE_IOS_DEVICE_INFO_IOS_OBJC_H_
+#endif  // WEBRTC_MODULES_VIDEO_CAPTURE_OBJC_DEVICE_INFO_OBJC_H_
diff --git a/webrtc/modules/video_capture/ios/device_info_ios_objc.mm b/webrtc/modules/video_capture/objc/device_info_objc.mm
similarity index 86%
rename from webrtc/modules/video_capture/ios/device_info_ios_objc.mm
rename to webrtc/modules/video_capture/objc/device_info_objc.mm
index 818f862..d46fa5c 100644
--- a/webrtc/modules/video_capture/ios/device_info_ios_objc.mm
+++ b/webrtc/modules/video_capture/objc/device_info_objc.mm
@@ -14,7 +14,7 @@
 
 #import <AVFoundation/AVFoundation.h>
 
-#import "webrtc/modules/video_capture/ios/device_info_ios_objc.h"
+#import "webrtc/modules/video_capture/objc/device_info_objc.h"
 #include "webrtc/modules/video_capture/video_capture_config.h"
 
 @implementation DeviceInfoIosObjC
@@ -83,15 +83,6 @@
     capability.rawType = webrtc::kVideoNV12;
     capability.codecType = webrtc::kVideoCodecUnknown;
     capability.interlaced = false;
-  } else if ([preset isEqualToString:AVCaptureSessionPreset1920x1080]) {
-    capability.width = 1920;
-    capability.height = 1080;
-    capability.maxFPS = 30;
-    capability.expectedCaptureDelay =
-        webrtc::videocapturemodule::kDefaultCaptureDelay;
-    capability.rawType = webrtc::kVideoNV12;
-    capability.codecType = webrtc::kVideoCodecUnknown;
-    capability.interlaced = false;
   }
 
   return capability;
diff --git a/webrtc/modules/video_capture/ios/rtc_video_capture_ios_objc.h b/webrtc/modules/video_capture/objc/rtc_video_capture_objc.h
similarity index 77%
rename from webrtc/modules/video_capture/ios/rtc_video_capture_ios_objc.h
rename to webrtc/modules/video_capture/objc/rtc_video_capture_objc.h
index 2653958..e108ee1 100644
--- a/webrtc/modules/video_capture/ios/rtc_video_capture_ios_objc.h
+++ b/webrtc/modules/video_capture/objc/rtc_video_capture_objc.h
@@ -8,13 +8,15 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#ifndef WEBRTC_MODULES_VIDEO_CAPTURE_IOS_VIDEO_CAPTURE_IOS_OBJC_H_
-#define WEBRTC_MODULES_VIDEO_CAPTURE_IOS_VIDEO_CAPTURE_IOS_OBJC_H_
+#ifndef WEBRTC_MODULES_VIDEO_CAPTURE_OBJC_RTC_VIDEO_CAPTURE_OBJC_H_
+#define WEBRTC_MODULES_VIDEO_CAPTURE_OBJC_RTC_VIDEO_CAPTURE_OBJC_H_
 
 #import <Foundation/Foundation.h>
+#ifdef WEBRTC_IOS
 #import <UIKit/UIKit.h>
+#endif
 
-#include "webrtc/modules/video_capture/ios/video_capture_ios.h"
+#include "webrtc/modules/video_capture/objc/video_capture.h"
 
 // The following class listens to a notification with name:
 // 'StatusBarOrientationDidChange'.
@@ -32,8 +34,8 @@
           captureId:(int)captureId;
 - (BOOL)setCaptureDeviceByUniqueId:(NSString*)uniqueId;
 - (BOOL)startCaptureWithCapability:
-        (const webrtc::VideoCaptureCapability&)capability;
+    (const webrtc::VideoCaptureCapability&)capability;
 - (BOOL)stopCapture;
 
 @end
-#endif  // WEBRTC_MODULES_VIDEO_CAPTURE_IOS_VIDEO_CAPTURE_IOS_OBJC_H_
+#endif  // WEBRTC_MODULES_VIDEO_CAPTURE_OBJC_RTC_VIDEO_CAPTURE_OBJC_H_
diff --git a/webrtc/modules/video_capture/ios/rtc_video_capture_ios_objc.mm b/webrtc/modules/video_capture/objc/rtc_video_capture_objc.mm
similarity index 78%
rename from webrtc/modules/video_capture/ios/rtc_video_capture_ios_objc.mm
rename to webrtc/modules/video_capture/objc/rtc_video_capture_objc.mm
index f12ff00..4f2f6bb 100644
--- a/webrtc/modules/video_capture/ios/rtc_video_capture_ios_objc.mm
+++ b/webrtc/modules/video_capture/objc/rtc_video_capture_objc.mm
@@ -12,10 +12,13 @@
 #error "This file requires ARC support."
 #endif
 
+#import <AVFoundation/AVFoundation.h>
+#ifdef WEBRTC_IOS
 #import <UIKit/UIKit.h>
+#endif
 
-#import "webrtc/modules/video_capture/ios/device_info_ios_objc.h"
-#import "webrtc/modules/video_capture/ios/rtc_video_capture_ios_objc.h"
+#import "webrtc/modules/video_capture/objc/device_info_objc.h"
+#import "webrtc/modules/video_capture/objc/rtc_video_capture_objc.h"
 
 #include "webrtc/system_wrappers/include/trace.h"
 
@@ -69,15 +72,12 @@
     if ([_captureSession canAddOutput:captureOutput]) {
       [_captureSession addOutput:captureOutput];
     } else {
-      WEBRTC_TRACE(kTraceError,
-                   kTraceVideoCapture,
-                   _captureId,
+      WEBRTC_TRACE(kTraceError, kTraceVideoCapture, _captureId,
                    "%s:%s:%d Could not add output to AVCaptureSession ",
-                   __FILE__,
-                   __FUNCTION__,
-                   __LINE__);
+                   __FILE__, __FUNCTION__, __LINE__);
     }
 
+#ifdef WEBRTC_IOS
     [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
 
     NSNotificationCenter* notify = [NSNotificationCenter defaultCenter];
@@ -89,6 +89,7 @@
                selector:@selector(deviceOrientationDidChange:)
                    name:UIDeviceOrientationDidChangeNotification
                  object:nil];
+#endif
   }
 
   return self;
@@ -141,12 +142,7 @@
     return NO;
   }
 
-  if ([_captureSession canSetSessionPreset:AVCaptureSessionPreset1920x1080]) {
-    if (capability.width > 1920 || capability.height > 1080) {
-      return NO;
-    }
-  } else if ([_captureSession
-                 canSetSessionPreset:AVCaptureSessionPreset1280x720]) {
+  if ([_captureSession canSetSessionPreset:AVCaptureSessionPreset1280x720]) {
     if (capability.width > 1280 || capability.height > 720) {
       return NO;
     }
@@ -174,9 +170,10 @@
 
   _orientationHasChanged = NO;
   _captureChanging = YES;
-  dispatch_async(
-      dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),
-      ^(void) { [self startCaptureInBackgroundWithOutput:currentOutput]; });
+  dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),
+                 ^{
+                   [self startCaptureInBackgroundWithOutput:currentOutput];
+                 });
   return YES;
 }
 
@@ -185,13 +182,10 @@
 }
 
 - (void)startCaptureInBackgroundWithOutput:
-            (AVCaptureVideoDataOutput*)currentOutput {
+    (AVCaptureVideoDataOutput*)currentOutput {
   NSString* captureQuality =
       [NSString stringWithString:AVCaptureSessionPresetLow];
-  if (_capability.width >= 1920 || _capability.height >= 1080) {
-    captureQuality =
-        [NSString stringWithString:AVCaptureSessionPreset1920x1080];
-  } else if (_capability.width >= 1280 || _capability.height >= 720) {
+  if (_capability.width >= 1280 || _capability.height >= 720) {
     captureQuality = [NSString stringWithString:AVCaptureSessionPreset1280x720];
   } else if (_capability.width >= 640 || _capability.height >= 480) {
     captureQuality = [NSString stringWithString:AVCaptureSessionPreset640x480];
@@ -205,30 +199,6 @@
   // picture resolution
   [_captureSession setSessionPreset:captureQuality];
 
-  // take care of capture framerate now
-  NSArray* sessionInputs = _captureSession.inputs;
-  AVCaptureDeviceInput* deviceInput = [sessionInputs count] > 0 ?
-      sessionInputs[0] : nil;
-  AVCaptureDevice* inputDevice = deviceInput.device;
-  if (inputDevice) {
-    AVCaptureDeviceFormat* activeFormat = inputDevice.activeFormat;
-    NSArray* supportedRanges = activeFormat.videoSupportedFrameRateRanges;
-    AVFrameRateRange* targetRange = [supportedRanges count] > 0 ?
-        supportedRanges[0] : nil;
-    // Find the largest supported framerate less than capability maxFPS.
-    for (AVFrameRateRange* range in supportedRanges) {
-      if (range.maxFrameRate <= _capability.maxFPS &&
-          targetRange.maxFrameRate <= range.maxFrameRate) {
-        targetRange = range;
-      }
-    }
-    if (targetRange && [inputDevice lockForConfiguration:NULL]) {
-      inputDevice.activeVideoMinFrameDuration = targetRange.minFrameDuration;
-      inputDevice.activeVideoMaxFrameDuration = targetRange.minFrameDuration;
-      [inputDevice unlockForConfiguration];
-    }
-  }
-
   _connection = [currentOutput connectionWithMediaType:AVMediaTypeVideo];
   [self setRelativeVideoOrientation];
 
@@ -243,49 +213,47 @@
   if (!_connection.supportsVideoOrientation) {
     return;
   }
-
+#ifndef WEBRTC_IOS
+  _connection.videoOrientation = AVCaptureVideoOrientationLandscapeRight;
+  return;
+#else
   switch ([UIDevice currentDevice].orientation) {
     case UIDeviceOrientationPortrait:
-      _connection.videoOrientation =
-          AVCaptureVideoOrientationPortrait;
+      _connection.videoOrientation = AVCaptureVideoOrientationPortrait;
       break;
     case UIDeviceOrientationPortraitUpsideDown:
       _connection.videoOrientation =
           AVCaptureVideoOrientationPortraitUpsideDown;
       break;
     case UIDeviceOrientationLandscapeLeft:
-      _connection.videoOrientation =
-          AVCaptureVideoOrientationLandscapeRight;
+      _connection.videoOrientation = AVCaptureVideoOrientationLandscapeRight;
       break;
     case UIDeviceOrientationLandscapeRight:
-      _connection.videoOrientation =
-          AVCaptureVideoOrientationLandscapeLeft;
+      _connection.videoOrientation = AVCaptureVideoOrientationLandscapeLeft;
       break;
     case UIDeviceOrientationFaceUp:
     case UIDeviceOrientationFaceDown:
     case UIDeviceOrientationUnknown:
       if (!_orientationHasChanged) {
-        _connection.videoOrientation =
-            AVCaptureVideoOrientationPortrait;
+        _connection.videoOrientation = AVCaptureVideoOrientationPortrait;
       }
       break;
   }
+#endif
 }
 
 - (void)onVideoError:(NSNotification*)notification {
   NSLog(@"onVideoError: %@", notification);
   // TODO(sjlee): make the specific error handling with this notification.
-  WEBRTC_TRACE(kTraceError,
-               kTraceVideoCapture,
-               _captureId,
-               "%s:%s:%d [AVCaptureSession startRunning] error.",
-               __FILE__,
-               __FUNCTION__,
-               __LINE__);
+  WEBRTC_TRACE(kTraceError, kTraceVideoCapture, _captureId,
+               "%s:%s:%d [AVCaptureSession startRunning] error.", __FILE__,
+               __FUNCTION__, __LINE__);
 }
 
 - (BOOL)stopCapture {
+#ifdef WEBRTC_IOS
   [[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications];
+#endif
   _orientationHasChanged = NO;
   [self waitForCaptureChangeToFinish];
   [self directOutputToNil];
@@ -296,7 +264,9 @@
 
   _captureChanging = YES;
   dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),
-                 ^(void) { [self stopCaptureInBackground]; });
+                 ^(void) {
+                   [self stopCaptureInBackground];
+                 });
   return YES;
 }
 
@@ -339,14 +309,9 @@
   if (!newCaptureInput) {
     const char* errorMessage = [[deviceError localizedDescription] UTF8String];
 
-    WEBRTC_TRACE(kTraceError,
-                 kTraceVideoCapture,
-                 _captureId,
-                 "%s:%s:%d deviceInputWithDevice error:%s",
-                 __FILE__,
-                 __FUNCTION__,
-                 __LINE__,
-                 errorMessage);
+    WEBRTC_TRACE(kTraceError, kTraceVideoCapture, _captureId,
+                 "%s:%s:%d deviceInputWithDevice error:%s", __FILE__,
+                 __FUNCTION__, __LINE__, errorMessage);
 
     return NO;
   }
diff --git a/webrtc/modules/video_capture/ios/video_capture_ios.h b/webrtc/modules/video_capture/objc/video_capture.h
similarity index 86%
rename from webrtc/modules/video_capture/ios/video_capture_ios.h
rename to webrtc/modules/video_capture/objc/video_capture.h
index 5172855..1f9f420 100644
--- a/webrtc/modules/video_capture/ios/video_capture_ios.h
+++ b/webrtc/modules/video_capture/objc/video_capture.h
@@ -8,8 +8,8 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#ifndef WEBRTC_MODULES_VIDEO_CAPTURE_IOS_VIDEO_CAPTURE_IOS_H_
-#define WEBRTC_MODULES_VIDEO_CAPTURE_IOS_VIDEO_CAPTURE_IOS_H_
+#ifndef WEBRTC_MODULES_VIDEO_CAPTURE_OBJC_VIDEO_CAPTURE_H_
+#define WEBRTC_MODULES_VIDEO_CAPTURE_OBJC_VIDEO_CAPTURE_H_
 
 #include "webrtc/base/scoped_ref_ptr.h"
 #include "webrtc/modules/video_capture/video_capture_impl.h"
@@ -43,4 +43,4 @@
 }  // namespace videocapturemodule
 }  // namespace webrtc
 
-#endif  // WEBRTC_MODULES_VIDEO_CAPTURE_IOS_VIDEO_CAPTURE_IOS_H_
+#endif  // WEBRTC_MODULES_VIDEO_CAPTURE_OBJC_VIDEO_CAPTURE_H_
diff --git a/webrtc/modules/video_capture/ios/video_capture_ios.mm b/webrtc/modules/video_capture/objc/video_capture.mm
similarity index 86%
rename from webrtc/modules/video_capture/ios/video_capture_ios.mm
rename to webrtc/modules/video_capture/objc/video_capture.mm
index 7a1f17b..e73b47a 100644
--- a/webrtc/modules/video_capture/ios/video_capture_ios.mm
+++ b/webrtc/modules/video_capture/objc/video_capture.mm
@@ -14,8 +14,8 @@
 
 #include "webrtc/base/refcount.h"
 #include "webrtc/base/scoped_ref_ptr.h"
-#include "webrtc/modules/video_capture/ios/device_info_ios_objc.h"
-#include "webrtc/modules/video_capture/ios/rtc_video_capture_ios_objc.h"
+#include "webrtc/modules/video_capture/objc/device_info_objc.h"
+#include "webrtc/modules/video_capture/objc/rtc_video_capture_objc.h"
 #include "webrtc/system_wrappers/include/trace.h"
 
 using namespace webrtc;
@@ -67,9 +67,10 @@
     return nullptr;
   }
 
-  if (![capture_module->capture_device_ setCaptureDeviceByUniqueId:[
-              [NSString alloc] initWithCString:deviceUniqueIdUTF8
-                                      encoding:NSUTF8StringEncoding]]) {
+  if (![capture_module->capture_device_
+          setCaptureDeviceByUniqueId:
+              [[NSString alloc] initWithCString:deviceUniqueIdUTF8
+                                       encoding:NSUTF8StringEncoding]]) {
     return nullptr;
   }
   return capture_module;
@@ -97,7 +98,9 @@
   return 0;
 }
 
-bool VideoCaptureIos::CaptureStarted() { return is_capturing_; }
+bool VideoCaptureIos::CaptureStarted() {
+  return is_capturing_;
+}
 
 int32_t VideoCaptureIos::CaptureSettings(VideoCaptureCapability& settings) {
   settings = capability_;
diff --git a/webrtc/modules/video_capture/video_capture.gypi b/webrtc/modules/video_capture/video_capture.gypi
index eb10147..9027706 100644
--- a/webrtc/modules/video_capture/video_capture.gypi
+++ b/webrtc/modules/video_capture/video_capture.gypi
@@ -68,29 +68,6 @@
                 'linux/video_capture_linux.h',
               ],
             }],  # linux
-            ['OS=="mac"', {
-              'sources': [
-                'mac/qtkit/video_capture_qtkit.h',
-                'mac/qtkit/video_capture_qtkit.mm',
-                'mac/qtkit/video_capture_qtkit_info.h',
-                'mac/qtkit/video_capture_qtkit_info.mm',
-                'mac/qtkit/video_capture_qtkit_info_objc.h',
-                'mac/qtkit/video_capture_qtkit_info_objc.mm',
-                'mac/qtkit/video_capture_qtkit_objc.h',
-                'mac/qtkit/video_capture_qtkit_objc.mm',
-                'mac/qtkit/video_capture_qtkit_utility.h',
-                'mac/video_capture_mac.mm',
-              ],
-              'link_settings': {
-                'xcode_settings': {
-                  'OTHER_LDFLAGS': [
-                    '-framework Cocoa',
-                    '-framework CoreVideo',
-                    '-framework QTKit',
-                  ],
-                },
-              },
-            }],  # mac
             ['OS=="win"', {
               'dependencies': [
                 '<(DEPTH)/third_party/winsdk_samples/winsdk_samples.gyp:directshow_baseclasses',
@@ -133,16 +110,16 @@
                 },
               },
             }],
-            ['OS=="ios"', {
+            ['OS=="ios" or OS=="mac"', {
               'sources': [
-                'ios/device_info_ios.h',
-                'ios/device_info_ios.mm',
-                'ios/device_info_ios_objc.h',
-                'ios/device_info_ios_objc.mm',
-                'ios/rtc_video_capture_ios_objc.h',
-                'ios/rtc_video_capture_ios_objc.mm',
-                'ios/video_capture_ios.h',
-                'ios/video_capture_ios.mm',
+                'objc/device_info.h',
+                'objc/device_info.mm',
+                'objc/device_info_objc.h',
+                'objc/device_info_objc.mm',
+                'objc/rtc_video_capture_objc.h',
+                'objc/rtc_video_capture_objc.mm',
+                'objc/video_capture.h',
+                'objc/video_capture.mm',
               ],
               'xcode_settings': {
                 'CLANG_ENABLE_OBJC_ARC': 'YES',
@@ -153,6 +130,14 @@
                     '-framework AVFoundation',
                     '-framework CoreMedia',
                     '-framework CoreVideo',
+                  ],
+                },
+              },
+            }],  # ios
+            ['OS=="ios"', {
+              'all_dependent_settings': {
+                'xcode_settings': {
+                  'OTHER_LDFLAGS': [
                     '-framework UIKit',
                   ],
                 },