Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1318)

Unified Diff: webrtc/modules/video_capture/mac/video_capture_mac.mm

Issue 2375273004: Reland of Unify the macOS and iOS capturer implementations (Closed)
Patch Set: fix gyp build Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webrtc/modules/video_capture/mac/video_capture_mac.mm
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 08b2aeb39a40cc62b62cb9afcee8995f4dd86452..0000000000000000000000000000000000000000
--- 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
« no previous file with comments | « webrtc/modules/video_capture/mac/qtkit/video_capture_qtkit_utility.h ('k') | webrtc/modules/video_capture/objc/device_info.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698