Home | History | Annotate | Download | only in cast
      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