xref: /aosp_15_r20/external/webrtc/modules/video_capture/BUILD.gn (revision d9f758449e529ab9291ac668be2861e7a55c2422)
1*d9f75844SAndroid Build Coastguard Worker# Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
2*d9f75844SAndroid Build Coastguard Worker#
3*d9f75844SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license
4*d9f75844SAndroid Build Coastguard Worker# that can be found in the LICENSE file in the root of the source
5*d9f75844SAndroid Build Coastguard Worker# tree. An additional intellectual property rights grant can be found
6*d9f75844SAndroid Build Coastguard Worker# in the file PATENTS.  All contributing project authors may
7*d9f75844SAndroid Build Coastguard Worker# be found in the AUTHORS file in the root of the source tree.
8*d9f75844SAndroid Build Coastguard Worker
9*d9f75844SAndroid Build Coastguard Workerimport("../../webrtc.gni")
10*d9f75844SAndroid Build Coastguard Worker
11*d9f75844SAndroid Build Coastguard Worker# Note this target is missing an implementation for the video capture.
12*d9f75844SAndroid Build Coastguard Worker# Targets must link with either 'video_capture' or
13*d9f75844SAndroid Build Coastguard Worker# 'video_capture_internal_impl' depending on whether they want to
14*d9f75844SAndroid Build Coastguard Worker# use the internal capturer.
15*d9f75844SAndroid Build Coastguard Workerrtc_library("video_capture_module") {
16*d9f75844SAndroid Build Coastguard Worker  visibility = [ "*" ]
17*d9f75844SAndroid Build Coastguard Worker  sources = [
18*d9f75844SAndroid Build Coastguard Worker    "device_info_impl.cc",
19*d9f75844SAndroid Build Coastguard Worker    "device_info_impl.h",
20*d9f75844SAndroid Build Coastguard Worker    "video_capture.h",
21*d9f75844SAndroid Build Coastguard Worker    "video_capture_config.h",
22*d9f75844SAndroid Build Coastguard Worker    "video_capture_defines.h",
23*d9f75844SAndroid Build Coastguard Worker    "video_capture_factory.cc",
24*d9f75844SAndroid Build Coastguard Worker    "video_capture_factory.h",
25*d9f75844SAndroid Build Coastguard Worker    "video_capture_impl.cc",
26*d9f75844SAndroid Build Coastguard Worker    "video_capture_impl.h",
27*d9f75844SAndroid Build Coastguard Worker  ]
28*d9f75844SAndroid Build Coastguard Worker
29*d9f75844SAndroid Build Coastguard Worker  deps = [
30*d9f75844SAndroid Build Coastguard Worker    "../../api:scoped_refptr",
31*d9f75844SAndroid Build Coastguard Worker    "../../api/video:video_frame",
32*d9f75844SAndroid Build Coastguard Worker    "../../api/video:video_rtp_headers",
33*d9f75844SAndroid Build Coastguard Worker    "../../common_video",
34*d9f75844SAndroid Build Coastguard Worker    "../../media:rtc_media_base",
35*d9f75844SAndroid Build Coastguard Worker    "../../rtc_base:event_tracer",
36*d9f75844SAndroid Build Coastguard Worker    "../../rtc_base:logging",
37*d9f75844SAndroid Build Coastguard Worker    "../../rtc_base:macromagic",
38*d9f75844SAndroid Build Coastguard Worker    "../../rtc_base:refcount",
39*d9f75844SAndroid Build Coastguard Worker    "../../rtc_base:stringutils",
40*d9f75844SAndroid Build Coastguard Worker    "../../rtc_base:timeutils",
41*d9f75844SAndroid Build Coastguard Worker    "../../rtc_base/synchronization:mutex",
42*d9f75844SAndroid Build Coastguard Worker    "../../system_wrappers",
43*d9f75844SAndroid Build Coastguard Worker    "//third_party/libyuv",
44*d9f75844SAndroid Build Coastguard Worker  ]
45*d9f75844SAndroid Build Coastguard Worker  absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
46*d9f75844SAndroid Build Coastguard Worker}
47*d9f75844SAndroid Build Coastguard Worker
48*d9f75844SAndroid Build Coastguard Workerif (!build_with_chromium) {
49*d9f75844SAndroid Build Coastguard Worker  rtc_source_set("video_capture_internal_impl") {
50*d9f75844SAndroid Build Coastguard Worker    visibility = [ "*" ]
51*d9f75844SAndroid Build Coastguard Worker    deps = [
52*d9f75844SAndroid Build Coastguard Worker      ":video_capture_module",
53*d9f75844SAndroid Build Coastguard Worker      "../../api:scoped_refptr",
54*d9f75844SAndroid Build Coastguard Worker      "../../api:sequence_checker",
55*d9f75844SAndroid Build Coastguard Worker      "../../rtc_base:checks",
56*d9f75844SAndroid Build Coastguard Worker      "../../rtc_base:logging",
57*d9f75844SAndroid Build Coastguard Worker      "../../rtc_base:macromagic",
58*d9f75844SAndroid Build Coastguard Worker      "../../rtc_base:platform_thread",
59*d9f75844SAndroid Build Coastguard Worker      "../../rtc_base:refcount",
60*d9f75844SAndroid Build Coastguard Worker      "../../rtc_base:stringutils",
61*d9f75844SAndroid Build Coastguard Worker      "../../rtc_base/synchronization:mutex",
62*d9f75844SAndroid Build Coastguard Worker      "../../system_wrappers",
63*d9f75844SAndroid Build Coastguard Worker    ]
64*d9f75844SAndroid Build Coastguard Worker
65*d9f75844SAndroid Build Coastguard Worker    if (is_linux || is_chromeos) {
66*d9f75844SAndroid Build Coastguard Worker      sources = [
67*d9f75844SAndroid Build Coastguard Worker        "linux/device_info_linux.cc",
68*d9f75844SAndroid Build Coastguard Worker        "linux/device_info_v4l2.cc",
69*d9f75844SAndroid Build Coastguard Worker        "linux/device_info_v4l2.h",
70*d9f75844SAndroid Build Coastguard Worker        "linux/video_capture_linux.cc",
71*d9f75844SAndroid Build Coastguard Worker        "linux/video_capture_v4l2.cc",
72*d9f75844SAndroid Build Coastguard Worker        "linux/video_capture_v4l2.h",
73*d9f75844SAndroid Build Coastguard Worker      ]
74*d9f75844SAndroid Build Coastguard Worker      deps += [ "../../media:rtc_media_base" ]
75*d9f75844SAndroid Build Coastguard Worker    }
76*d9f75844SAndroid Build Coastguard Worker    if (is_win) {
77*d9f75844SAndroid Build Coastguard Worker      sources = [
78*d9f75844SAndroid Build Coastguard Worker        "windows/device_info_ds.cc",
79*d9f75844SAndroid Build Coastguard Worker        "windows/device_info_ds.h",
80*d9f75844SAndroid Build Coastguard Worker        "windows/help_functions_ds.cc",
81*d9f75844SAndroid Build Coastguard Worker        "windows/help_functions_ds.h",
82*d9f75844SAndroid Build Coastguard Worker        "windows/sink_filter_ds.cc",
83*d9f75844SAndroid Build Coastguard Worker        "windows/sink_filter_ds.h",
84*d9f75844SAndroid Build Coastguard Worker        "windows/video_capture_ds.cc",
85*d9f75844SAndroid Build Coastguard Worker        "windows/video_capture_ds.h",
86*d9f75844SAndroid Build Coastguard Worker        "windows/video_capture_factory_windows.cc",
87*d9f75844SAndroid Build Coastguard Worker      ]
88*d9f75844SAndroid Build Coastguard Worker
89*d9f75844SAndroid Build Coastguard Worker      libs = [
90*d9f75844SAndroid Build Coastguard Worker        "ole32.lib",
91*d9f75844SAndroid Build Coastguard Worker        "oleaut32.lib",
92*d9f75844SAndroid Build Coastguard Worker        "strmiids.lib",
93*d9f75844SAndroid Build Coastguard Worker        "user32.lib",
94*d9f75844SAndroid Build Coastguard Worker      ]
95*d9f75844SAndroid Build Coastguard Worker
96*d9f75844SAndroid Build Coastguard Worker      if (build_with_mozilla) {
97*d9f75844SAndroid Build Coastguard Worker        sources += [
98*d9f75844SAndroid Build Coastguard Worker          "windows/BaseFilter.cpp",
99*d9f75844SAndroid Build Coastguard Worker          "windows/BaseInputPin.cpp",
100*d9f75844SAndroid Build Coastguard Worker          "windows/BasePin.cpp",
101*d9f75844SAndroid Build Coastguard Worker          "windows/MediaType.cpp",
102*d9f75844SAndroid Build Coastguard Worker        ]
103*d9f75844SAndroid Build Coastguard Worker      }
104*d9f75844SAndroid Build Coastguard Worker    }
105*d9f75844SAndroid Build Coastguard Worker    if (is_fuchsia) {
106*d9f75844SAndroid Build Coastguard Worker      sources = [ "video_capture_factory_null.cc" ]
107*d9f75844SAndroid Build Coastguard Worker    }
108*d9f75844SAndroid Build Coastguard Worker
109*d9f75844SAndroid Build Coastguard Worker    if (build_with_mozilla && is_android) {
110*d9f75844SAndroid Build Coastguard Worker      include_dirs = [
111*d9f75844SAndroid Build Coastguard Worker        "/config/external/nspr",
112*d9f75844SAndroid Build Coastguard Worker        "/nsprpub/lib/ds",
113*d9f75844SAndroid Build Coastguard Worker        "/nsprpub/pr/include",
114*d9f75844SAndroid Build Coastguard Worker      ]
115*d9f75844SAndroid Build Coastguard Worker
116*d9f75844SAndroid Build Coastguard Worker      sources = [
117*d9f75844SAndroid Build Coastguard Worker        "android/device_info_android.cc",
118*d9f75844SAndroid Build Coastguard Worker        "android/video_capture_android.cc",
119*d9f75844SAndroid Build Coastguard Worker      ]
120*d9f75844SAndroid Build Coastguard Worker    }
121*d9f75844SAndroid Build Coastguard Worker  }
122*d9f75844SAndroid Build Coastguard Worker
123*d9f75844SAndroid Build Coastguard Worker  if (!is_android && rtc_include_tests) {
124*d9f75844SAndroid Build Coastguard Worker    rtc_test("video_capture_tests") {
125*d9f75844SAndroid Build Coastguard Worker      sources = [ "test/video_capture_unittest.cc" ]
126*d9f75844SAndroid Build Coastguard Worker      ldflags = []
127*d9f75844SAndroid Build Coastguard Worker      if (is_linux || is_chromeos || is_mac) {
128*d9f75844SAndroid Build Coastguard Worker        ldflags += [
129*d9f75844SAndroid Build Coastguard Worker          "-lpthread",
130*d9f75844SAndroid Build Coastguard Worker          "-lm",
131*d9f75844SAndroid Build Coastguard Worker        ]
132*d9f75844SAndroid Build Coastguard Worker      }
133*d9f75844SAndroid Build Coastguard Worker      if (is_linux || is_chromeos) {
134*d9f75844SAndroid Build Coastguard Worker        ldflags += [
135*d9f75844SAndroid Build Coastguard Worker          "-lrt",
136*d9f75844SAndroid Build Coastguard Worker          "-lXext",
137*d9f75844SAndroid Build Coastguard Worker          "-lX11",
138*d9f75844SAndroid Build Coastguard Worker        ]
139*d9f75844SAndroid Build Coastguard Worker      }
140*d9f75844SAndroid Build Coastguard Worker
141*d9f75844SAndroid Build Coastguard Worker      deps = [
142*d9f75844SAndroid Build Coastguard Worker        ":video_capture_internal_impl",
143*d9f75844SAndroid Build Coastguard Worker        ":video_capture_module",
144*d9f75844SAndroid Build Coastguard Worker        "../../api:scoped_refptr",
145*d9f75844SAndroid Build Coastguard Worker        "../../api/video:video_frame",
146*d9f75844SAndroid Build Coastguard Worker        "../../api/video:video_rtp_headers",
147*d9f75844SAndroid Build Coastguard Worker        "../../common_video",
148*d9f75844SAndroid Build Coastguard Worker        "../../rtc_base:timeutils",
149*d9f75844SAndroid Build Coastguard Worker        "../../rtc_base/synchronization:mutex",
150*d9f75844SAndroid Build Coastguard Worker        "../../system_wrappers",
151*d9f75844SAndroid Build Coastguard Worker        "../../test:frame_utils",
152*d9f75844SAndroid Build Coastguard Worker        "../../test:test_main",
153*d9f75844SAndroid Build Coastguard Worker        "../../test:test_support",
154*d9f75844SAndroid Build Coastguard Worker        "../../test:video_test_common",
155*d9f75844SAndroid Build Coastguard Worker        "//testing/gtest",
156*d9f75844SAndroid Build Coastguard Worker        "//third_party/abseil-cpp/absl/memory",
157*d9f75844SAndroid Build Coastguard Worker      ]
158*d9f75844SAndroid Build Coastguard Worker    }
159*d9f75844SAndroid Build Coastguard Worker  }
160*d9f75844SAndroid Build Coastguard Worker}
161