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