xref: /aosp_15_r20/external/webrtc/test/scenario/BUILD.gn (revision d9f758449e529ab9291ac668be2861e7a55c2422)
1# Copyright (c) 2018 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
9import("../../webrtc.gni")
10
11rtc_library("column_printer") {
12  testonly = true
13  sources = [
14    "column_printer.cc",
15    "column_printer.h",
16  ]
17  deps = [
18    "../../rtc_base:macromagic",
19    "../../rtc_base:stringutils",
20    "../logging:log_writer",
21  ]
22}
23
24if (rtc_include_tests && !build_with_chromium) {
25  scenario_resources = [
26    "../../resources/difficult_photo_1850_1110.yuv",
27    "../../resources/photo_1850_1110.yuv",
28    "../../resources/presentation_1850_1110.yuv",
29    "../../resources/web_screenshot_1850_1110.yuv",
30  ]
31  scenario_unittest_resources = [ "../../resources/foreman_cif.yuv" ]
32
33  if (is_ios) {
34    bundle_data("scenario_resources_bundle_data") {
35      testonly = true
36      sources = scenario_resources
37      outputs = [ "{{bundle_resources_dir}}/{{source_file_part}}" ]
38    }
39    bundle_data("scenario_unittest_resources_bundle_data") {
40      testonly = true
41      sources = scenario_unittest_resources
42      outputs = [ "{{bundle_resources_dir}}/{{source_file_part}}" ]
43    }
44  }
45
46  rtc_library("scenario") {
47    testonly = true
48    sources = [
49      "audio_stream.cc",
50      "audio_stream.h",
51      "call_client.cc",
52      "call_client.h",
53      "hardware_codecs.cc",
54      "hardware_codecs.h",
55      "network_node.cc",
56      "network_node.h",
57      "performance_stats.cc",
58      "performance_stats.h",
59      "scenario.cc",
60      "scenario.h",
61      "scenario_config.cc",
62      "scenario_config.h",
63      "stats_collection.cc",
64      "stats_collection.h",
65      "video_frame_matcher.cc",
66      "video_frame_matcher.h",
67      "video_stream.cc",
68      "video_stream.h",
69    ]
70    deps = [
71      ":column_printer",
72      "../:fake_video_codecs",
73      "../:fileutils",
74      "../:test_common",
75      "../:test_support",
76      "../:video_test_common",
77      "../../api:create_frame_generator",
78      "../../api:fec_controller_api",
79      "../../api:frame_generator_api",
80      "../../api:libjingle_peerconnection_api",
81      "../../api:rtc_event_log_output_file",
82      "../../api:rtp_parameters",
83      "../../api:sequence_checker",
84      "../../api:time_controller",
85      "../../api:time_controller",
86      "../../api:transport_api",
87      "../../api/audio_codecs:builtin_audio_decoder_factory",
88      "../../api/audio_codecs:builtin_audio_encoder_factory",
89      "../../api/rtc_event_log",
90      "../../api/rtc_event_log:rtc_event_log_factory",
91      "../../api/task_queue",
92      "../../api/test/video:function_video_factory",
93      "../../api/transport:network_control",
94      "../../api/units:data_rate",
95      "../../api/units:data_size",
96      "../../api/units:time_delta",
97      "../../api/units:timestamp",
98      "../../api/video:builtin_video_bitrate_allocator_factory",
99      "../../api/video:video_frame",
100      "../../api/video:video_rtp_headers",
101      "../../api/video_codecs:scalability_mode",
102      "../../api/video_codecs:video_codecs_api",
103      "../../audio",
104      "../../call",
105      "../../call:call_interfaces",
106      "../../call:rtp_sender",
107      "../../call:simulated_network",
108      "../../call:video_stream_api",
109      "../../common_video",
110      "../../media:rtc_audio_video",
111      "../../media:rtc_internal_video_codecs",
112      "../../media:rtc_media_base",
113      "../../modules/audio_device",
114      "../../modules/audio_device:audio_device_impl",
115      "../../modules/audio_device:mock_audio_device",
116      "../../modules/audio_mixer:audio_mixer_impl",
117      "../../modules/audio_processing",
118      "../../modules/congestion_controller/goog_cc:test_goog_cc_printer",
119      "../../modules/rtp_rtcp",
120      "../../modules/rtp_rtcp:mock_rtp_rtcp",
121      "../../modules/rtp_rtcp:rtp_rtcp_format",
122      "../../modules/video_coding:video_codec_interface",
123      "../../modules/video_coding:video_coding_utility",
124      "../../modules/video_coding:webrtc_h264",
125      "../../modules/video_coding:webrtc_multiplex",
126      "../../modules/video_coding:webrtc_vp8",
127      "../../modules/video_coding:webrtc_vp9",
128      "../../modules/video_coding/svc:scalability_mode_util",
129      "../../rtc_base",
130      "../../rtc_base:checks",
131      "../../rtc_base:copy_on_write_buffer",
132      "../../rtc_base:refcount",
133      "../../rtc_base:rtc_base_tests_utils",
134      "../../rtc_base:rtc_event",
135      "../../rtc_base:rtc_numerics",
136      "../../rtc_base:rtc_stats_counters",
137      "../../rtc_base:safe_minmax",
138      "../../rtc_base:socket_address",
139      "../../rtc_base:task_queue_for_test",
140      "../../rtc_base:threading",
141      "../../rtc_base/synchronization:mutex",
142      "../../rtc_base/task_utils:repeating_task",
143      "../../system_wrappers",
144      "../../system_wrappers:field_trial",
145      "../../video/config:streams_config",
146      "../logging:log_writer",
147      "../network:emulated_network",
148      "../time_controller",
149    ]
150    absl_deps = [
151      "//third_party/abseil-cpp/absl/flags:flag",
152      "//third_party/abseil-cpp/absl/flags:parse",
153      "//third_party/abseil-cpp/absl/functional:any_invocable",
154      "//third_party/abseil-cpp/absl/memory",
155      "//third_party/abseil-cpp/absl/strings",
156      "//third_party/abseil-cpp/absl/types:optional",
157    ]
158    if (is_android) {
159      deps += [ "../../modules/video_coding:android_codec_factory_helper" ]
160    } else if (is_ios || is_mac) {
161      deps += [ "../../modules/video_coding:objc_codec_factory_helper" ]
162    }
163    if (rtc_enable_protobuf) {
164      deps += [ "../../modules/audio_coding:ana_config_proto" ]
165    }
166    data = scenario_resources
167    if (is_ios) {
168      deps += [ ":scenario_resources_bundle_data" ]
169    }
170  }
171  rtc_library("scenario_unittests") {
172    testonly = true
173    sources = [
174      "performance_stats_unittest.cc",
175      "probing_test.cc",
176      "scenario_unittest.cc",
177      "stats_collection_unittest.cc",
178      "video_stream_unittest.cc",
179    ]
180    deps = [
181      ":scenario",
182      "../../api/test/network_emulation",
183      "../../api/test/network_emulation:create_cross_traffic",
184      "../../logging:mocks",
185      "../../rtc_base:checks",
186      "../../system_wrappers",
187      "../../system_wrappers:field_trial",
188      "../../test:field_trial",
189      "../../test:test_support",
190      "../logging:log_writer",
191      "//testing/gmock",
192    ]
193    data = scenario_unittest_resources
194    if (is_ios) {
195      deps += [ ":scenario_unittest_resources_bundle_data" ]
196    }
197  }
198}
199