mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-11-24 22:36:09 +03:00
559 lines
14 KiB
Plaintext
559 lines
14 KiB
Plaintext
|
# Copyright 2014 The Chromium Authors. All rights reserved.
|
||
|
# Use of this source code is governed by a BSD-style license that can be
|
||
|
# found in the LICENSE file.
|
||
|
|
||
|
import("//build/config/android/config.gni")
|
||
|
import("//build/config/features.gni")
|
||
|
import("//build/config/ui.gni")
|
||
|
import("//testing/test.gni")
|
||
|
import("//third_party/protobuf/proto_library.gni")
|
||
|
|
||
|
proto_library("logging_proto") {
|
||
|
sources = [
|
||
|
"logging/proto/raw_events.proto",
|
||
|
]
|
||
|
}
|
||
|
|
||
|
# Common code shared by all cast components.
|
||
|
source_set("common") {
|
||
|
sources = [
|
||
|
"cast_config.cc",
|
||
|
"cast_config.h",
|
||
|
"cast_environment.cc",
|
||
|
"cast_environment.h",
|
||
|
"common/clock_drift_smoother.cc",
|
||
|
"common/clock_drift_smoother.h",
|
||
|
"common/expanded_value_base.h",
|
||
|
"common/frame_id.cc",
|
||
|
"common/frame_id.h",
|
||
|
"common/rtp_time.cc",
|
||
|
"common/rtp_time.h",
|
||
|
"common/transport_encryption_handler.cc",
|
||
|
"common/transport_encryption_handler.h",
|
||
|
"constants.h",
|
||
|
"logging/encoding_event_subscriber.cc",
|
||
|
"logging/encoding_event_subscriber.h",
|
||
|
"logging/log_deserializer.cc",
|
||
|
"logging/log_deserializer.h",
|
||
|
"logging/log_event_dispatcher.cc",
|
||
|
"logging/log_event_dispatcher.h",
|
||
|
"logging/log_serializer.cc",
|
||
|
"logging/log_serializer.h",
|
||
|
"logging/logging_defines.cc",
|
||
|
"logging/logging_defines.h",
|
||
|
"logging/proto/proto_utils.cc",
|
||
|
"logging/proto/proto_utils.h",
|
||
|
"logging/raw_event_subscriber.h",
|
||
|
"logging/raw_event_subscriber_bundle.cc",
|
||
|
"logging/raw_event_subscriber_bundle.h",
|
||
|
"logging/receiver_time_offset_estimator.h",
|
||
|
"logging/receiver_time_offset_estimator_impl.cc",
|
||
|
"logging/receiver_time_offset_estimator_impl.h",
|
||
|
"logging/simple_event_subscriber.cc",
|
||
|
"logging/simple_event_subscriber.h",
|
||
|
"logging/stats_event_subscriber.cc",
|
||
|
"logging/stats_event_subscriber.h",
|
||
|
]
|
||
|
|
||
|
deps = [
|
||
|
":logging_proto",
|
||
|
"//base",
|
||
|
"//crypto",
|
||
|
"//net",
|
||
|
"//third_party/zlib",
|
||
|
]
|
||
|
|
||
|
public_deps = [
|
||
|
# The generated headers reference headers within protobuf_lite, so
|
||
|
# dependencies must be able to find those headers too.
|
||
|
":logging_proto",
|
||
|
]
|
||
|
}
|
||
|
|
||
|
source_set("net") {
|
||
|
sources = [
|
||
|
"net/cast_transport.h",
|
||
|
"net/cast_transport_config.cc",
|
||
|
"net/cast_transport_config.h",
|
||
|
"net/cast_transport_defines.h",
|
||
|
"net/cast_transport_impl.cc",
|
||
|
"net/cast_transport_impl.h",
|
||
|
"net/pacing/paced_sender.cc",
|
||
|
"net/pacing/paced_sender.h",
|
||
|
"net/rtcp/receiver_rtcp_event_subscriber.cc",
|
||
|
"net/rtcp/receiver_rtcp_event_subscriber.h",
|
||
|
"net/rtcp/receiver_rtcp_session.cc",
|
||
|
"net/rtcp/receiver_rtcp_session.h",
|
||
|
"net/rtcp/rtcp_builder.cc",
|
||
|
"net/rtcp/rtcp_builder.h",
|
||
|
"net/rtcp/rtcp_defines.cc",
|
||
|
"net/rtcp/rtcp_defines.h",
|
||
|
"net/rtcp/rtcp_utility.cc",
|
||
|
"net/rtcp/rtcp_utility.h",
|
||
|
"net/rtcp/sender_rtcp_session.cc",
|
||
|
"net/rtcp/sender_rtcp_session.h",
|
||
|
"net/rtp/packet_storage.cc",
|
||
|
"net/rtp/packet_storage.h",
|
||
|
"net/rtp/rtp_defines.cc",
|
||
|
"net/rtp/rtp_defines.h",
|
||
|
"net/rtp/rtp_packetizer.cc",
|
||
|
"net/rtp/rtp_packetizer.h",
|
||
|
"net/rtp/rtp_parser.cc",
|
||
|
"net/rtp/rtp_parser.h",
|
||
|
"net/rtp/rtp_sender.cc",
|
||
|
"net/rtp/rtp_sender.h",
|
||
|
"net/udp_packet_pipe.cc",
|
||
|
"net/udp_packet_pipe.h",
|
||
|
"net/udp_transport_impl.cc",
|
||
|
"net/udp_transport_impl.h",
|
||
|
"net/udp_transport_interface.h",
|
||
|
]
|
||
|
|
||
|
deps = [
|
||
|
":common",
|
||
|
"//base",
|
||
|
"//media/mojo/common",
|
||
|
"//mojo/public/cpp/system",
|
||
|
"//net",
|
||
|
]
|
||
|
|
||
|
public_deps = [
|
||
|
":common",
|
||
|
]
|
||
|
}
|
||
|
|
||
|
source_set("sender") {
|
||
|
sources = [
|
||
|
"cast_sender.h",
|
||
|
"cast_sender_impl.cc",
|
||
|
"cast_sender_impl.h",
|
||
|
"sender/audio_encoder.cc",
|
||
|
"sender/audio_encoder.h",
|
||
|
"sender/audio_sender.cc",
|
||
|
"sender/audio_sender.h",
|
||
|
"sender/congestion_control.cc",
|
||
|
"sender/congestion_control.h",
|
||
|
"sender/external_video_encoder.cc",
|
||
|
"sender/external_video_encoder.h",
|
||
|
"sender/fake_software_video_encoder.cc",
|
||
|
"sender/fake_software_video_encoder.h",
|
||
|
"sender/frame_sender.cc",
|
||
|
"sender/frame_sender.h",
|
||
|
"sender/performance_metrics_overlay.cc",
|
||
|
"sender/performance_metrics_overlay.h",
|
||
|
"sender/sender_encoded_frame.cc",
|
||
|
"sender/sender_encoded_frame.h",
|
||
|
"sender/size_adaptable_video_encoder_base.cc",
|
||
|
"sender/size_adaptable_video_encoder_base.h",
|
||
|
"sender/software_video_encoder.h",
|
||
|
"sender/video_encoder.cc",
|
||
|
"sender/video_encoder.h",
|
||
|
"sender/video_encoder_impl.cc",
|
||
|
"sender/video_encoder_impl.h",
|
||
|
"sender/video_frame_factory.h",
|
||
|
"sender/video_sender.cc",
|
||
|
"sender/video_sender.h",
|
||
|
"sender/vp8_encoder.cc",
|
||
|
"sender/vp8_encoder.h",
|
||
|
"sender/vp8_quantizer_parser.cc",
|
||
|
"sender/vp8_quantizer_parser.h",
|
||
|
]
|
||
|
|
||
|
deps = [
|
||
|
":common",
|
||
|
":net",
|
||
|
"//base",
|
||
|
"//media",
|
||
|
"//third_party/libvpx",
|
||
|
"//third_party/opus",
|
||
|
"//ui/gfx/geometry",
|
||
|
]
|
||
|
|
||
|
libs = []
|
||
|
|
||
|
# iOS and OS X encoders
|
||
|
if (is_ios || is_mac) {
|
||
|
sources += [
|
||
|
"sender/h264_vt_encoder.cc",
|
||
|
"sender/h264_vt_encoder.h",
|
||
|
]
|
||
|
|
||
|
libs += [
|
||
|
"AudioToolbox.framework",
|
||
|
"CoreMedia.framework",
|
||
|
"CoreVideo.framework",
|
||
|
"VideoToolbox.framework",
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
|
||
|
source_set("receiver") {
|
||
|
sources = [
|
||
|
"cast_receiver.h",
|
||
|
"net/rtp/cast_message_builder.cc",
|
||
|
"net/rtp/cast_message_builder.h",
|
||
|
"net/rtp/frame_buffer.cc",
|
||
|
"net/rtp/frame_buffer.h",
|
||
|
"net/rtp/framer.cc",
|
||
|
"net/rtp/framer.h",
|
||
|
"net/rtp/receiver_stats.cc",
|
||
|
"net/rtp/receiver_stats.h",
|
||
|
"receiver/audio_decoder.cc",
|
||
|
"receiver/audio_decoder.h",
|
||
|
"receiver/cast_receiver_impl.cc",
|
||
|
"receiver/cast_receiver_impl.h",
|
||
|
"receiver/frame_receiver.cc",
|
||
|
"receiver/frame_receiver.h",
|
||
|
"receiver/video_decoder.cc",
|
||
|
"receiver/video_decoder.h",
|
||
|
]
|
||
|
|
||
|
deps = [
|
||
|
":common",
|
||
|
":net",
|
||
|
"//base",
|
||
|
"//media",
|
||
|
"//third_party/libvpx",
|
||
|
"//third_party/libyuv",
|
||
|
"//third_party/opus",
|
||
|
"//ui/gfx/geometry",
|
||
|
]
|
||
|
}
|
||
|
|
||
|
static_library("test_support") {
|
||
|
testonly = true
|
||
|
sources = [
|
||
|
"test/fake_receiver_time_offset_estimator.cc",
|
||
|
"test/fake_receiver_time_offset_estimator.h",
|
||
|
"test/loopback_transport.cc",
|
||
|
"test/loopback_transport.h",
|
||
|
"test/mock_cast_transport.cc",
|
||
|
"test/mock_cast_transport.h",
|
||
|
"test/skewed_single_thread_task_runner.cc",
|
||
|
"test/skewed_single_thread_task_runner.h",
|
||
|
"test/skewed_tick_clock.cc",
|
||
|
"test/skewed_tick_clock.h",
|
||
|
"test/utility/audio_utility.cc",
|
||
|
"test/utility/audio_utility.h",
|
||
|
"test/utility/barcode.cc",
|
||
|
"test/utility/barcode.h",
|
||
|
"test/utility/default_config.cc",
|
||
|
"test/utility/default_config.h",
|
||
|
"test/utility/in_process_receiver.cc",
|
||
|
"test/utility/in_process_receiver.h",
|
||
|
"test/utility/input_builder.cc",
|
||
|
"test/utility/input_builder.h",
|
||
|
"test/utility/net_utility.cc",
|
||
|
"test/utility/net_utility.h",
|
||
|
"test/utility/standalone_cast_environment.cc",
|
||
|
"test/utility/standalone_cast_environment.h",
|
||
|
"test/utility/test_util.cc",
|
||
|
"test/utility/test_util.h",
|
||
|
"test/utility/udp_proxy.cc",
|
||
|
"test/utility/udp_proxy.h",
|
||
|
"test/utility/video_utility.cc",
|
||
|
"test/utility/video_utility.h",
|
||
|
]
|
||
|
|
||
|
deps = [
|
||
|
":net",
|
||
|
":receiver",
|
||
|
":sender",
|
||
|
"//base/test:test_support",
|
||
|
"//media",
|
||
|
"//net",
|
||
|
"//testing/gmock",
|
||
|
"//testing/gtest",
|
||
|
"//third_party/libyuv",
|
||
|
"//ui/gfx:test_support",
|
||
|
]
|
||
|
|
||
|
# FFMPEG software video decoders are not available on Android and/or
|
||
|
# Chromecast content_shell builds.
|
||
|
#
|
||
|
# TODO(miu): There *are* hardware decoder APIs available via FFMPEG, and we
|
||
|
# should use those for the Android receiver. See media's BUILD.gn for usage
|
||
|
# details. http://crbug.com/558714
|
||
|
if (!is_android && !is_chromecast) {
|
||
|
sources += [
|
||
|
"test/fake_media_source.cc",
|
||
|
"test/fake_media_source.h",
|
||
|
]
|
||
|
deps += [ "//third_party/ffmpeg" ]
|
||
|
}
|
||
|
}
|
||
|
|
||
|
test("cast_unittests") {
|
||
|
sources = [
|
||
|
"common/expanded_value_base_unittest.cc",
|
||
|
"common/rtp_time_unittest.cc",
|
||
|
"logging/encoding_event_subscriber_unittest.cc",
|
||
|
"logging/receiver_time_offset_estimator_impl_unittest.cc",
|
||
|
"logging/serialize_deserialize_test.cc",
|
||
|
"logging/simple_event_subscriber_unittest.cc",
|
||
|
"logging/stats_event_subscriber_unittest.cc",
|
||
|
"net/cast_transport_impl_unittest.cc",
|
||
|
"net/pacing/mock_paced_packet_sender.cc",
|
||
|
"net/pacing/mock_paced_packet_sender.h",
|
||
|
"net/pacing/paced_sender_unittest.cc",
|
||
|
"net/rtcp/receiver_rtcp_event_subscriber_unittest.cc",
|
||
|
"net/rtcp/rtcp_builder_unittest.cc",
|
||
|
"net/rtcp/rtcp_unittest.cc",
|
||
|
"net/rtcp/rtcp_utility_unittest.cc",
|
||
|
|
||
|
# TODO(miu): The following two are test utility modules. Rename/move the
|
||
|
# files.
|
||
|
"net/rtcp/test_rtcp_packet_builder.cc",
|
||
|
"net/rtcp/test_rtcp_packet_builder.h",
|
||
|
"net/rtp/cast_message_builder_unittest.cc",
|
||
|
"net/rtp/frame_buffer_unittest.cc",
|
||
|
"net/rtp/framer_unittest.cc",
|
||
|
"net/rtp/mock_rtp_payload_feedback.cc",
|
||
|
"net/rtp/mock_rtp_payload_feedback.h",
|
||
|
"net/rtp/packet_storage_unittest.cc",
|
||
|
"net/rtp/receiver_stats_unittest.cc",
|
||
|
"net/rtp/rtp_packet_builder.cc",
|
||
|
"net/rtp/rtp_packet_builder.h",
|
||
|
"net/rtp/rtp_packetizer_unittest.cc",
|
||
|
"net/rtp/rtp_parser_unittest.cc",
|
||
|
"net/udp_packet_pipe_unittest.cc",
|
||
|
"net/udp_transport_unittest.cc",
|
||
|
"receiver/audio_decoder_unittest.cc",
|
||
|
"receiver/frame_receiver_unittest.cc",
|
||
|
"receiver/video_decoder_unittest.cc",
|
||
|
"sender/audio_encoder_unittest.cc",
|
||
|
"sender/audio_sender_unittest.cc",
|
||
|
"sender/congestion_control_unittest.cc",
|
||
|
"sender/external_video_encoder_unittest.cc",
|
||
|
"sender/fake_video_encode_accelerator_factory.cc",
|
||
|
"sender/fake_video_encode_accelerator_factory.h",
|
||
|
"sender/video_encoder_unittest.cc",
|
||
|
"sender/video_sender_unittest.cc",
|
||
|
"sender/vp8_quantizer_parser_unittest.cc",
|
||
|
"test/end2end_unittest.cc",
|
||
|
"test/utility/audio_utility_unittest.cc",
|
||
|
"test/utility/barcode_unittest.cc",
|
||
|
]
|
||
|
|
||
|
deps = [
|
||
|
":common",
|
||
|
":net",
|
||
|
":receiver",
|
||
|
":sender",
|
||
|
":test_support",
|
||
|
"//base",
|
||
|
"//base:cfi_buildflags",
|
||
|
"//base/test:test_support",
|
||
|
"//media:test_support",
|
||
|
"//media/test:run_all_unittests",
|
||
|
"//mojo/public/cpp/bindings",
|
||
|
"//net",
|
||
|
"//testing/gmock",
|
||
|
"//testing/gtest",
|
||
|
"//third_party/opus",
|
||
|
]
|
||
|
|
||
|
if (is_android) {
|
||
|
deps += [ "//testing/android/native_test:native_test_native_code" ]
|
||
|
}
|
||
|
|
||
|
if (is_ios || is_mac) {
|
||
|
sources += [ "sender/h264_vt_encoder_unittest.cc" ]
|
||
|
|
||
|
deps += [ "//third_party/ffmpeg" ]
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (is_win || is_mac || (is_linux && !is_chromeos)) {
|
||
|
# This is a target for the collection of cast development tools. They are
|
||
|
# not built/linked into the Chromium browser.
|
||
|
group("testing_tools") {
|
||
|
testonly = true
|
||
|
deps = [
|
||
|
":cast_benchmarks",
|
||
|
":cast_receiver_app",
|
||
|
":cast_sender_app",
|
||
|
":cast_simulator",
|
||
|
":generate_barcode_video",
|
||
|
":generate_timecode_audio",
|
||
|
":udp_proxy",
|
||
|
]
|
||
|
}
|
||
|
|
||
|
test("cast_benchmarks") {
|
||
|
testonly = true
|
||
|
sources = [
|
||
|
"test/cast_benchmarks.cc",
|
||
|
]
|
||
|
deps = [
|
||
|
":common",
|
||
|
":net",
|
||
|
":receiver",
|
||
|
":sender",
|
||
|
":test_support",
|
||
|
"//base",
|
||
|
"//base/test:test_support",
|
||
|
"//media:test_support",
|
||
|
"//net",
|
||
|
"//testing/gtest",
|
||
|
"//ui/gfx/geometry",
|
||
|
]
|
||
|
}
|
||
|
|
||
|
executable("cast_receiver_app") {
|
||
|
testonly = true
|
||
|
sources = [
|
||
|
"test/receiver.cc",
|
||
|
]
|
||
|
deps = [
|
||
|
":common",
|
||
|
":net",
|
||
|
":receiver",
|
||
|
":test_support",
|
||
|
"//base",
|
||
|
"//build/config:exe_and_shlib_deps",
|
||
|
"//build/win:default_exe_manifest",
|
||
|
"//media:test_support",
|
||
|
"//net",
|
||
|
"//ui/gfx/geometry",
|
||
|
]
|
||
|
|
||
|
if (use_x11) {
|
||
|
sources += [
|
||
|
"test/linux_output_window.cc",
|
||
|
"test/linux_output_window.h",
|
||
|
]
|
||
|
configs += [
|
||
|
"//build/config/linux:x11",
|
||
|
"//build/config/linux:xext",
|
||
|
]
|
||
|
deps += [ "//third_party/libyuv" ]
|
||
|
}
|
||
|
}
|
||
|
|
||
|
executable("cast_sender_app") {
|
||
|
testonly = true
|
||
|
sources = [
|
||
|
"test/sender.cc",
|
||
|
]
|
||
|
deps = [
|
||
|
":common",
|
||
|
":net",
|
||
|
":sender",
|
||
|
":test_support",
|
||
|
"//base",
|
||
|
"//build/config:exe_and_shlib_deps",
|
||
|
"//build/win:default_exe_manifest",
|
||
|
"//media",
|
||
|
]
|
||
|
}
|
||
|
|
||
|
proto_library("network_simulation_model_proto") {
|
||
|
visibility = [ ":cast_simulator" ]
|
||
|
sources = [
|
||
|
"test/proto/network_simulation_model.proto",
|
||
|
]
|
||
|
}
|
||
|
|
||
|
executable("cast_simulator") {
|
||
|
testonly = true
|
||
|
sources = [
|
||
|
"test/simulator.cc",
|
||
|
]
|
||
|
deps = [
|
||
|
":common",
|
||
|
":net",
|
||
|
":network_simulation_model_proto",
|
||
|
":receiver",
|
||
|
":sender",
|
||
|
":test_support",
|
||
|
"//base",
|
||
|
"//base/test:test_support",
|
||
|
"//build/config:exe_and_shlib_deps",
|
||
|
"//build/win:default_exe_manifest",
|
||
|
"//media:test_support",
|
||
|
]
|
||
|
}
|
||
|
|
||
|
executable("generate_barcode_video") {
|
||
|
testonly = true
|
||
|
sources = [
|
||
|
"test/utility/generate_barcode_video.cc",
|
||
|
]
|
||
|
deps = [
|
||
|
":test_support",
|
||
|
"//base",
|
||
|
"//build/config:exe_and_shlib_deps",
|
||
|
"//build/win:default_exe_manifest",
|
||
|
"//media",
|
||
|
]
|
||
|
}
|
||
|
|
||
|
executable("generate_timecode_audio") {
|
||
|
testonly = true
|
||
|
sources = [
|
||
|
"test/utility/generate_timecode_audio.cc",
|
||
|
]
|
||
|
deps = [
|
||
|
":test_support",
|
||
|
"//base",
|
||
|
"//build/config:exe_and_shlib_deps",
|
||
|
"//build/win:default_exe_manifest",
|
||
|
"//media",
|
||
|
]
|
||
|
}
|
||
|
|
||
|
executable("udp_proxy") {
|
||
|
testonly = true
|
||
|
sources = [
|
||
|
"test/utility/udp_proxy_main.cc",
|
||
|
]
|
||
|
deps = [
|
||
|
":test_support",
|
||
|
"//base",
|
||
|
"//build/config:exe_and_shlib_deps",
|
||
|
"//build/win:default_exe_manifest",
|
||
|
"//net",
|
||
|
]
|
||
|
}
|
||
|
} else { # !(is_win || is_mac || (is_linux && !is_chromeos))
|
||
|
# The testing tools are only built for the desktop platforms.
|
||
|
group("testing_tools") {
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (is_linux && !is_chromeos) {
|
||
|
test("tap_proxy") {
|
||
|
sources = [
|
||
|
"test/utility/tap_proxy.cc",
|
||
|
]
|
||
|
|
||
|
deps = [
|
||
|
":test_support",
|
||
|
"//base",
|
||
|
"//media",
|
||
|
"//net",
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
|
||
|
# Projects external to Chromium can build cast_sender and/or cast_receiver to
|
||
|
# produce libraries to link with their applications. Chromium targets should
|
||
|
# not reference these.
|
||
|
|
||
|
static_library("cast_sender") {
|
||
|
complete_static_lib = true
|
||
|
configs -= [ "//build/config/compiler:thin_archive" ]
|
||
|
deps = [
|
||
|
":sender",
|
||
|
]
|
||
|
}
|
||
|
|
||
|
static_library("cast_receiver") {
|
||
|
complete_static_lib = true
|
||
|
configs -= [ "//build/config/compiler:thin_archive" ]
|
||
|
deps = [
|
||
|
":receiver",
|
||
|
]
|
||
|
}
|