xref: /aosp_15_r20/external/webrtc/rtc_tools/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 Workerimport("../webrtc.gni")
9*d9f75844SAndroid Build Coastguard Workerif (rtc_enable_protobuf) {
10*d9f75844SAndroid Build Coastguard Worker  import("//third_party/protobuf/proto_library.gni")
11*d9f75844SAndroid Build Coastguard Worker}
12*d9f75844SAndroid Build Coastguard Worker
13*d9f75844SAndroid Build Coastguard Workergroup("rtc_tools") {
14*d9f75844SAndroid Build Coastguard Worker  # This target shall build all targets in tools/.
15*d9f75844SAndroid Build Coastguard Worker  testonly = true
16*d9f75844SAndroid Build Coastguard Worker
17*d9f75844SAndroid Build Coastguard Worker  deps = [ ":video_file_reader" ]
18*d9f75844SAndroid Build Coastguard Worker  if (!build_with_chromium) {
19*d9f75844SAndroid Build Coastguard Worker    deps += [
20*d9f75844SAndroid Build Coastguard Worker      ":frame_analyzer",
21*d9f75844SAndroid Build Coastguard Worker      ":psnr_ssim_analyzer",
22*d9f75844SAndroid Build Coastguard Worker      ":video_quality_analysis",
23*d9f75844SAndroid Build Coastguard Worker    ]
24*d9f75844SAndroid Build Coastguard Worker  }
25*d9f75844SAndroid Build Coastguard Worker  if (!build_with_chromium && rtc_enable_protobuf) {
26*d9f75844SAndroid Build Coastguard Worker    deps += [ ":chart_proto" ]
27*d9f75844SAndroid Build Coastguard Worker  }
28*d9f75844SAndroid Build Coastguard Worker  if (!build_with_chromium && rtc_include_tests) {
29*d9f75844SAndroid Build Coastguard Worker    deps += [ ":tools_unittests" ]
30*d9f75844SAndroid Build Coastguard Worker  }
31*d9f75844SAndroid Build Coastguard Worker  if (rtc_include_tests && rtc_enable_protobuf) {
32*d9f75844SAndroid Build Coastguard Worker    deps += [
33*d9f75844SAndroid Build Coastguard Worker      ":rtp_analyzer",
34*d9f75844SAndroid Build Coastguard Worker      "network_tester",
35*d9f75844SAndroid Build Coastguard Worker    ]
36*d9f75844SAndroid Build Coastguard Worker  }
37*d9f75844SAndroid Build Coastguard Worker  if (rtc_include_tests && rtc_enable_protobuf && !build_with_chromium) {
38*d9f75844SAndroid Build Coastguard Worker    deps += [
39*d9f75844SAndroid Build Coastguard Worker      ":audioproc_f",
40*d9f75844SAndroid Build Coastguard Worker      ":event_log_visualizer",
41*d9f75844SAndroid Build Coastguard Worker      ":rtc_event_log_to_text",
42*d9f75844SAndroid Build Coastguard Worker      ":unpack_aecdump",
43*d9f75844SAndroid Build Coastguard Worker    ]
44*d9f75844SAndroid Build Coastguard Worker  }
45*d9f75844SAndroid Build Coastguard Worker  if (!build_with_chromium && rtc_enable_grpc) {
46*d9f75844SAndroid Build Coastguard Worker    deps += [ "data_channel_benchmark" ]
47*d9f75844SAndroid Build Coastguard Worker  }
48*d9f75844SAndroid Build Coastguard Worker}
49*d9f75844SAndroid Build Coastguard Worker
50*d9f75844SAndroid Build Coastguard Workerrtc_library("video_file_reader") {
51*d9f75844SAndroid Build Coastguard Worker  sources = [
52*d9f75844SAndroid Build Coastguard Worker    "video_file_reader.cc",
53*d9f75844SAndroid Build Coastguard Worker    "video_file_reader.h",
54*d9f75844SAndroid Build Coastguard Worker  ]
55*d9f75844SAndroid Build Coastguard Worker  deps = [
56*d9f75844SAndroid Build Coastguard Worker    "../api:make_ref_counted",
57*d9f75844SAndroid Build Coastguard Worker    "../api:scoped_refptr",
58*d9f75844SAndroid Build Coastguard Worker    "../api/video:video_frame",
59*d9f75844SAndroid Build Coastguard Worker    "../api/video:video_rtp_headers",
60*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:checks",
61*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:logging",
62*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:refcount",
63*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:stringutils",
64*d9f75844SAndroid Build Coastguard Worker  ]
65*d9f75844SAndroid Build Coastguard Worker  absl_deps = [
66*d9f75844SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/strings",
67*d9f75844SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/types:optional",
68*d9f75844SAndroid Build Coastguard Worker  ]
69*d9f75844SAndroid Build Coastguard Worker}
70*d9f75844SAndroid Build Coastguard Worker
71*d9f75844SAndroid Build Coastguard Workerrtc_library("video_file_writer") {
72*d9f75844SAndroid Build Coastguard Worker  sources = [
73*d9f75844SAndroid Build Coastguard Worker    "video_file_writer.cc",
74*d9f75844SAndroid Build Coastguard Worker    "video_file_writer.h",
75*d9f75844SAndroid Build Coastguard Worker  ]
76*d9f75844SAndroid Build Coastguard Worker  deps = [
77*d9f75844SAndroid Build Coastguard Worker    ":video_file_reader",
78*d9f75844SAndroid Build Coastguard Worker    "../api:scoped_refptr",
79*d9f75844SAndroid Build Coastguard Worker    "../api/video:video_frame",
80*d9f75844SAndroid Build Coastguard Worker    "../api/video:video_rtp_headers",
81*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:logging",
82*d9f75844SAndroid Build Coastguard Worker  ]
83*d9f75844SAndroid Build Coastguard Worker  absl_deps = [
84*d9f75844SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/strings",
85*d9f75844SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/types:optional",
86*d9f75844SAndroid Build Coastguard Worker  ]
87*d9f75844SAndroid Build Coastguard Worker}
88*d9f75844SAndroid Build Coastguard Worker
89*d9f75844SAndroid Build Coastguard Workerrtc_library("video_quality_analysis") {
90*d9f75844SAndroid Build Coastguard Worker  testonly = true
91*d9f75844SAndroid Build Coastguard Worker  sources = [
92*d9f75844SAndroid Build Coastguard Worker    "frame_analyzer/linear_least_squares.cc",
93*d9f75844SAndroid Build Coastguard Worker    "frame_analyzer/linear_least_squares.h",
94*d9f75844SAndroid Build Coastguard Worker    "frame_analyzer/video_color_aligner.cc",
95*d9f75844SAndroid Build Coastguard Worker    "frame_analyzer/video_color_aligner.h",
96*d9f75844SAndroid Build Coastguard Worker    "frame_analyzer/video_geometry_aligner.cc",
97*d9f75844SAndroid Build Coastguard Worker    "frame_analyzer/video_geometry_aligner.h",
98*d9f75844SAndroid Build Coastguard Worker    "frame_analyzer/video_quality_analysis.cc",
99*d9f75844SAndroid Build Coastguard Worker    "frame_analyzer/video_quality_analysis.h",
100*d9f75844SAndroid Build Coastguard Worker    "frame_analyzer/video_temporal_aligner.cc",
101*d9f75844SAndroid Build Coastguard Worker    "frame_analyzer/video_temporal_aligner.h",
102*d9f75844SAndroid Build Coastguard Worker  ]
103*d9f75844SAndroid Build Coastguard Worker  deps = [
104*d9f75844SAndroid Build Coastguard Worker    ":video_file_reader",
105*d9f75844SAndroid Build Coastguard Worker    "../api:array_view",
106*d9f75844SAndroid Build Coastguard Worker    "../api:make_ref_counted",
107*d9f75844SAndroid Build Coastguard Worker    "../api:scoped_refptr",
108*d9f75844SAndroid Build Coastguard Worker    "../api/numerics",
109*d9f75844SAndroid Build Coastguard Worker    "../api/test/metrics:metric",
110*d9f75844SAndroid Build Coastguard Worker    "../api/test/metrics:metrics_logger",
111*d9f75844SAndroid Build Coastguard Worker    "../api/video:video_frame",
112*d9f75844SAndroid Build Coastguard Worker    "../api/video:video_rtp_headers",
113*d9f75844SAndroid Build Coastguard Worker    "../common_video",
114*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:checks",
115*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:logging",
116*d9f75844SAndroid Build Coastguard Worker    "//third_party/libyuv",
117*d9f75844SAndroid Build Coastguard Worker  ]
118*d9f75844SAndroid Build Coastguard Worker  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
119*d9f75844SAndroid Build Coastguard Worker}
120*d9f75844SAndroid Build Coastguard Worker
121*d9f75844SAndroid Build Coastguard Worker# TODO(bugs.webrtc.org/11474): Enable this on win if needed. For now it
122*d9f75844SAndroid Build Coastguard Worker# is only required for Linux and Android.
123*d9f75844SAndroid Build Coastguard Workerif (!build_with_chromium && !build_with_mozilla && !is_win && !is_ios) {
124*d9f75844SAndroid Build Coastguard Worker  action("frame_analyzer_host") {
125*d9f75844SAndroid Build Coastguard Worker    script = "//tools_webrtc/executable_host_build.py"
126*d9f75844SAndroid Build Coastguard Worker    outputs = [ "${root_out_dir}/frame_analyzer_host" ]
127*d9f75844SAndroid Build Coastguard Worker    args = [
128*d9f75844SAndroid Build Coastguard Worker      "--executable_name",
129*d9f75844SAndroid Build Coastguard Worker      "frame_analyzer",
130*d9f75844SAndroid Build Coastguard Worker    ]
131*d9f75844SAndroid Build Coastguard Worker  }
132*d9f75844SAndroid Build Coastguard Worker}
133*d9f75844SAndroid Build Coastguard Worker
134*d9f75844SAndroid Build Coastguard Workerif (!is_component_build) {
135*d9f75844SAndroid Build Coastguard Worker  # This target can be built from Chromium but it doesn't support
136*d9f75844SAndroid Build Coastguard Worker  # is_component_build=true because it depends on WebRTC testonly code
137*d9f75844SAndroid Build Coastguard Worker  # which is not part of //third_party/webrtc_overrides:webrtc_component.
138*d9f75844SAndroid Build Coastguard Worker
139*d9f75844SAndroid Build Coastguard Worker  # Abseil dependencies are not moved to the absl_deps field deliberately.
140*d9f75844SAndroid Build Coastguard Worker  # If build_with_chromium is true, the absl_deps replaces the dependencies with
141*d9f75844SAndroid Build Coastguard Worker  # the "//third_party/abseil-cpp:absl" target. Which doesn't include absl/flags
142*d9f75844SAndroid Build Coastguard Worker  # (and some others) because they cannot be used in Chromiums. Special exception
143*d9f75844SAndroid Build Coastguard Worker  # for the "frame_analyzer" target in "third_party/abseil-cpp/absl.gni" allows
144*d9f75844SAndroid Build Coastguard Worker  # it to be build in chromium.
145*d9f75844SAndroid Build Coastguard Worker  rtc_executable("frame_analyzer") {
146*d9f75844SAndroid Build Coastguard Worker    visibility = [ "*" ]
147*d9f75844SAndroid Build Coastguard Worker    testonly = true
148*d9f75844SAndroid Build Coastguard Worker    sources = [ "frame_analyzer/frame_analyzer.cc" ]
149*d9f75844SAndroid Build Coastguard Worker
150*d9f75844SAndroid Build Coastguard Worker    deps = [
151*d9f75844SAndroid Build Coastguard Worker      ":video_file_reader",
152*d9f75844SAndroid Build Coastguard Worker      ":video_file_writer",
153*d9f75844SAndroid Build Coastguard Worker      ":video_quality_analysis",
154*d9f75844SAndroid Build Coastguard Worker      "../api:make_ref_counted",
155*d9f75844SAndroid Build Coastguard Worker      "../api:scoped_refptr",
156*d9f75844SAndroid Build Coastguard Worker      "../api/test/metrics:chrome_perf_dashboard_metrics_exporter",
157*d9f75844SAndroid Build Coastguard Worker      "../api/test/metrics:global_metrics_logger_and_exporter",
158*d9f75844SAndroid Build Coastguard Worker      "../api/test/metrics:metrics_exporter",
159*d9f75844SAndroid Build Coastguard Worker      "../api/test/metrics:stdout_metrics_exporter",
160*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:stringutils",
161*d9f75844SAndroid Build Coastguard Worker      "//third_party/abseil-cpp/absl/flags:flag",
162*d9f75844SAndroid Build Coastguard Worker      "//third_party/abseil-cpp/absl/flags:parse",
163*d9f75844SAndroid Build Coastguard Worker      "//third_party/abseil-cpp/absl/strings",
164*d9f75844SAndroid Build Coastguard Worker    ]
165*d9f75844SAndroid Build Coastguard Worker
166*d9f75844SAndroid Build Coastguard Worker    if (build_with_chromium) {
167*d9f75844SAndroid Build Coastguard Worker      # When building from Chromium, WebRTC's metrics and field trial
168*d9f75844SAndroid Build Coastguard Worker      # implementations need to be replaced by the Chromium ones.
169*d9f75844SAndroid Build Coastguard Worker      deps += [ "//third_party/webrtc_overrides:webrtc_component" ]
170*d9f75844SAndroid Build Coastguard Worker    }
171*d9f75844SAndroid Build Coastguard Worker  }
172*d9f75844SAndroid Build Coastguard Worker
173*d9f75844SAndroid Build Coastguard Worker  # This target can be built from Chromium but it doesn't support
174*d9f75844SAndroid Build Coastguard Worker  # is_component_build=true because it depends on WebRTC testonly code
175*d9f75844SAndroid Build Coastguard Worker  # which is not part of //third_party/webrtc_overrides:webrtc_component.
176*d9f75844SAndroid Build Coastguard Worker
177*d9f75844SAndroid Build Coastguard Worker  # Abseil dependencies are not moved to the absl_deps field deliberately.
178*d9f75844SAndroid Build Coastguard Worker  # If build_with_chromium is true, the absl_deps replaces the dependencies with
179*d9f75844SAndroid Build Coastguard Worker  # the "//third_party/abseil-cpp:absl" target. Which doesn't include absl/flags
180*d9f75844SAndroid Build Coastguard Worker  # (and some others) because they cannot be used in Chromiums. Special exception
181*d9f75844SAndroid Build Coastguard Worker  # for the "rtp_generator" target in "third_party/abseil-cpp/absl.gni" allows
182*d9f75844SAndroid Build Coastguard Worker  # it to be build in chromium.
183*d9f75844SAndroid Build Coastguard Worker  rtc_executable("rtp_generator") {
184*d9f75844SAndroid Build Coastguard Worker    visibility = [ "*" ]
185*d9f75844SAndroid Build Coastguard Worker    testonly = true
186*d9f75844SAndroid Build Coastguard Worker    sources = [
187*d9f75844SAndroid Build Coastguard Worker      "rtp_generator/main.cc",
188*d9f75844SAndroid Build Coastguard Worker      "rtp_generator/rtp_generator.cc",
189*d9f75844SAndroid Build Coastguard Worker      "rtp_generator/rtp_generator.h",
190*d9f75844SAndroid Build Coastguard Worker    ]
191*d9f75844SAndroid Build Coastguard Worker
192*d9f75844SAndroid Build Coastguard Worker    deps = [
193*d9f75844SAndroid Build Coastguard Worker      "../api:create_frame_generator",
194*d9f75844SAndroid Build Coastguard Worker      "../api:rtp_parameters",
195*d9f75844SAndroid Build Coastguard Worker      "../api:transport_api",
196*d9f75844SAndroid Build Coastguard Worker      "../api/rtc_event_log",
197*d9f75844SAndroid Build Coastguard Worker      "../api/task_queue:default_task_queue_factory",
198*d9f75844SAndroid Build Coastguard Worker      "../api/task_queue:task_queue",
199*d9f75844SAndroid Build Coastguard Worker      "../api/video:builtin_video_bitrate_allocator_factory",
200*d9f75844SAndroid Build Coastguard Worker      "../api/video_codecs:builtin_video_decoder_factory",
201*d9f75844SAndroid Build Coastguard Worker      "../api/video_codecs:builtin_video_encoder_factory",
202*d9f75844SAndroid Build Coastguard Worker      "../api/video_codecs:video_codecs_api",
203*d9f75844SAndroid Build Coastguard Worker      "../call",
204*d9f75844SAndroid Build Coastguard Worker      "../call:call_interfaces",
205*d9f75844SAndroid Build Coastguard Worker      "../call:fake_network",
206*d9f75844SAndroid Build Coastguard Worker      "../call:rtp_interfaces",
207*d9f75844SAndroid Build Coastguard Worker      "../call:rtp_sender",
208*d9f75844SAndroid Build Coastguard Worker      "../call:simulated_network",
209*d9f75844SAndroid Build Coastguard Worker      "../call:simulated_packet_receiver",
210*d9f75844SAndroid Build Coastguard Worker      "../call:video_stream_api",
211*d9f75844SAndroid Build Coastguard Worker      "../media:rtc_audio_video",
212*d9f75844SAndroid Build Coastguard Worker      "../media:rtc_media_base",
213*d9f75844SAndroid Build Coastguard Worker      "../rtc_base",
214*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:rtc_json",
215*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:threading",
216*d9f75844SAndroid Build Coastguard Worker      "../rtc_base/system:file_wrapper",
217*d9f75844SAndroid Build Coastguard Worker      "../test:fileutils",
218*d9f75844SAndroid Build Coastguard Worker      "../test:rtp_test_utils",
219*d9f75844SAndroid Build Coastguard Worker      "../test:video_test_common",
220*d9f75844SAndroid Build Coastguard Worker      "../video/config:encoder_config",
221*d9f75844SAndroid Build Coastguard Worker      "../video/config:streams_config",
222*d9f75844SAndroid Build Coastguard Worker      "//third_party/abseil-cpp/absl/flags:flag",
223*d9f75844SAndroid Build Coastguard Worker      "//third_party/abseil-cpp/absl/flags:parse",
224*d9f75844SAndroid Build Coastguard Worker      "//third_party/abseil-cpp/absl/flags:usage",
225*d9f75844SAndroid Build Coastguard Worker      "//third_party/abseil-cpp/absl/strings",
226*d9f75844SAndroid Build Coastguard Worker    ]
227*d9f75844SAndroid Build Coastguard Worker    if (build_with_chromium) {
228*d9f75844SAndroid Build Coastguard Worker      # When building from Chromium, WebRTC's metrics and field trial
229*d9f75844SAndroid Build Coastguard Worker      # implementations need to be replaced by the Chromium ones.
230*d9f75844SAndroid Build Coastguard Worker      deps += [ "//third_party/webrtc_overrides:webrtc_component" ]
231*d9f75844SAndroid Build Coastguard Worker    }
232*d9f75844SAndroid Build Coastguard Worker  }
233*d9f75844SAndroid Build Coastguard Worker
234*d9f75844SAndroid Build Coastguard Worker  # This target can be built from Chromium but it doesn't support
235*d9f75844SAndroid Build Coastguard Worker  # is_component_build=true because it depends on WebRTC testonly code
236*d9f75844SAndroid Build Coastguard Worker  # which is not part of //third_party/webrtc_overrides:webrtc_component.
237*d9f75844SAndroid Build Coastguard Worker
238*d9f75844SAndroid Build Coastguard Worker  # Abseil dependencies are not moved to the absl_deps field deliberately.
239*d9f75844SAndroid Build Coastguard Worker  # If build_with_chromium is true, the absl_deps replaces the dependencies with
240*d9f75844SAndroid Build Coastguard Worker  # the "//third_party/abseil-cpp:absl" target. Which doesn't include absl/flags
241*d9f75844SAndroid Build Coastguard Worker  # (and some others) because they cannot be used in Chromiums. Special exception
242*d9f75844SAndroid Build Coastguard Worker  # for the "video_replay" target in "third_party/abseil-cpp/absl.gni" allows
243*d9f75844SAndroid Build Coastguard Worker  # it to be build in chromium.
244*d9f75844SAndroid Build Coastguard Worker  rtc_executable("video_replay") {
245*d9f75844SAndroid Build Coastguard Worker    visibility = [ "*" ]
246*d9f75844SAndroid Build Coastguard Worker    testonly = true
247*d9f75844SAndroid Build Coastguard Worker    sources = [ "video_replay.cc" ]
248*d9f75844SAndroid Build Coastguard Worker    deps = [
249*d9f75844SAndroid Build Coastguard Worker      "../api:field_trials",
250*d9f75844SAndroid Build Coastguard Worker      "../api/rtc_event_log",
251*d9f75844SAndroid Build Coastguard Worker      "../api/task_queue:default_task_queue_factory",
252*d9f75844SAndroid Build Coastguard Worker      "../api/test/video:function_video_factory",
253*d9f75844SAndroid Build Coastguard Worker      "../api/transport:field_trial_based_config",
254*d9f75844SAndroid Build Coastguard Worker      "../api/video:video_frame",
255*d9f75844SAndroid Build Coastguard Worker      "../api/video_codecs:video_codecs_api",
256*d9f75844SAndroid Build Coastguard Worker      "../call",
257*d9f75844SAndroid Build Coastguard Worker      "../call:call_interfaces",
258*d9f75844SAndroid Build Coastguard Worker      "../common_video",
259*d9f75844SAndroid Build Coastguard Worker      "../media:rtc_internal_video_codecs",
260*d9f75844SAndroid Build Coastguard Worker      "../modules/rtp_rtcp:rtp_rtcp_format",
261*d9f75844SAndroid Build Coastguard Worker      "../modules/video_coding:video_coding_utility",
262*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:checks",
263*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:rtc_json",
264*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:stringutils",
265*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:timeutils",
266*d9f75844SAndroid Build Coastguard Worker      "../system_wrappers",
267*d9f75844SAndroid Build Coastguard Worker      "../test:call_config_utils",
268*d9f75844SAndroid Build Coastguard Worker      "../test:encoder_settings",
269*d9f75844SAndroid Build Coastguard Worker      "../test:fake_video_codecs",
270*d9f75844SAndroid Build Coastguard Worker      "../test:null_transport",
271*d9f75844SAndroid Build Coastguard Worker      "../test:rtp_test_utils",
272*d9f75844SAndroid Build Coastguard Worker      "../test:run_loop",
273*d9f75844SAndroid Build Coastguard Worker      "../test:run_test",
274*d9f75844SAndroid Build Coastguard Worker      "../test:run_test_interface",
275*d9f75844SAndroid Build Coastguard Worker      "../test:test_common",
276*d9f75844SAndroid Build Coastguard Worker      "../test:test_renderer",
277*d9f75844SAndroid Build Coastguard Worker      "../test:test_support",
278*d9f75844SAndroid Build Coastguard Worker      "../test:video_test_common",
279*d9f75844SAndroid Build Coastguard Worker      "../test:video_test_support",
280*d9f75844SAndroid Build Coastguard Worker      "../test/time_controller:time_controller",
281*d9f75844SAndroid Build Coastguard Worker      "//third_party/abseil-cpp/absl/flags:flag",
282*d9f75844SAndroid Build Coastguard Worker      "//third_party/abseil-cpp/absl/flags:parse",
283*d9f75844SAndroid Build Coastguard Worker    ]
284*d9f75844SAndroid Build Coastguard Worker    if (build_with_chromium) {
285*d9f75844SAndroid Build Coastguard Worker      # When building from Chromium, WebRTC's metrics and field trial
286*d9f75844SAndroid Build Coastguard Worker      # implementations need to be replaced by the Chromium ones.
287*d9f75844SAndroid Build Coastguard Worker      deps += [ "//third_party/webrtc_overrides:webrtc_component" ]
288*d9f75844SAndroid Build Coastguard Worker    }
289*d9f75844SAndroid Build Coastguard Worker  }
290*d9f75844SAndroid Build Coastguard Worker}
291*d9f75844SAndroid Build Coastguard Worker
292*d9f75844SAndroid Build Coastguard Worker# Only expose the targets needed by Chromium (e.g. frame_analyzer) to avoid
293*d9f75844SAndroid Build Coastguard Worker# building a lot of redundant code as part of Chromium builds.
294*d9f75844SAndroid Build Coastguard Workerif (!build_with_chromium) {
295*d9f75844SAndroid Build Coastguard Worker  rtc_executable("psnr_ssim_analyzer") {
296*d9f75844SAndroid Build Coastguard Worker    testonly = true
297*d9f75844SAndroid Build Coastguard Worker    sources = [ "psnr_ssim_analyzer/psnr_ssim_analyzer.cc" ]
298*d9f75844SAndroid Build Coastguard Worker
299*d9f75844SAndroid Build Coastguard Worker    deps = [
300*d9f75844SAndroid Build Coastguard Worker      ":video_file_reader",
301*d9f75844SAndroid Build Coastguard Worker      ":video_quality_analysis",
302*d9f75844SAndroid Build Coastguard Worker      "../api:scoped_refptr",
303*d9f75844SAndroid Build Coastguard Worker      "../api/video:video_frame",
304*d9f75844SAndroid Build Coastguard Worker      "../api/video:video_rtp_headers",
305*d9f75844SAndroid Build Coastguard Worker      "//third_party/abseil-cpp/absl/flags:flag",
306*d9f75844SAndroid Build Coastguard Worker      "//third_party/abseil-cpp/absl/flags:parse",
307*d9f75844SAndroid Build Coastguard Worker      "//third_party/abseil-cpp/absl/flags:usage",
308*d9f75844SAndroid Build Coastguard Worker    ]
309*d9f75844SAndroid Build Coastguard Worker  }
310*d9f75844SAndroid Build Coastguard Worker
311*d9f75844SAndroid Build Coastguard Worker  rtc_library("reference_less_video_analysis_lib") {
312*d9f75844SAndroid Build Coastguard Worker    testonly = true
313*d9f75844SAndroid Build Coastguard Worker    sources = [
314*d9f75844SAndroid Build Coastguard Worker      "frame_analyzer/reference_less_video_analysis_lib.cc",
315*d9f75844SAndroid Build Coastguard Worker      "frame_analyzer/reference_less_video_analysis_lib.h",
316*d9f75844SAndroid Build Coastguard Worker    ]
317*d9f75844SAndroid Build Coastguard Worker
318*d9f75844SAndroid Build Coastguard Worker    deps = [
319*d9f75844SAndroid Build Coastguard Worker      ":video_file_reader",
320*d9f75844SAndroid Build Coastguard Worker      ":video_quality_analysis",
321*d9f75844SAndroid Build Coastguard Worker      "../api:scoped_refptr",
322*d9f75844SAndroid Build Coastguard Worker      "../api/video:video_frame",
323*d9f75844SAndroid Build Coastguard Worker      "../api/video:video_rtp_headers",
324*d9f75844SAndroid Build Coastguard Worker    ]
325*d9f75844SAndroid Build Coastguard Worker  }
326*d9f75844SAndroid Build Coastguard Worker
327*d9f75844SAndroid Build Coastguard Worker  rtc_executable("reference_less_video_analysis") {
328*d9f75844SAndroid Build Coastguard Worker    testonly = true
329*d9f75844SAndroid Build Coastguard Worker    sources = [ "frame_analyzer/reference_less_video_analysis.cc" ]
330*d9f75844SAndroid Build Coastguard Worker
331*d9f75844SAndroid Build Coastguard Worker    deps = [
332*d9f75844SAndroid Build Coastguard Worker      ":reference_less_video_analysis_lib",
333*d9f75844SAndroid Build Coastguard Worker      "//third_party/abseil-cpp/absl/flags:flag",
334*d9f75844SAndroid Build Coastguard Worker      "//third_party/abseil-cpp/absl/flags:parse",
335*d9f75844SAndroid Build Coastguard Worker      "//third_party/abseil-cpp/absl/flags:usage",
336*d9f75844SAndroid Build Coastguard Worker    ]
337*d9f75844SAndroid Build Coastguard Worker  }
338*d9f75844SAndroid Build Coastguard Worker
339*d9f75844SAndroid Build Coastguard Worker  if (rtc_enable_protobuf) {
340*d9f75844SAndroid Build Coastguard Worker    proto_library("chart_proto") {
341*d9f75844SAndroid Build Coastguard Worker      visibility = [ "*" ]
342*d9f75844SAndroid Build Coastguard Worker      sources = [
343*d9f75844SAndroid Build Coastguard Worker        "rtc_event_log_visualizer/proto/chart.proto",
344*d9f75844SAndroid Build Coastguard Worker        "rtc_event_log_visualizer/proto/chart_enums.proto",
345*d9f75844SAndroid Build Coastguard Worker      ]
346*d9f75844SAndroid Build Coastguard Worker      proto_out_dir = "rtc_tools/rtc_event_log_visualizer/proto"
347*d9f75844SAndroid Build Coastguard Worker    }
348*d9f75844SAndroid Build Coastguard Worker
349*d9f75844SAndroid Build Coastguard Worker    rtc_library("event_log_visualizer_utils") {
350*d9f75844SAndroid Build Coastguard Worker      visibility = [ "*" ]
351*d9f75844SAndroid Build Coastguard Worker      sources = [
352*d9f75844SAndroid Build Coastguard Worker        "rtc_event_log_visualizer/alerts.cc",
353*d9f75844SAndroid Build Coastguard Worker        "rtc_event_log_visualizer/alerts.h",
354*d9f75844SAndroid Build Coastguard Worker        "rtc_event_log_visualizer/analyze_audio.cc",
355*d9f75844SAndroid Build Coastguard Worker        "rtc_event_log_visualizer/analyze_audio.h",
356*d9f75844SAndroid Build Coastguard Worker        "rtc_event_log_visualizer/analyzer.cc",
357*d9f75844SAndroid Build Coastguard Worker        "rtc_event_log_visualizer/analyzer.h",
358*d9f75844SAndroid Build Coastguard Worker        "rtc_event_log_visualizer/analyzer_common.cc",
359*d9f75844SAndroid Build Coastguard Worker        "rtc_event_log_visualizer/analyzer_common.h",
360*d9f75844SAndroid Build Coastguard Worker        "rtc_event_log_visualizer/log_simulation.cc",
361*d9f75844SAndroid Build Coastguard Worker        "rtc_event_log_visualizer/log_simulation.h",
362*d9f75844SAndroid Build Coastguard Worker        "rtc_event_log_visualizer/plot_base.cc",
363*d9f75844SAndroid Build Coastguard Worker        "rtc_event_log_visualizer/plot_base.h",
364*d9f75844SAndroid Build Coastguard Worker        "rtc_event_log_visualizer/plot_protobuf.cc",
365*d9f75844SAndroid Build Coastguard Worker        "rtc_event_log_visualizer/plot_protobuf.h",
366*d9f75844SAndroid Build Coastguard Worker        "rtc_event_log_visualizer/plot_python.cc",
367*d9f75844SAndroid Build Coastguard Worker        "rtc_event_log_visualizer/plot_python.h",
368*d9f75844SAndroid Build Coastguard Worker      ]
369*d9f75844SAndroid Build Coastguard Worker      deps = [
370*d9f75844SAndroid Build Coastguard Worker        ":chart_proto",
371*d9f75844SAndroid Build Coastguard Worker        "../api:function_view",
372*d9f75844SAndroid Build Coastguard Worker        "../api:network_state_predictor_api",
373*d9f75844SAndroid Build Coastguard Worker        "../modules/audio_coding:neteq_input_audio_tools",
374*d9f75844SAndroid Build Coastguard Worker        "../modules/audio_coding:neteq_tools_minimal",
375*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:ignore_wundef",
376*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:logging",
377*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:macromagic",
378*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:rate_statistics",
379*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:refcount",
380*d9f75844SAndroid Build Coastguard Worker
381*d9f75844SAndroid Build Coastguard Worker        # TODO(kwiberg): Remove this dependency.
382*d9f75844SAndroid Build Coastguard Worker        "../api/audio_codecs:audio_codecs_api",
383*d9f75844SAndroid Build Coastguard Worker        "../api/transport:field_trial_based_config",
384*d9f75844SAndroid Build Coastguard Worker        "../api/transport:goog_cc",
385*d9f75844SAndroid Build Coastguard Worker        "../api/transport:network_control",
386*d9f75844SAndroid Build Coastguard Worker        "../call:call_interfaces",
387*d9f75844SAndroid Build Coastguard Worker        "../call:video_stream_api",
388*d9f75844SAndroid Build Coastguard Worker        "../logging:rtc_event_log_parser",
389*d9f75844SAndroid Build Coastguard Worker        "../logging:rtc_stream_config",
390*d9f75844SAndroid Build Coastguard Worker        "../modules/audio_coding:ana_debug_dump_proto",
391*d9f75844SAndroid Build Coastguard Worker        "../modules/audio_coding:audio_network_adaptor",
392*d9f75844SAndroid Build Coastguard Worker        "../modules/audio_coding:neteq_tools",
393*d9f75844SAndroid Build Coastguard Worker        "../modules/congestion_controller",
394*d9f75844SAndroid Build Coastguard Worker        "../modules/congestion_controller/goog_cc:delay_based_bwe",
395*d9f75844SAndroid Build Coastguard Worker        "../modules/congestion_controller/goog_cc:estimators",
396*d9f75844SAndroid Build Coastguard Worker        "../modules/congestion_controller/rtp:transport_feedback",
397*d9f75844SAndroid Build Coastguard Worker        "../modules/pacing",
398*d9f75844SAndroid Build Coastguard Worker        "../modules/remote_bitrate_estimator",
399*d9f75844SAndroid Build Coastguard Worker        "../modules/rtp_rtcp",
400*d9f75844SAndroid Build Coastguard Worker        "../modules/rtp_rtcp:rtp_rtcp_format",
401*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:checks",
402*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:rtc_numerics",
403*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:stringutils",
404*d9f75844SAndroid Build Coastguard Worker        "../system_wrappers",
405*d9f75844SAndroid Build Coastguard Worker        "../test:explicit_key_value_config",
406*d9f75844SAndroid Build Coastguard Worker      ]
407*d9f75844SAndroid Build Coastguard Worker      absl_deps = [
408*d9f75844SAndroid Build Coastguard Worker        "//third_party/abseil-cpp/absl/algorithm:container",
409*d9f75844SAndroid Build Coastguard Worker        "//third_party/abseil-cpp/absl/base:core_headers",
410*d9f75844SAndroid Build Coastguard Worker        "//third_party/abseil-cpp/absl/functional:bind_front",
411*d9f75844SAndroid Build Coastguard Worker        "//third_party/abseil-cpp/absl/strings",
412*d9f75844SAndroid Build Coastguard Worker        "//third_party/abseil-cpp/absl/types:optional",
413*d9f75844SAndroid Build Coastguard Worker      ]
414*d9f75844SAndroid Build Coastguard Worker    }
415*d9f75844SAndroid Build Coastguard Worker  }
416*d9f75844SAndroid Build Coastguard Worker}
417*d9f75844SAndroid Build Coastguard Worker
418*d9f75844SAndroid Build Coastguard Workerif (rtc_include_tests) {
419*d9f75844SAndroid Build Coastguard Worker  if (!build_with_chromium) {
420*d9f75844SAndroid Build Coastguard Worker    if (rtc_enable_protobuf) {
421*d9f75844SAndroid Build Coastguard Worker      rtc_executable("event_log_visualizer") {
422*d9f75844SAndroid Build Coastguard Worker        # TODO(bugs.webrtc.org/14248): Remove once usage of std::tmpnam
423*d9f75844SAndroid Build Coastguard Worker        # is removed (in favor of in memory InputAudioFile.
424*d9f75844SAndroid Build Coastguard Worker        cflags_cc = [ "-Wno-deprecated-declarations" ]
425*d9f75844SAndroid Build Coastguard Worker        sources = [
426*d9f75844SAndroid Build Coastguard Worker          "rtc_event_log_visualizer/conversational_speech_en.h",
427*d9f75844SAndroid Build Coastguard Worker          "rtc_event_log_visualizer/main.cc",
428*d9f75844SAndroid Build Coastguard Worker        ]
429*d9f75844SAndroid Build Coastguard Worker        deps = [
430*d9f75844SAndroid Build Coastguard Worker          ":event_log_visualizer_utils",
431*d9f75844SAndroid Build Coastguard Worker          "../api/neteq:neteq_api",
432*d9f75844SAndroid Build Coastguard Worker          "../api/rtc_event_log",
433*d9f75844SAndroid Build Coastguard Worker          "../logging:rtc_event_log_parser",
434*d9f75844SAndroid Build Coastguard Worker          "../modules/audio_coding:neteq",
435*d9f75844SAndroid Build Coastguard Worker          "../modules/rtp_rtcp:rtp_rtcp_format",
436*d9f75844SAndroid Build Coastguard Worker          "../rtc_base:checks",
437*d9f75844SAndroid Build Coastguard Worker          "../rtc_base:logging",
438*d9f75844SAndroid Build Coastguard Worker          "../rtc_base:protobuf_utils",
439*d9f75844SAndroid Build Coastguard Worker          "../system_wrappers:field_trial",
440*d9f75844SAndroid Build Coastguard Worker          "//third_party/abseil-cpp/absl/algorithm:container",
441*d9f75844SAndroid Build Coastguard Worker          "//third_party/abseil-cpp/absl/flags:config",
442*d9f75844SAndroid Build Coastguard Worker          "//third_party/abseil-cpp/absl/flags:flag",
443*d9f75844SAndroid Build Coastguard Worker          "//third_party/abseil-cpp/absl/flags:parse",
444*d9f75844SAndroid Build Coastguard Worker          "//third_party/abseil-cpp/absl/flags:usage",
445*d9f75844SAndroid Build Coastguard Worker          "//third_party/abseil-cpp/absl/strings",
446*d9f75844SAndroid Build Coastguard Worker        ]
447*d9f75844SAndroid Build Coastguard Worker      }
448*d9f75844SAndroid Build Coastguard Worker
449*d9f75844SAndroid Build Coastguard Worker      rtc_executable("rtc_event_log_to_text") {
450*d9f75844SAndroid Build Coastguard Worker        testonly = true
451*d9f75844SAndroid Build Coastguard Worker        sources = [
452*d9f75844SAndroid Build Coastguard Worker          "rtc_event_log_to_text/converter.cc",
453*d9f75844SAndroid Build Coastguard Worker          "rtc_event_log_to_text/converter.h",
454*d9f75844SAndroid Build Coastguard Worker          "rtc_event_log_to_text/main.cc",
455*d9f75844SAndroid Build Coastguard Worker        ]
456*d9f75844SAndroid Build Coastguard Worker        deps = [
457*d9f75844SAndroid Build Coastguard Worker          "../api/rtc_event_log",
458*d9f75844SAndroid Build Coastguard Worker          "../logging:ice_log",
459*d9f75844SAndroid Build Coastguard Worker          "../logging:rtc_event_audio",
460*d9f75844SAndroid Build Coastguard Worker          "../logging:rtc_event_begin_end",
461*d9f75844SAndroid Build Coastguard Worker          "../logging:rtc_event_bwe",
462*d9f75844SAndroid Build Coastguard Worker          "../logging:rtc_event_frame_events",
463*d9f75844SAndroid Build Coastguard Worker          "../logging:rtc_event_generic_packet_events",
464*d9f75844SAndroid Build Coastguard Worker          "../logging:rtc_event_log2_proto",
465*d9f75844SAndroid Build Coastguard Worker          "../logging:rtc_event_log_impl_encoder",
466*d9f75844SAndroid Build Coastguard Worker          "../logging:rtc_event_log_parser",
467*d9f75844SAndroid Build Coastguard Worker          "../logging:rtc_event_log_proto",
468*d9f75844SAndroid Build Coastguard Worker          "../logging:rtc_event_pacing",
469*d9f75844SAndroid Build Coastguard Worker          "../logging:rtc_event_rtp_rtcp",
470*d9f75844SAndroid Build Coastguard Worker          "../logging:rtc_event_video",
471*d9f75844SAndroid Build Coastguard Worker          "../logging:rtc_stream_config",
472*d9f75844SAndroid Build Coastguard Worker          "../rtc_base:checks",
473*d9f75844SAndroid Build Coastguard Worker          "../rtc_base:logging",
474*d9f75844SAndroid Build Coastguard Worker          "//third_party/abseil-cpp/absl/base:core_headers",
475*d9f75844SAndroid Build Coastguard Worker          "//third_party/abseil-cpp/absl/flags:flag",
476*d9f75844SAndroid Build Coastguard Worker          "//third_party/abseil-cpp/absl/flags:parse",
477*d9f75844SAndroid Build Coastguard Worker          "//third_party/abseil-cpp/absl/flags:usage",
478*d9f75844SAndroid Build Coastguard Worker          "//third_party/abseil-cpp/absl/strings",
479*d9f75844SAndroid Build Coastguard Worker        ]
480*d9f75844SAndroid Build Coastguard Worker      }
481*d9f75844SAndroid Build Coastguard Worker    }
482*d9f75844SAndroid Build Coastguard Worker
483*d9f75844SAndroid Build Coastguard Worker    tools_unittests_resources = [
484*d9f75844SAndroid Build Coastguard Worker      "../resources/foreman_128x96.yuv",
485*d9f75844SAndroid Build Coastguard Worker      "../resources/foreman_cif.yuv",
486*d9f75844SAndroid Build Coastguard Worker      "../resources/reference_less_video_test_file.y4m",
487*d9f75844SAndroid Build Coastguard Worker    ]
488*d9f75844SAndroid Build Coastguard Worker
489*d9f75844SAndroid Build Coastguard Worker    if (is_ios) {
490*d9f75844SAndroid Build Coastguard Worker      bundle_data("tools_unittests_bundle_data") {
491*d9f75844SAndroid Build Coastguard Worker        testonly = true
492*d9f75844SAndroid Build Coastguard Worker        sources = tools_unittests_resources
493*d9f75844SAndroid Build Coastguard Worker        outputs = [ "{{bundle_resources_dir}}/{{source_file_part}}" ]
494*d9f75844SAndroid Build Coastguard Worker      }
495*d9f75844SAndroid Build Coastguard Worker    }
496*d9f75844SAndroid Build Coastguard Worker
497*d9f75844SAndroid Build Coastguard Worker    rtc_test("tools_unittests") {
498*d9f75844SAndroid Build Coastguard Worker      testonly = true
499*d9f75844SAndroid Build Coastguard Worker
500*d9f75844SAndroid Build Coastguard Worker      sources = [
501*d9f75844SAndroid Build Coastguard Worker        "frame_analyzer/linear_least_squares_unittest.cc",
502*d9f75844SAndroid Build Coastguard Worker        "frame_analyzer/reference_less_video_analysis_unittest.cc",
503*d9f75844SAndroid Build Coastguard Worker        "frame_analyzer/video_color_aligner_unittest.cc",
504*d9f75844SAndroid Build Coastguard Worker        "frame_analyzer/video_geometry_aligner_unittest.cc",
505*d9f75844SAndroid Build Coastguard Worker        "frame_analyzer/video_quality_analysis_unittest.cc",
506*d9f75844SAndroid Build Coastguard Worker        "frame_analyzer/video_temporal_aligner_unittest.cc",
507*d9f75844SAndroid Build Coastguard Worker        "sanitizers_unittest.cc",
508*d9f75844SAndroid Build Coastguard Worker        "video_file_reader_unittest.cc",
509*d9f75844SAndroid Build Coastguard Worker        "video_file_writer_unittest.cc",
510*d9f75844SAndroid Build Coastguard Worker      ]
511*d9f75844SAndroid Build Coastguard Worker
512*d9f75844SAndroid Build Coastguard Worker      deps = [
513*d9f75844SAndroid Build Coastguard Worker        ":video_file_reader",
514*d9f75844SAndroid Build Coastguard Worker        ":video_file_writer",
515*d9f75844SAndroid Build Coastguard Worker        ":video_quality_analysis",
516*d9f75844SAndroid Build Coastguard Worker        "../api:scoped_refptr",
517*d9f75844SAndroid Build Coastguard Worker        "../api/test/metrics:metric",
518*d9f75844SAndroid Build Coastguard Worker        "../api/test/metrics:metrics_logger",
519*d9f75844SAndroid Build Coastguard Worker        "../api/video:video_frame",
520*d9f75844SAndroid Build Coastguard Worker        "../api/video:video_rtp_headers",
521*d9f75844SAndroid Build Coastguard Worker        "../common_video",
522*d9f75844SAndroid Build Coastguard Worker        "../rtc_base",
523*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:checks",
524*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:null_socket_server",
525*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:threading",
526*d9f75844SAndroid Build Coastguard Worker        "../system_wrappers",
527*d9f75844SAndroid Build Coastguard Worker        "../test:fileutils",
528*d9f75844SAndroid Build Coastguard Worker        "../test:test_main",
529*d9f75844SAndroid Build Coastguard Worker        "../test:test_support",
530*d9f75844SAndroid Build Coastguard Worker        "//testing/gtest",
531*d9f75844SAndroid Build Coastguard Worker        "//third_party/libyuv",
532*d9f75844SAndroid Build Coastguard Worker      ]
533*d9f75844SAndroid Build Coastguard Worker
534*d9f75844SAndroid Build Coastguard Worker      if (!build_with_chromium) {
535*d9f75844SAndroid Build Coastguard Worker        deps += [ ":reference_less_video_analysis_lib" ]
536*d9f75844SAndroid Build Coastguard Worker      }
537*d9f75844SAndroid Build Coastguard Worker
538*d9f75844SAndroid Build Coastguard Worker      if (rtc_enable_protobuf) {
539*d9f75844SAndroid Build Coastguard Worker        deps += [ "network_tester:network_tester_unittests" ]
540*d9f75844SAndroid Build Coastguard Worker      }
541*d9f75844SAndroid Build Coastguard Worker
542*d9f75844SAndroid Build Coastguard Worker      data = tools_unittests_resources
543*d9f75844SAndroid Build Coastguard Worker      if (is_android) {
544*d9f75844SAndroid Build Coastguard Worker        deps += [ "//testing/android/native_test:native_test_support" ]
545*d9f75844SAndroid Build Coastguard Worker        shard_timeout = 900
546*d9f75844SAndroid Build Coastguard Worker      }
547*d9f75844SAndroid Build Coastguard Worker      if (is_ios) {
548*d9f75844SAndroid Build Coastguard Worker        deps += [ ":tools_unittests_bundle_data" ]
549*d9f75844SAndroid Build Coastguard Worker      }
550*d9f75844SAndroid Build Coastguard Worker    }
551*d9f75844SAndroid Build Coastguard Worker
552*d9f75844SAndroid Build Coastguard Worker    if (rtc_enable_protobuf) {
553*d9f75844SAndroid Build Coastguard Worker      rtc_executable("audioproc_f") {
554*d9f75844SAndroid Build Coastguard Worker        testonly = true
555*d9f75844SAndroid Build Coastguard Worker        sources = [ "audioproc_f/audioproc_float_main.cc" ]
556*d9f75844SAndroid Build Coastguard Worker        deps = [
557*d9f75844SAndroid Build Coastguard Worker          "../api:audioproc_f_api",
558*d9f75844SAndroid Build Coastguard Worker          "../modules/audio_processing",
559*d9f75844SAndroid Build Coastguard Worker          "../modules/audio_processing:api",
560*d9f75844SAndroid Build Coastguard Worker        ]
561*d9f75844SAndroid Build Coastguard Worker      }
562*d9f75844SAndroid Build Coastguard Worker
563*d9f75844SAndroid Build Coastguard Worker      rtc_executable("unpack_aecdump") {
564*d9f75844SAndroid Build Coastguard Worker        visibility = [ "*" ]
565*d9f75844SAndroid Build Coastguard Worker        sources = [ "unpack_aecdump/unpack.cc" ]
566*d9f75844SAndroid Build Coastguard Worker
567*d9f75844SAndroid Build Coastguard Worker        deps = [
568*d9f75844SAndroid Build Coastguard Worker          "../api:function_view",
569*d9f75844SAndroid Build Coastguard Worker          "../common_audio",
570*d9f75844SAndroid Build Coastguard Worker          "../modules/audio_processing",
571*d9f75844SAndroid Build Coastguard Worker          "../modules/audio_processing:audioproc_debug_proto",
572*d9f75844SAndroid Build Coastguard Worker          "../modules/audio_processing:audioproc_debug_proto",
573*d9f75844SAndroid Build Coastguard Worker          "../modules/audio_processing:audioproc_protobuf_utils",
574*d9f75844SAndroid Build Coastguard Worker          "../rtc_base:checks",
575*d9f75844SAndroid Build Coastguard Worker          "../rtc_base:ignore_wundef",
576*d9f75844SAndroid Build Coastguard Worker          "../rtc_base:macromagic",
577*d9f75844SAndroid Build Coastguard Worker          "../rtc_base:protobuf_utils",
578*d9f75844SAndroid Build Coastguard Worker          "../rtc_base:stringutils",
579*d9f75844SAndroid Build Coastguard Worker          "../rtc_base/system:arch",
580*d9f75844SAndroid Build Coastguard Worker          "//third_party/abseil-cpp/absl/flags:flag",
581*d9f75844SAndroid Build Coastguard Worker          "//third_party/abseil-cpp/absl/flags:parse",
582*d9f75844SAndroid Build Coastguard Worker        ]
583*d9f75844SAndroid Build Coastguard Worker      }  # unpack_aecdump
584*d9f75844SAndroid Build Coastguard Worker    }
585*d9f75844SAndroid Build Coastguard Worker  }
586*d9f75844SAndroid Build Coastguard Worker
587*d9f75844SAndroid Build Coastguard Worker  if (rtc_enable_protobuf) {
588*d9f75844SAndroid Build Coastguard Worker    copy("rtp_analyzer") {
589*d9f75844SAndroid Build Coastguard Worker      sources = [
590*d9f75844SAndroid Build Coastguard Worker        "py_event_log_analyzer/misc.py",
591*d9f75844SAndroid Build Coastguard Worker        "py_event_log_analyzer/pb_parse.py",
592*d9f75844SAndroid Build Coastguard Worker        "py_event_log_analyzer/rtp_analyzer.py",
593*d9f75844SAndroid Build Coastguard Worker        "py_event_log_analyzer/rtp_analyzer.sh",
594*d9f75844SAndroid Build Coastguard Worker      ]
595*d9f75844SAndroid Build Coastguard Worker      outputs = [ "$root_build_dir/{{source_file_part}}" ]
596*d9f75844SAndroid Build Coastguard Worker      deps = [ "../logging:rtc_event_log_proto" ]
597*d9f75844SAndroid Build Coastguard Worker    }  # rtp_analyzer
598*d9f75844SAndroid Build Coastguard Worker  }
599*d9f75844SAndroid Build Coastguard Worker}
600