blob: 06cba8e7640c16c97c9075c4acb0e6f0372893c1 [file] [log] [blame] [edit]
# Copyright 2014 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//testing/libfuzzer/fuzzer_test.gni")
import("//testing/test.gni")
import("//third_party/libaom/options.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_callbacks.h",
"cast_config.cc",
"cast_config.h",
"cast_environment.cc",
"cast_environment.h",
"common/encoded_frame.cc",
"common/encoded_frame.h",
"common/frame_id.h",
"common/openscreen_conversion_helpers.cc",
"common/openscreen_conversion_helpers.h",
"common/packet.h",
"common/rtp_time.h",
"common/sender_encoded_frame.cc",
"common/sender_encoded_frame.h",
"constants.h",
# NOTE: Logging code is pulled in by CastEnvironment.
"logging/log_event_dispatcher.cc",
"logging/log_event_dispatcher.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/receiver_time_offset_estimator.h",
"logging/receiver_time_offset_estimator_impl.cc",
"logging/receiver_time_offset_estimator_impl.h",
"logging/stats_event_subscriber.cc",
"logging/stats_event_subscriber.h",
]
configs += [
"//build/config/compiler:wexit_time_destructors",
"//build/config/compiler:wglobal_constructors",
]
deps = [
"//media",
"//media/mojo/mojom:remoting_common",
"//third_party/openscreen/src/platform:base",
]
public_deps = [
":logging_proto",
"//base",
"//net",
"//third_party/openscreen/src/cast/streaming:common",
"//third_party/openscreen/src/cast/streaming:sender",
"//third_party/openscreen/src/platform:api",
"//ui/gfx/geometry",
]
}
source_set("encoding") {
sources = [
"encoding/audio_encoder.cc",
"encoding/audio_encoder.h",
"encoding/encoding_support.cc",
"encoding/encoding_support.h",
"encoding/encoding_util.cc",
"encoding/encoding_util.h",
"encoding/external_video_encoder.cc",
"encoding/external_video_encoder.h",
"encoding/fake_software_video_encoder.cc",
"encoding/fake_software_video_encoder.h",
"encoding/media_video_encoder_wrapper.cc",
"encoding/media_video_encoder_wrapper.h",
"encoding/size_adaptable_video_encoder_base.cc",
"encoding/size_adaptable_video_encoder_base.h",
"encoding/software_video_encoder.h",
"encoding/video_encoder.cc",
"encoding/video_encoder.h",
"encoding/video_encoder_impl.cc",
"encoding/video_encoder_impl.h",
"encoding/vpx_encoder.cc",
"encoding/vpx_encoder.h",
"encoding/vpx_quantizer_parser.cc",
"encoding/vpx_quantizer_parser.h",
]
configs += [
"//build/config/compiler:wexit_time_destructors",
"//build/config/compiler:wglobal_constructors",
]
public_deps = [
"//base",
"//media",
"//third_party/libvpx",
"//ui/gfx/geometry",
]
deps = [
":common",
"//third_party/openscreen/src/cast/streaming:common",
"//third_party/opus",
]
# Necessary for AAC audio encoding.
if (is_apple) {
frameworks = [
"AudioToolbox.framework",
"CoreFoundation.framework",
"CoreMedia.framework",
]
}
if (enable_libaom) {
sources += [
"encoding/av1_encoder.cc",
"encoding/av1_encoder.h",
]
deps += [ "//third_party/libaom" ]
}
}
source_set("sender") {
sources = [
"sender/audio_sender.cc",
"sender/audio_sender.h",
"sender/frame_sender.cc",
"sender/frame_sender.h",
"sender/openscreen_frame_sender.cc",
"sender/openscreen_frame_sender.h",
"sender/performance_metrics_overlay.cc",
"sender/performance_metrics_overlay.h",
"sender/video_bitrate_suggester.cc",
"sender/video_bitrate_suggester.h",
"sender/video_sender.cc",
"sender/video_sender.h",
]
configs += [
"//build/config/compiler:wexit_time_destructors",
"//build/config/compiler:wglobal_constructors",
]
deps = [
":common",
":encoding",
"//base",
"//components/openscreen_platform",
"//media",
"//media/capture:capture_base",
"//third_party/libyuv",
"//third_party/openscreen/src/cast/streaming:sender",
"//third_party/openscreen/src/platform:api",
"//ui/gfx/geometry",
]
}
static_library("test_support") {
testonly = true
sources = [
"test/fake_openscreen_clock.cc",
"test/fake_openscreen_clock.h",
"test/fake_receiver_time_offset_estimator.cc",
"test/fake_receiver_time_offset_estimator.h",
"test/fake_video_encode_accelerator_factory.cc",
"test/fake_video_encode_accelerator_factory.h",
"test/mock_openscreen_environment.cc",
"test/mock_openscreen_environment.h",
"test/mock_video_encoder.cc",
"test/mock_video_encoder.h",
"test/openscreen_test_helpers.cc",
"test/openscreen_test_helpers.h",
"test/test_with_cast_environment.cc",
"test/test_with_cast_environment.h",
"test/utility/audio_utility.cc",
"test/utility/audio_utility.h",
"test/utility/default_config.cc",
"test/utility/default_config.h",
"test/utility/video_utility.cc",
"test/utility/video_utility.h",
]
deps = [
":common",
":encoding",
":sender",
"//base/test:test_support",
"//components/openscreen_platform",
"//media",
"//media:test_support",
"//testing/gmock",
"//testing/gtest",
"//third_party/libvpx",
"//third_party/libyuv",
"//third_party/openscreen/src/platform:api",
"//ui/gfx:test_support",
]
}
test("cast_unittests") {
sources = [
"common/openscreen_conversion_helpers_unittest.cc",
"encoding/audio_encoder_unittest.cc",
"encoding/encoding_support_unittest.cc",
"encoding/external_video_encoder_unittest.cc",
"encoding/media_video_encoder_wrapper_unittest.cc",
"encoding/size_adaptable_video_encoder_base_unittest.cc",
"encoding/video_encoder_unittest.cc",
"encoding/vpx_quantizer_parser_unittest.cc",
"logging/log_event_dispatcher_unittest.cc",
"logging/receiver_time_offset_estimator_impl_unittest.cc",
"logging/stats_event_subscriber_unittest.cc",
"sender/audio_sender_unittest.cc",
"sender/openscreen_frame_sender_unittest.cc",
"sender/video_bitrate_suggester_unittest.cc",
"sender/video_sender_unittest.cc",
]
deps = [
":common",
":encoding",
":sender",
":test_support",
"//base",
"//base/test:test_support",
"//components/openscreen_platform",
"//gpu:test_support",
"//media:test_support",
"//media/cast/openscreen:unit_tests",
"//media/test:run_all_unittests",
"//testing/gmock",
"//testing/gtest",
"//third_party/openscreen/src/cast/streaming:common",
"//third_party/openscreen/src/cast/streaming:sender",
]
if (is_android) {
deps += [
# The test needs the java dependencies to add the java classes for their
# native counterparts to the test apk.
"//media/base/android:media_java",
"//testing/android/native_test:native_test_native_code",
]
}
# TODO(crbug.com/40031409): Fix code that adds exit-time destructors and
# enable the diagnostic by removing this line.
configs += [ "//build/config/compiler:no_exit_time_destructors" ]
}
fuzzer_test("media_vpx_quantizer_parser_fuzzer") {
sources = [ "encoding/vpx_quantizer_parser_fuzzer.cc" ]
deps = [
":encoding",
"//components/openscreen_platform:openscreen_platform_using_net_sockets",
]
}