1 # Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. 2 # 3 # Use of this source code is governed by a BSD-style license 4 # that can be found in the LICENSE file in the root of the source 5 # tree. An additional intellectual property rights grant can be found 6 # in the file PATENTS. All contributing project authors may 7 # be found in the AUTHORS file in the root of the source tree. 8 9 import("../../build/webrtc.gni") 10 11 # Note this target is missing an implementation for the video capture. 12 # Targets must link with either 'video_capture_impl' or 13 # 'video_capture_internal_impl' depending on whether they want to 14 # use the internal capturer. 15 source_set("video_capture") { 16 sources = [ 17 "device_info_impl.cc", 18 "device_info_impl.h", 19 "include/video_capture.h", 20 "include/video_capture_defines.h", 21 "include/video_capture_factory.h", 22 "video_capture_config.h", 23 "video_capture_delay.h", 24 "video_capture_factory.cc", 25 "video_capture_impl.cc", 26 "video_capture_impl.h", 27 ] 28 29 deps = [ 30 "../../common_video", 31 "../../system_wrappers", 32 "../utility", 33 ] 34 35 if (is_clang) { 36 # Suppress warnings from Chrome's Clang plugins. 37 # See http://code.google.com/p/webrtc/issues/detail?id=163 for details. 38 configs -= [ "//build/config/clang:find_bad_constructs" ] 39 } 40 } 41 42 source_set("video_capture_impl") { 43 sources = [ 44 "external/device_info_external.cc", 45 "external/video_capture_external.cc", 46 ] 47 48 deps = [ 49 ":video_capture", 50 "../../system_wrappers", 51 ] 52 53 if (is_clang) { 54 # Suppress warnings from Chrome's Clang plugins. 55 # See http://code.google.com/p/webrtc/issues/detail?id=163 for details. 56 configs -= [ "//build/config/clang:find_bad_constructs" ] 57 } 58 } 59 60 config("video_capture_internal_impl_config") { 61 if (is_ios) { 62 libs = [ 63 "AVFoundation.framework", 64 "CoreMedia.framework", 65 "CoreVideo.framework", 66 ] 67 } 68 } 69 70 source_set("video_capture_internal_impl") { 71 deps = [ 72 ":video_capture", 73 "../../system_wrappers", 74 ] 75 76 if (is_linux) { 77 sources = [ 78 "linux/device_info_linux.cc", 79 "linux/device_info_linux.h", 80 "linux/video_capture_linux.cc", 81 "linux/video_capture_linux.h", 82 ] 83 } 84 if (is_mac) { 85 sources = [ 86 "mac/qtkit/video_capture_qtkit.h", 87 "mac/qtkit/video_capture_qtkit.mm", 88 "mac/qtkit/video_capture_qtkit_info.h", 89 "mac/qtkit/video_capture_qtkit_info.mm", 90 "mac/qtkit/video_capture_qtkit_info_objc.h", 91 "mac/qtkit/video_capture_qtkit_info_objc.mm", 92 "mac/qtkit/video_capture_qtkit_objc.h", 93 "mac/qtkit/video_capture_qtkit_objc.mm", 94 "mac/qtkit/video_capture_qtkit_utility.h", 95 "mac/video_capture_mac.mm", 96 ] 97 98 libs = [ 99 "CoreVideo.framework", 100 "QTKit.framework", 101 ] 102 } 103 # winsdk_samples isn't pulled into Chromium, so it is disabled for Chromium 104 # builds. This is not a problem since the internal video capture 105 # implementation should not be used in chrome - issue 3831. 106 if (is_win && !build_with_chromium) { 107 sources = [ 108 "windows/device_info_ds.cc", 109 "windows/device_info_ds.h", 110 "windows/device_info_mf.cc", 111 "windows/device_info_mf.h", 112 "windows/help_functions_ds.cc", 113 "windows/help_functions_ds.h", 114 "windows/sink_filter_ds.cc", 115 "windows/sink_filter_ds.h", 116 "windows/video_capture_ds.cc", 117 "windows/video_capture_ds.h", 118 "windows/video_capture_factory_windows.cc", 119 "windows/video_capture_mf.cc", 120 "windows/video_capture_mf.h", 121 ] 122 123 libs = [ "Strmiids.lib" ] 124 125 deps += [ "//third_party/winsdk_samples"] 126 } 127 if (is_android) { 128 sources = [ 129 "android/device_info_android.cc", 130 "android/device_info_android.h", 131 "android/video_capture_android.cc", 132 "android/video_capture_android.h", 133 ] 134 135 deps += [ 136 "//third_party/icu:icuuc", 137 "//third_party/jsoncpp", 138 ] 139 } 140 if (is_ios) { 141 sources = [ 142 "ios/device_info_ios.h", 143 "ios/device_info_ios.mm", 144 "ios/device_info_ios_objc.h", 145 "ios/device_info_ios_objc.mm", 146 "ios/rtc_video_capture_ios_objc.h", 147 "ios/rtc_video_capture_ios_objc.mm", 148 "ios/video_capture_ios.h", 149 "ios/video_capture_ios.mm", 150 ] 151 152 cflags = [ 153 "-fobjc-arc", # CLANG_ENABLE_OBJC_ARC = YES. 154 # To avoid warnings for deprecated videoMinFrameDuration and 155 # videoMaxFrameDuration properties in iOS 7.0. 156 # See webrtc:3705 for more details. 157 "-Wno-deprecated-declarations", 158 ] 159 } 160 161 all_dependent_configs = [ ":video_capture_internal_impl_config" ] 162 163 if (is_clang) { 164 # Suppress warnings from Chrome's Clang plugins. 165 # See http://code.google.com/p/webrtc/issues/detail?id=163 for details. 166 configs -= [ "//build/config/clang:find_bad_constructs" ] 167 } 168 } 169