15d76f85eed7560f754c7955c579f823467fb978
[platform/framework/web/crosswalk.git] / src / media / cast / BUILD.gn
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 }