1 # Copyright 2014 The Chromium Authors. All rights reserved. 2 # Use of this source code is governed by a BSD-style license that can be 3 # found in the LICENSE file. 4 5 component("cast") { 6 deps = [ 7 ":sender", 8 ":receiver", 9 ] 10 } 11 12 # Common code shared by all cast components. 13 source_set("common") { 14 sources = [ 15 "cast_config.cc", 16 "cast_config.h", 17 "cast_defines.h", 18 "cast_environment.cc", 19 "cast_environment.h", 20 "common/clock_drift_smoother.cc", 21 "common/clock_drift_smoother.h", 22 "common/transport_encryption_handler.cc", 23 "common/transport_encryption_handler.h", 24 "logging/encoding_event_subscriber.cc", 25 "logging/encoding_event_subscriber.h", 26 "logging/log_deserializer.cc", 27 "logging/log_deserializer.h", 28 "logging/log_serializer.cc", 29 "logging/log_serializer.h", 30 "logging/logging_defines.cc", 31 "logging/logging_defines.h", 32 "logging/logging_impl.cc", 33 "logging/logging_impl.h", 34 "logging/logging_raw.cc", 35 "logging/logging_raw.h", 36 "logging/raw_event_subscriber.h", 37 "logging/raw_event_subscriber_bundle.cc", 38 "logging/raw_event_subscriber_bundle.h", 39 "logging/receiver_time_offset_estimator.h", 40 "logging/receiver_time_offset_estimator_impl.cc", 41 "logging/receiver_time_offset_estimator_impl.h", 42 "logging/simple_event_subscriber.cc", 43 "logging/simple_event_subscriber.h", 44 "logging/stats_event_subscriber.cc", 45 "logging/stats_event_subscriber.h", 46 ] 47 48 public_deps = [ 49 "//media/cast/logging/proto", 50 ] 51 deps = [ 52 "//base", 53 "//crypto", 54 "//net", 55 ] 56 } 57 58 source_set("net") { 59 sources = [ 60 "net/cast_transport_config.cc", 61 "net/cast_transport_config.h", 62 "net/cast_transport_defines.h", 63 "net/cast_transport_sender.h", 64 "net/cast_transport_sender_impl.cc", 65 "net/cast_transport_sender_impl.h", 66 "net/pacing/paced_sender.cc", 67 "net/pacing/paced_sender.h", 68 "net/rtcp/receiver_rtcp_event_subscriber.cc", 69 "net/rtcp/rtcp_defines.cc", 70 "net/rtcp/rtcp_defines.h", 71 "net/rtcp/rtcp.h", 72 "net/rtcp/rtcp.cc", 73 "net/rtcp/rtcp_builder.cc", 74 "net/rtcp/rtcp_builder.h", 75 "net/rtcp/rtcp_utility.cc", 76 "net/rtcp/rtcp_utility.h", 77 "net/rtp/packet_storage.cc", 78 "net/rtp/packet_storage.h", 79 "net/rtp/rtp_packetizer.cc", 80 "net/rtp/rtp_packetizer.h", 81 "net/rtp/rtp_sender.cc", 82 "net/rtp/rtp_sender.h", 83 "net/udp_transport.cc", 84 "net/udp_transport.h", 85 "net/rtp/cast_message_builder.cc", 86 "net/rtp/cast_message_builder.h", 87 "net/rtp/frame_buffer.cc", 88 "net/rtp/frame_buffer.h", 89 "net/rtp/framer.cc", 90 "net/rtp/framer.h", 91 "net/rtp/receiver_stats.cc", 92 "net/rtp/receiver_stats.h", 93 "net/rtp/rtp_parser.cc", 94 "net/rtp/rtp_parser.h", 95 "net/rtp/rtp_receiver_defines.cc", 96 "net/rtp/rtp_receiver_defines.h", 97 ] 98 99 deps = [ 100 ":common", 101 ] 102 } 103 104 source_set("sender") { 105 sources = [ 106 "cast_sender.h", 107 "cast_sender_impl.cc", 108 "cast_sender_impl.h", 109 "sender/audio_encoder.h", 110 "sender/audio_encoder.cc", 111 "sender/audio_sender.h", 112 "sender/audio_sender.cc", 113 "sender/congestion_control.h", 114 "sender/congestion_control.cc", 115 "sender/external_video_encoder.h", 116 "sender/external_video_encoder.cc", 117 "sender/fake_software_video_encoder.h", 118 "sender/fake_software_video_encoder.cc", 119 "sender/frame_sender.cc", 120 "sender/frame_sender.h", 121 "sender/software_video_encoder.h", 122 "sender/video_encoder.h", 123 "sender/video_encoder_impl.h", 124 "sender/video_encoder_impl.cc", 125 "sender/video_sender.h", 126 "sender/video_sender.cc", 127 "sender/vp8_encoder.cc", 128 "sender/vp8_encoder.h", 129 ] 130 131 deps = [ 132 ":common", 133 ":net", 134 "//media", 135 "//media:shared_memory_support", 136 "//third_party/libvpx", 137 "//third_party/opus", 138 ] 139 140 # use a restricted subset of media and no software codecs on iOS 141 if (is_ios) { 142 deps += [ "//media:media_for_cast_ios" ] 143 deps -= [ 144 "//media", 145 "//third_party/libvpx", 146 "//third_party/opus", 147 ] 148 sources -= [ 149 "sender/external_video_encoder.h", 150 "sender/external_video_encoder.cc", 151 "sender/video_encoder_impl.h", 152 "sender/video_encoder_impl.cc", 153 "sender/vp8_encoder.cc", 154 "sender/vp8_encoder.h", 155 ] 156 } 157 } 158 159 source_set("receiver") { 160 sources = [ 161 "cast_receiver.h", 162 "receiver/audio_decoder.cc", 163 "receiver/audio_decoder.h", 164 "receiver/cast_receiver_impl.cc", 165 "receiver/cast_receiver_impl.h", 166 "receiver/frame_receiver.cc", 167 "receiver/frame_receiver.h", 168 "receiver/video_decoder.cc", 169 "receiver/video_decoder.h", 170 ] 171 172 deps = [ 173 ":common", 174 ":net", 175 "//media", 176 "//media:shared_memory_support", 177 "//third_party/libvpx", 178 "//third_party/opus", 179 "//ui/gfx", 180 ] 181 182 # use a restricted subset of media and no software codecs on iOS 183 if (is_ios) { 184 deps += [ "//media:media_for_cast_ios" ] 185 deps -= [ 186 "//media", 187 "//third_party/libvpx", 188 "//third_party/opus", 189 ] 190 } 191 } 192 193 source_set("test_support") { 194 testonly = true 195 sources = [ 196 # TODO(hclam): FFmpeg. 197 # "test/fake_media_source.cc", 198 # "test/fake_media_source.h", 199 "test/fake_single_thread_task_runner.cc", 200 "test/fake_single_thread_task_runner.h", 201 "test/skewed_single_thread_task_runner.cc", 202 "test/skewed_single_thread_task_runner.h", 203 "test/skewed_tick_clock.cc", 204 "test/skewed_tick_clock.h", 205 "test/loopback_transport.cc", 206 "test/loopback_transport.h", 207 "test/utility/audio_utility.cc", 208 "test/utility/audio_utility.h", 209 "test/utility/barcode.cc", 210 "test/utility/barcode.h", 211 "test/utility/default_config.cc", 212 "test/utility/default_config.h", 213 "test/utility/in_process_receiver.cc", 214 "test/utility/in_process_receiver.h", 215 "test/utility/input_builder.cc", 216 "test/utility/input_builder.h", 217 "test/utility/net_utility.cc", 218 "test/utility/net_utility.h", 219 "test/utility/standalone_cast_environment.cc", 220 "test/utility/standalone_cast_environment.h", 221 "test/utility/video_utility.cc", 222 "test/utility/video_utility.h", 223 "test/utility/udp_proxy.cc", 224 "test/utility/udp_proxy.h", 225 ] 226 227 deps = [ 228 ":net", 229 ":receiver", 230 "//base/test:test_support", 231 "//testing/gtest", 232 # TODO(hclam): Does not build on ARM yet. 233 # "//third_party/ffmpeg", 234 "//third_party/libyuv", 235 "//third_party/mt19937ar", 236 "//ui/gfx", 237 "//ui/gfx/geometry", 238 ] 239 } 240 241 test("cast_unittests") { 242 sources = [ 243 "logging/encoding_event_subscriber_unittest.cc", 244 "logging/serialize_deserialize_test.cc", 245 "logging/logging_impl_unittest.cc", 246 "logging/logging_raw_unittest.cc", 247 "logging/receiver_time_offset_estimator_impl_unittest.cc", 248 "logging/simple_event_subscriber_unittest.cc", 249 "logging/stats_event_subscriber_unittest.cc", 250 "net/cast_transport_sender_impl_unittest.cc", 251 "net/pacing/mock_paced_packet_sender.cc", 252 "net/pacing/mock_paced_packet_sender.h", 253 "net/pacing/paced_sender_unittest.cc", 254 "net/rtcp/rtcp_builder_unittest.cc", 255 "net/rtcp/rtcp_unittest.cc", 256 "net/rtcp/rtcp_utility_unittest.cc", 257 "net/rtcp/receiver_rtcp_event_subscriber_unittest.cc", 258 # TODO(miu): The following two are test utility modules. Rename/move the files. 259 "net/rtcp/test_rtcp_packet_builder.cc", 260 "net/rtcp/test_rtcp_packet_builder.h", 261 "net/rtp/cast_message_builder_unittest.cc", 262 "net/rtp/frame_buffer_unittest.cc", 263 "net/rtp/framer_unittest.cc", 264 "net/rtp/mock_rtp_payload_feedback.cc", 265 "net/rtp/mock_rtp_payload_feedback.h", 266 "net/rtp/packet_storage_unittest.cc", 267 "net/rtp/receiver_stats_unittest.cc", 268 "net/rtp/rtp_header_parser.cc", 269 "net/rtp/rtp_header_parser.h", 270 "net/rtp/rtp_packet_builder.cc", 271 "net/rtp/rtp_parser_unittest.cc", 272 "net/rtp/rtp_packetizer_unittest.cc", 273 "net/rtp/rtp_receiver_defines.h", 274 "net/udp_transport_unittest.cc", 275 "receiver/audio_decoder_unittest.cc", 276 "receiver/frame_receiver_unittest.cc", 277 "receiver/video_decoder_unittest.cc", 278 "sender/audio_encoder_unittest.cc", 279 "sender/audio_sender_unittest.cc", 280 "sender/congestion_control_unittest.cc", 281 "sender/external_video_encoder_unittest.cc", 282 "sender/video_encoder_impl_unittest.cc", 283 "sender/video_sender_unittest.cc", 284 "test/end2end_unittest.cc", 285 "test/fake_receiver_time_offset_estimator.cc", 286 "test/fake_receiver_time_offset_estimator.h", 287 "test/fake_video_encode_accelerator.cc", 288 "test/fake_video_encode_accelerator.h", 289 "test/utility/audio_utility_unittest.cc", 290 "test/utility/barcode_unittest.cc", 291 ] 292 293 deps = [ 294 ":common", 295 ":receiver", 296 ":sender", 297 ":test_support", 298 "//base/test:run_all_unittests", 299 "//base/test:test_support", 300 "//testing/gmock", 301 "//testing/gtest", 302 ] 303 } 304 305 executable("generate_barcode_video") { 306 testonly = true 307 sources = [ 308 "test/utility/generate_barcode_video.cc", 309 ] 310 311 deps = [ 312 ":test_support", 313 "//base", 314 "//media", 315 ] 316 } 317 318 executable("generate_timecode_audio") { 319 testonly = true 320 sources = [ 321 "test/utility/generate_timecode_audio.cc", 322 ] 323 324 deps = [ 325 ":test_support", 326 "//base", 327 "//media", 328 ] 329 } 330 331 executable("udp_proxy") { 332 testonly = true 333 sources = [ 334 "test/utility/udp_proxy_main.cc", 335 ] 336 337 deps = [ 338 ":test_support", 339 "//base", 340 "//net", 341 ] 342 } 343