• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
5component("cast") {
6  deps = [
7    ":sender",
8    ":receiver",
9  ]
10}
11
12# Common code shared by all cast components.
13source_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
58source_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
104source_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
159source_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
193source_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
241test("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
305executable("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
318executable("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
331executable("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