mirror of
https://github.com/mollyim/webrtc.git
synced 2025-05-12 21:30:45 +01:00

The purpose of this interface is to allow VideoEncoder to override the bandwidth allocation set by FecController in RtpVideoSender. This CL defines the interface and sends it down to VideoSender. Two upcoming CLs will: 1. Make LibvpxVp8Encoder pass it on to the (injectable) FrameBufferController, where it might be put to good use. 2. Modify RtpVideoSender to respond to the message sent to it via this API. TBR=kwiberg@webrtc.org Bug: webrtc:10769 Change-Id: I2ef82f0ddcde7fd078e32d8aabf6efe43e0f7f8a Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/143962 Commit-Queue: Elad Alon <eladalon@webrtc.org> Reviewed-by: Erik Språng <sprang@webrtc.org> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org> Cr-Commit-Position: refs/heads/master@{#28416}
949 lines
23 KiB
Text
949 lines
23 KiB
Text
# Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
|
|
#
|
|
# Use of this source code is governed by a BSD-style license
|
|
# that can be found in the LICENSE file in the root of the source
|
|
# tree. An additional intellectual property rights grant can be found
|
|
# in the file PATENTS. All contributing project authors may
|
|
# be found in the AUTHORS file in the root of the source tree.
|
|
|
|
import("//build/config/ui.gni")
|
|
import("../webrtc.gni")
|
|
if (is_android) {
|
|
import("//build/config/android/rules.gni")
|
|
}
|
|
|
|
group("test") {
|
|
testonly = true
|
|
|
|
deps = [
|
|
":copy_to_file_audio_capturer",
|
|
":rtp_test_utils",
|
|
":test_common",
|
|
":test_renderer",
|
|
":test_support",
|
|
":video_test_common",
|
|
"pc/e2e",
|
|
]
|
|
|
|
if (rtc_include_tests) {
|
|
deps += [
|
|
":test_main",
|
|
":test_support_unittests",
|
|
"scenario/scenario_tests",
|
|
]
|
|
}
|
|
}
|
|
|
|
rtc_source_set("video_test_common") {
|
|
visibility = [ "*" ]
|
|
testonly = true
|
|
sources = [
|
|
"fake_texture_frame.cc",
|
|
"fake_texture_frame.h",
|
|
"frame_generator.cc",
|
|
"frame_generator.h",
|
|
"frame_generator_capturer.cc",
|
|
"frame_generator_capturer.h",
|
|
"frame_utils.cc",
|
|
"frame_utils.h",
|
|
"test_video_capturer.cc",
|
|
"test_video_capturer.h",
|
|
"video_codec_settings.h",
|
|
]
|
|
|
|
deps = [
|
|
"../api:libjingle_peerconnection_api",
|
|
"../api:scoped_refptr",
|
|
"../api/task_queue",
|
|
"../api/video:video_frame",
|
|
"../api/video:video_frame_i010",
|
|
"../api/video:video_frame_i420",
|
|
"../api/video:video_rtp_headers",
|
|
"../api/video_codecs:video_codecs_api",
|
|
"../call:video_stream_api",
|
|
"../common_video",
|
|
"../media:rtc_media_base",
|
|
"../rtc_base",
|
|
"../rtc_base:checks",
|
|
"../rtc_base:rtc_task_queue",
|
|
"../rtc_base/task_utils:repeating_task",
|
|
"../system_wrappers",
|
|
"//third_party/abseil-cpp/absl/memory",
|
|
"//third_party/abseil-cpp/absl/types:optional",
|
|
]
|
|
}
|
|
|
|
if (!build_with_chromium) {
|
|
if (is_mac || is_ios) {
|
|
rtc_source_set("video_test_mac") {
|
|
testonly = true
|
|
sources = [
|
|
"mac_capturer.h",
|
|
"mac_capturer.mm",
|
|
]
|
|
deps = [
|
|
":video_test_common",
|
|
"../api:libjingle_peerconnection_api",
|
|
"../api:scoped_refptr",
|
|
"../modules/video_capture:video_capture_module",
|
|
"../rtc_base",
|
|
"../sdk:base_objc",
|
|
"../sdk:native_api",
|
|
"../sdk:native_video",
|
|
"../sdk:videocapture_objc",
|
|
]
|
|
}
|
|
}
|
|
|
|
rtc_source_set("platform_video_capturer") {
|
|
testonly = true
|
|
sources = [
|
|
"platform_video_capturer.cc",
|
|
"platform_video_capturer.h",
|
|
]
|
|
deps = [
|
|
":video_test_common",
|
|
"//third_party/abseil-cpp/absl/memory",
|
|
]
|
|
if (is_mac || is_ios) {
|
|
deps += [ ":video_test_mac" ]
|
|
} else {
|
|
sources += [
|
|
"vcm_capturer.cc",
|
|
"vcm_capturer.h",
|
|
]
|
|
deps += [
|
|
"../api:scoped_refptr",
|
|
"../modules/video_capture:video_capture_module",
|
|
"../rtc_base:checks",
|
|
"../rtc_base:logging",
|
|
]
|
|
}
|
|
}
|
|
}
|
|
|
|
rtc_source_set("rtp_test_utils") {
|
|
testonly = true
|
|
sources = [
|
|
"rtcp_packet_parser.cc",
|
|
"rtcp_packet_parser.h",
|
|
"rtp_file_reader.cc",
|
|
"rtp_file_reader.h",
|
|
"rtp_file_writer.cc",
|
|
"rtp_file_writer.h",
|
|
]
|
|
|
|
deps = [
|
|
"../api:array_view",
|
|
"../modules/rtp_rtcp",
|
|
"../modules/rtp_rtcp:rtp_rtcp_format",
|
|
"../rtc_base:checks",
|
|
"../rtc_base:rtc_base_approved",
|
|
"../rtc_base/system:arch",
|
|
"//testing/gtest",
|
|
]
|
|
}
|
|
|
|
rtc_source_set("field_trial") {
|
|
visibility = [ "*" ]
|
|
testonly = true
|
|
sources = [
|
|
"field_trial.cc",
|
|
"field_trial.h",
|
|
]
|
|
|
|
deps = [
|
|
"../system_wrappers:field_trial",
|
|
]
|
|
}
|
|
|
|
rtc_source_set("perf_test") {
|
|
visibility = [ "*" ]
|
|
sources = [
|
|
"testsupport/perf_test.cc",
|
|
"testsupport/perf_test.h",
|
|
]
|
|
deps = [
|
|
"../api:array_view",
|
|
"../rtc_base:checks",
|
|
"../rtc_base:rtc_base_approved",
|
|
]
|
|
}
|
|
|
|
if (is_ios) {
|
|
rtc_source_set("test_support_objc") {
|
|
testonly = true
|
|
visibility = [ ":test_support" ]
|
|
sources = [
|
|
"ios/coverage_util_ios.h",
|
|
"ios/coverage_util_ios.mm",
|
|
"ios/test_support.h",
|
|
"ios/test_support.mm",
|
|
]
|
|
deps = [
|
|
":perf_test",
|
|
"../sdk:helpers_objc",
|
|
]
|
|
configs += [ ":test_support_objc_config" ]
|
|
}
|
|
|
|
config("test_support_objc_config") {
|
|
defines = []
|
|
|
|
if (use_clang_coverage) {
|
|
defines += [ "WEBRTC_IOS_ENABLE_COVERAGE" ]
|
|
}
|
|
}
|
|
}
|
|
|
|
config("suppress_warning_4373") {
|
|
if (is_win) {
|
|
cflags = [
|
|
# MSVC has a bug which generates this warning when using mocks; see the
|
|
# section on warning 4373 in he googlemock FAQ. This warning isn't the
|
|
# least relevant for us, anyway.
|
|
"/wd4373",
|
|
]
|
|
}
|
|
}
|
|
|
|
config("test_main_direct_config") {
|
|
visibility = [ ":*" ]
|
|
defines = [ "UNIT_TEST" ]
|
|
}
|
|
rtc_source_set("test_support") {
|
|
visibility = [ "*" ]
|
|
testonly = true
|
|
|
|
all_dependent_configs = [
|
|
":suppress_warning_4373",
|
|
"//third_party/googletest:gmock_config",
|
|
"//third_party/googletest:gtest_config",
|
|
]
|
|
|
|
sources = [
|
|
"gmock.h",
|
|
"gtest.h",
|
|
]
|
|
|
|
public_deps = [] # no-presubmit-check TODO(webrtc:8603)
|
|
if (is_ios) {
|
|
public_deps += [ ":test_support_objc" ] # no-presubmit-check TODO(webrtc:8603)
|
|
}
|
|
|
|
public_configs = [ ":test_main_direct_config" ]
|
|
deps = [
|
|
"../rtc_base:rtc_base_approved",
|
|
"//testing/gmock",
|
|
"//testing/gtest",
|
|
]
|
|
}
|
|
|
|
if (rtc_include_tests) {
|
|
rtc_source_set("test_main_lib") {
|
|
visibility = [ "*" ]
|
|
testonly = true
|
|
sources = [
|
|
"test_main_lib.cc",
|
|
"test_main_lib.h",
|
|
]
|
|
|
|
deps = [
|
|
":field_trial",
|
|
":perf_test",
|
|
":test_support",
|
|
"../rtc_base",
|
|
"../rtc_base:checks",
|
|
"../system_wrappers:field_trial",
|
|
"../system_wrappers:metrics",
|
|
"//testing/gtest",
|
|
"//third_party/abseil-cpp/absl/memory",
|
|
|
|
# TODO(bugs.webrtc.org/9792): This is needed for downstream projects on
|
|
# Android, where it's replaced by an internal version of fileutils that
|
|
# has a certain flag. Remove this once the internal fileutils has been
|
|
# eliminated.
|
|
"../test:fileutils",
|
|
]
|
|
}
|
|
|
|
rtc_source_set("test_main") {
|
|
visibility = [ "*" ]
|
|
testonly = true
|
|
sources = [
|
|
"test_main.cc",
|
|
]
|
|
|
|
deps = [
|
|
":test_main_lib",
|
|
]
|
|
}
|
|
|
|
rtc_source_set("video_test_support") {
|
|
testonly = true
|
|
|
|
sources = [
|
|
"testsupport/frame_reader.h",
|
|
"testsupport/frame_writer.h",
|
|
"testsupport/mock/mock_frame_reader.h",
|
|
"testsupport/video_frame_writer.cc",
|
|
"testsupport/video_frame_writer.h",
|
|
"testsupport/y4m_frame_reader.cc",
|
|
"testsupport/y4m_frame_writer.cc",
|
|
"testsupport/yuv_frame_reader.cc",
|
|
"testsupport/yuv_frame_writer.cc",
|
|
]
|
|
|
|
deps = [
|
|
":fileutils",
|
|
":test_support",
|
|
":video_test_common",
|
|
"../api:scoped_refptr",
|
|
"../api/video:video_frame",
|
|
"../api/video:video_frame_i420",
|
|
"../api/video:video_rtp_headers",
|
|
"../common_video",
|
|
"../rtc_base:checks",
|
|
"../rtc_base:rtc_base_approved",
|
|
"../system_wrappers",
|
|
"//third_party/abseil-cpp/absl/memory",
|
|
"//third_party/libyuv",
|
|
]
|
|
|
|
if (!is_ios) {
|
|
deps += [ "//third_party:jpeg" ]
|
|
sources += [ "testsupport/jpeg_frame_writer.cc" ]
|
|
} else {
|
|
sources += [ "testsupport/jpeg_frame_writer_ios.cc" ]
|
|
}
|
|
|
|
if (is_android) {
|
|
deps += [ "//base" ]
|
|
}
|
|
}
|
|
|
|
rtc_source_set("test_support_test_artifacts") {
|
|
testonly = true
|
|
sources = [
|
|
"testsupport/test_artifacts.cc",
|
|
"testsupport/test_artifacts.h",
|
|
]
|
|
deps = [
|
|
":fileutils",
|
|
"../rtc_base:rtc_base_approved",
|
|
"../rtc_base/system:file_wrapper",
|
|
]
|
|
}
|
|
|
|
test_support_unittests_resources = [
|
|
"../resources/foreman_cif_short.yuv",
|
|
"../resources/video_coding/frame-ethernet-ii.pcap",
|
|
"../resources/video_coding/frame-loopback.pcap",
|
|
"../resources/video_coding/pltype103.rtp",
|
|
"../resources/video_coding/pltype103_header_only.rtp",
|
|
"../resources/video_coding/ssrcs-2.pcap",
|
|
"../resources/video_coding/ssrcs-3.pcap",
|
|
]
|
|
|
|
if (is_ios) {
|
|
bundle_data("test_support_unittests_bundle_data") {
|
|
testonly = true
|
|
sources = test_support_unittests_resources
|
|
outputs = [
|
|
"{{bundle_resources_dir}}/{{source_file_part}}",
|
|
]
|
|
}
|
|
}
|
|
|
|
rtc_test("test_support_unittests") {
|
|
deps = [
|
|
":call_config_utils",
|
|
":copy_to_file_audio_capturer_unittest",
|
|
":direct_transport",
|
|
":fake_video_codecs",
|
|
":fileutils",
|
|
":fileutils_unittests",
|
|
":perf_test",
|
|
":rtp_test_utils",
|
|
":test_common",
|
|
":test_main",
|
|
":test_support",
|
|
":test_support_test_artifacts",
|
|
":video_test_common",
|
|
":video_test_support",
|
|
"../api:create_simulcast_test_fixture_api",
|
|
"../api:scoped_refptr",
|
|
"../api:simulcast_test_fixture_api",
|
|
"../api/test/video:function_video_factory",
|
|
"../api/video:builtin_video_bitrate_allocator_factory",
|
|
"../api/video:video_frame",
|
|
"../api/video:video_frame_i420",
|
|
"../api/video:video_rtp_headers",
|
|
"../call:video_stream_api",
|
|
"../modules/rtp_rtcp",
|
|
"../modules/video_coding:simulcast_test_fixture_impl",
|
|
"../rtc_base:rtc_base_approved",
|
|
"../rtc_base/system:file_wrapper",
|
|
"../test:single_threaded_task_queue",
|
|
"pc/e2e:e2e_unittests",
|
|
"scenario:scenario_unittests",
|
|
"time_controller:time_controller_unittests",
|
|
"//testing/gmock",
|
|
"//testing/gtest",
|
|
"//third_party/abseil-cpp/absl/memory",
|
|
"//third_party/abseil-cpp/absl/strings",
|
|
]
|
|
sources = [
|
|
"call_config_utils_unittest.cc",
|
|
"direct_transport_unittest.cc",
|
|
"fake_vp8_encoder_unittest.cc",
|
|
"frame_generator_unittest.cc",
|
|
"rtp_file_reader_unittest.cc",
|
|
"rtp_file_writer_unittest.cc",
|
|
"single_threaded_task_queue_unittest.cc",
|
|
"testsupport/perf_test_unittest.cc",
|
|
"testsupport/test_artifacts_unittest.cc",
|
|
"testsupport/video_frame_writer_unittest.cc",
|
|
"testsupport/y4m_frame_reader_unittest.cc",
|
|
"testsupport/y4m_frame_writer_unittest.cc",
|
|
"testsupport/yuv_frame_reader_unittest.cc",
|
|
"testsupport/yuv_frame_writer_unittest.cc",
|
|
]
|
|
|
|
data = test_support_unittests_resources
|
|
if (is_android) {
|
|
deps += [ "//testing/android/native_test:native_test_support" ]
|
|
shard_timeout = 900
|
|
}
|
|
|
|
if (is_ios) {
|
|
deps += [ ":test_support_unittests_bundle_data" ]
|
|
}
|
|
|
|
if (!is_android && !build_with_chromium) {
|
|
# This is needed in order to avoid:
|
|
# undefined symbol: webrtc::videocapturemodule::VideoCaptureImpl::Create
|
|
deps += [ "../modules/video_capture:video_capture_internal_impl" ]
|
|
}
|
|
}
|
|
}
|
|
|
|
if (is_ios) {
|
|
rtc_source_set("fileutils_ios_objc") {
|
|
visibility = [
|
|
":fileutils",
|
|
":fileutils_override_impl",
|
|
]
|
|
sources = [
|
|
"testsupport/ios_file_utils.h",
|
|
"testsupport/ios_file_utils.mm",
|
|
]
|
|
deps = [
|
|
"../rtc_base:checks",
|
|
"../rtc_base:rtc_base_approved",
|
|
"../sdk:helpers_objc",
|
|
]
|
|
}
|
|
}
|
|
|
|
if (is_mac) {
|
|
rtc_source_set("fileutils_mac_objc") {
|
|
visibility = [
|
|
":fileutils",
|
|
":fileutils_override_impl",
|
|
]
|
|
sources = [
|
|
"testsupport/mac_file_utils.h",
|
|
"testsupport/mac_file_utils.mm",
|
|
]
|
|
deps = [
|
|
"../rtc_base:checks",
|
|
]
|
|
}
|
|
}
|
|
|
|
rtc_source_set("fileutils") {
|
|
testonly = true
|
|
visibility = [ "*" ]
|
|
sources = [
|
|
"testsupport/file_utils.cc",
|
|
"testsupport/file_utils.h",
|
|
]
|
|
deps = [
|
|
":fileutils_override_api",
|
|
":fileutils_override_impl",
|
|
"../rtc_base:checks",
|
|
"../rtc_base:rtc_base_approved",
|
|
"../rtc_base/system:arch",
|
|
"//third_party/abseil-cpp/absl/types:optional",
|
|
]
|
|
if (is_ios) {
|
|
deps += [ ":fileutils_ios_objc" ]
|
|
}
|
|
if (is_mac) {
|
|
deps += [ ":fileutils_mac_objc" ]
|
|
}
|
|
if (is_win) {
|
|
deps += [ "../rtc_base" ]
|
|
}
|
|
}
|
|
|
|
# We separate header into own target to make it possible for downstream
|
|
# projects to override implementation.
|
|
rtc_source_set("fileutils_override_api") {
|
|
testonly = true
|
|
sources = [
|
|
"testsupport/file_utils_override.h",
|
|
]
|
|
}
|
|
|
|
rtc_source_set("fileutils_override_impl") {
|
|
testonly = true
|
|
visibility = [ ":fileutils" ]
|
|
sources = [
|
|
"testsupport/file_utils_override.cc",
|
|
]
|
|
deps = [
|
|
":fileutils_override_api",
|
|
"../rtc_base:checks",
|
|
"../rtc_base:rtc_base_approved",
|
|
"../rtc_base/system:arch",
|
|
"//third_party/abseil-cpp/absl/types:optional",
|
|
]
|
|
if (is_ios) {
|
|
deps += [ ":fileutils_ios_objc" ]
|
|
}
|
|
if (is_mac) {
|
|
deps += [ ":fileutils_mac_objc" ]
|
|
}
|
|
if (is_win) {
|
|
deps += [ "../rtc_base" ]
|
|
}
|
|
}
|
|
|
|
rtc_source_set("run_test") {
|
|
testonly = true
|
|
if (is_mac) {
|
|
public_deps = [ # no-presubmit-check TODO(webrtc:8603)
|
|
":run_test_objc",
|
|
]
|
|
} else {
|
|
public_deps = [ # no-presubmit-check TODO(webrtc:8603)
|
|
":run_test_generic",
|
|
]
|
|
}
|
|
}
|
|
|
|
rtc_source_set("run_test_interface") {
|
|
sources = [
|
|
"run_test.h",
|
|
]
|
|
}
|
|
|
|
if (is_mac) {
|
|
rtc_source_set("run_test_objc") {
|
|
testonly = true
|
|
visibility = [ ":run_test" ]
|
|
sources = [
|
|
"mac/run_test.mm",
|
|
]
|
|
deps = [
|
|
":run_test_interface",
|
|
]
|
|
}
|
|
}
|
|
|
|
rtc_source_set("run_test_generic") {
|
|
testonly = true
|
|
visibility = [ ":run_test" ]
|
|
sources = [
|
|
"run_test.cc",
|
|
]
|
|
deps = [
|
|
":run_test_interface",
|
|
]
|
|
}
|
|
|
|
rtc_source_set("fileutils_unittests") {
|
|
testonly = true
|
|
visibility = [ ":*" ] # Only targets in this file can depend on this.
|
|
sources = [
|
|
"testsupport/file_utils_unittest.cc",
|
|
]
|
|
deps = [
|
|
":fileutils",
|
|
":test_support",
|
|
"../rtc_base:checks",
|
|
"../rtc_base:rtc_base_approved",
|
|
"//testing/gtest",
|
|
"//third_party/abseil-cpp/absl/types:optional",
|
|
]
|
|
}
|
|
|
|
rtc_source_set("direct_transport") {
|
|
visibility = [ "*" ]
|
|
testonly = true
|
|
sources = [
|
|
"direct_transport.cc",
|
|
"direct_transport.h",
|
|
]
|
|
deps = [
|
|
"../api:simulated_network_api",
|
|
"../api:transport_api",
|
|
"../call:call_interfaces",
|
|
"../call:simulated_packet_receiver",
|
|
"../modules/rtp_rtcp",
|
|
"../rtc_base:rtc_base_approved",
|
|
"../rtc_base/synchronization:sequence_checker",
|
|
"../system_wrappers",
|
|
"//third_party/abseil-cpp/absl/memory",
|
|
]
|
|
public_deps = [ # no-presubmit-check TODO(webrtc:8603)
|
|
":single_threaded_task_queue",
|
|
"../call:fake_network",
|
|
]
|
|
}
|
|
|
|
rtc_source_set("single_threaded_task_queue") {
|
|
testonly = true
|
|
sources = [
|
|
"single_threaded_task_queue.cc",
|
|
"single_threaded_task_queue.h",
|
|
]
|
|
deps = [
|
|
"../rtc_base:checks",
|
|
"../rtc_base:rtc_base_approved",
|
|
"//third_party/abseil-cpp/absl/memory",
|
|
]
|
|
}
|
|
|
|
rtc_source_set("fake_video_codecs") {
|
|
allow_poison = [ "software_video_codecs" ]
|
|
visibility = [ "*" ]
|
|
sources = [
|
|
"configurable_frame_size_encoder.cc",
|
|
"configurable_frame_size_encoder.h",
|
|
"fake_decoder.cc",
|
|
"fake_decoder.h",
|
|
"fake_encoder.cc",
|
|
"fake_encoder.h",
|
|
"fake_vp8_decoder.cc",
|
|
"fake_vp8_decoder.h",
|
|
"fake_vp8_encoder.cc",
|
|
"fake_vp8_encoder.h",
|
|
]
|
|
deps = [
|
|
"../api:fec_controller_api",
|
|
"../api:scoped_refptr",
|
|
"../api/task_queue",
|
|
"../api/video:encoded_image",
|
|
"../api/video:video_bitrate_allocation",
|
|
"../api/video:video_frame",
|
|
"../api/video:video_frame_i420",
|
|
"../api/video:video_rtp_headers",
|
|
"../api/video_codecs:video_codecs_api",
|
|
"../api/video_codecs:vp8_temporal_layers_factory",
|
|
"../common_video",
|
|
"../modules:module_api",
|
|
"../modules/video_coding:codec_globals_headers",
|
|
"../modules/video_coding:video_codec_interface",
|
|
"../modules/video_coding:video_coding_utility",
|
|
"../modules/video_coding:webrtc_vp8",
|
|
"../modules/video_coding:webrtc_vp9",
|
|
"../rtc_base:checks",
|
|
"../rtc_base:rtc_base_approved",
|
|
"../rtc_base:rtc_task_queue",
|
|
"../rtc_base/synchronization:sequence_checker",
|
|
"../system_wrappers",
|
|
"//third_party/abseil-cpp/absl/memory",
|
|
"//third_party/abseil-cpp/absl/types:optional",
|
|
]
|
|
}
|
|
|
|
rtc_source_set("null_transport") {
|
|
testonly = true
|
|
sources = [
|
|
"null_transport.cc",
|
|
"null_transport.h",
|
|
]
|
|
deps = [
|
|
"../api:transport_api",
|
|
]
|
|
}
|
|
|
|
rtc_source_set("encoder_settings") {
|
|
testonly = true
|
|
sources = [
|
|
"encoder_settings.cc",
|
|
"encoder_settings.h",
|
|
]
|
|
deps = [
|
|
"../api:scoped_refptr",
|
|
"../api/video_codecs:video_codecs_api",
|
|
"../call:rtp_interfaces",
|
|
"../call:video_stream_api",
|
|
"../rtc_base:checks",
|
|
"../rtc_base:refcount",
|
|
]
|
|
}
|
|
|
|
rtc_source_set("test_common") {
|
|
testonly = true
|
|
sources = [
|
|
"call_test.cc",
|
|
"call_test.h",
|
|
"drifting_clock.cc",
|
|
"drifting_clock.h",
|
|
"fake_videorenderer.h",
|
|
"layer_filtering_transport.cc",
|
|
"layer_filtering_transport.h",
|
|
"mock_transport.cc",
|
|
"mock_transport.h",
|
|
"rtp_rtcp_observer.h",
|
|
"video_decoder_proxy_factory.h",
|
|
"video_encoder_proxy_factory.h",
|
|
]
|
|
if (current_os != "winuwp") {
|
|
# The filtering of *_win.cc is not done for WinUWP (intentionally) as
|
|
# most _win.cc files are compatible with WinUWP. However, the
|
|
# peek/dispatch Win32 runloops are entirely WinUWP incompatible thus
|
|
# WinUWP uses the generic runloop as defined for non-Windows targets.
|
|
sources += [ "win/run_loop_win.cc" ]
|
|
}
|
|
if (!is_win || current_os == "winuwp") {
|
|
sources += [
|
|
"run_loop.cc",
|
|
"run_loop.h",
|
|
]
|
|
}
|
|
|
|
deps = [
|
|
":direct_transport",
|
|
":encoder_settings",
|
|
":fake_video_codecs",
|
|
":fileutils",
|
|
":rtp_test_utils",
|
|
":test_support",
|
|
":video_test_common",
|
|
"../api:libjingle_peerconnection_api",
|
|
"../api:rtp_headers",
|
|
"../api:scoped_refptr",
|
|
"../api:simulated_network_api",
|
|
"../api:transport_api",
|
|
"../api/audio_codecs:builtin_audio_decoder_factory",
|
|
"../api/audio_codecs:builtin_audio_encoder_factory",
|
|
"../api/task_queue",
|
|
"../api/task_queue:default_task_queue_factory",
|
|
"../api/test/video:function_video_factory",
|
|
"../api/video:builtin_video_bitrate_allocator_factory",
|
|
"../api/video:video_bitrate_allocator_factory",
|
|
"../api/video:video_frame",
|
|
"../api/video:video_rtp_headers",
|
|
"../api/video_codecs:video_codecs_api",
|
|
"../audio",
|
|
"../call",
|
|
"../call:call_interfaces",
|
|
"../call:fake_network",
|
|
"../call:rtp_sender",
|
|
"../call:simulated_network",
|
|
"../call:simulated_packet_receiver",
|
|
"../call:video_stream_api",
|
|
"../logging:rtc_event_log_api",
|
|
"../media:rtc_internal_video_codecs",
|
|
"../media:rtc_media_base",
|
|
"../modules/audio_device",
|
|
"../modules/audio_device:audio_device_impl",
|
|
"../modules/audio_device:mock_audio_device",
|
|
"../modules/audio_mixer:audio_mixer_impl",
|
|
"../modules/audio_processing",
|
|
"../modules/rtp_rtcp",
|
|
"../modules/rtp_rtcp:mock_rtp_rtcp",
|
|
"../modules/rtp_rtcp:rtp_rtcp_format",
|
|
"../modules/rtp_rtcp:rtp_video_header",
|
|
"../modules/video_coding:codec_globals_headers",
|
|
"../modules/video_coding:video_coding_utility",
|
|
"../modules/video_coding:webrtc_h264",
|
|
"../modules/video_coding:webrtc_multiplex",
|
|
"../modules/video_coding:webrtc_vp8",
|
|
"../modules/video_coding:webrtc_vp9",
|
|
"../rtc_base:checks",
|
|
"../rtc_base:rtc_base_approved",
|
|
"../rtc_base:rtc_numerics",
|
|
"../system_wrappers",
|
|
"../system_wrappers:field_trial",
|
|
"../video",
|
|
"//testing/gtest",
|
|
"//third_party/abseil-cpp/absl/memory",
|
|
"//third_party/abseil-cpp/absl/types:optional",
|
|
]
|
|
if (!is_android && !build_with_chromium) {
|
|
deps += [ "../modules/video_capture:video_capture_internal_impl" ]
|
|
}
|
|
}
|
|
|
|
rtc_source_set("test_renderer") {
|
|
public_deps = [ # no-presubmit-check TODO(webrtc:8603)
|
|
":test_renderer_generic",
|
|
]
|
|
testonly = true
|
|
if (is_mac) {
|
|
public_deps += [ ":test_renderer_objc" ] # no-presubmit-check TODO(webrtc:8603)
|
|
}
|
|
}
|
|
|
|
if (is_mac) {
|
|
rtc_source_set("test_renderer_objc") {
|
|
testonly = true
|
|
visibility = [ ":test_renderer" ]
|
|
sources = [
|
|
"mac/video_renderer_mac.h",
|
|
"mac/video_renderer_mac.mm",
|
|
]
|
|
deps = [
|
|
":test_renderer_generic",
|
|
"../rtc_base:rtc_base_approved",
|
|
]
|
|
libs = [
|
|
"Cocoa.framework",
|
|
"OpenGL.framework",
|
|
"CoreVideo.framework",
|
|
]
|
|
}
|
|
}
|
|
|
|
rtc_source_set("test_renderer_generic") {
|
|
testonly = true
|
|
visibility = [
|
|
":test_renderer",
|
|
":test_renderer_objc",
|
|
]
|
|
libs = []
|
|
sources = [
|
|
"video_renderer.cc",
|
|
"video_renderer.h",
|
|
"win/d3d_renderer.cc",
|
|
"win/d3d_renderer.h",
|
|
]
|
|
deps = [
|
|
":test_support",
|
|
"../api:scoped_refptr",
|
|
"../api/video:video_frame",
|
|
"../api/video:video_rtp_headers",
|
|
"../common_video",
|
|
"../media:rtc_media_base",
|
|
"../rtc_base:checks",
|
|
"../rtc_base:rtc_base_approved",
|
|
"//testing/gtest",
|
|
]
|
|
if (!(is_linux && rtc_use_x11) && !is_mac && !is_win) {
|
|
sources += [ "null_platform_renderer.cc" ]
|
|
}
|
|
if ((is_linux && rtc_use_x11) || is_mac) {
|
|
sources += [
|
|
"gl/gl_renderer.cc",
|
|
"gl/gl_renderer.h",
|
|
]
|
|
}
|
|
|
|
if (is_linux && rtc_use_x11) {
|
|
sources += [
|
|
"linux/glx_renderer.cc",
|
|
"linux/glx_renderer.h",
|
|
"linux/video_renderer_linux.cc",
|
|
]
|
|
libs += [
|
|
"Xext",
|
|
"X11",
|
|
"GL",
|
|
]
|
|
}
|
|
if (is_android) {
|
|
libs += [
|
|
"GLESv2",
|
|
"log",
|
|
]
|
|
}
|
|
}
|
|
|
|
rtc_source_set("audio_codec_mocks") {
|
|
testonly = true
|
|
sources = [
|
|
# TODO(nisse): Move these factories to their own target, to avoid
|
|
# unnecessary dependencies on gmock and gtest.
|
|
"audio_decoder_proxy_factory.h",
|
|
"function_audio_decoder_factory.h",
|
|
"mock_audio_decoder.cc",
|
|
"mock_audio_decoder.h",
|
|
"mock_audio_decoder_factory.h",
|
|
"mock_audio_encoder.cc",
|
|
"mock_audio_encoder.h",
|
|
"mock_audio_encoder_factory.h",
|
|
]
|
|
|
|
deps = [
|
|
":test_support",
|
|
"../api:array_view",
|
|
"../api:scoped_refptr",
|
|
"../api/audio_codecs:audio_codecs_api",
|
|
"../api/audio_codecs:builtin_audio_decoder_factory",
|
|
"../rtc_base:checks",
|
|
"../rtc_base:rtc_base_approved",
|
|
"//third_party/abseil-cpp/absl/memory",
|
|
]
|
|
}
|
|
|
|
rtc_source_set("copy_to_file_audio_capturer") {
|
|
testonly = true
|
|
sources = [
|
|
"testsupport/copy_to_file_audio_capturer.cc",
|
|
"testsupport/copy_to_file_audio_capturer.h",
|
|
]
|
|
deps = [
|
|
"../api:array_view",
|
|
"../common_audio",
|
|
"../modules/audio_device:audio_device_impl",
|
|
"../rtc_base:rtc_base_approved",
|
|
"//third_party/abseil-cpp/absl/memory",
|
|
"//third_party/abseil-cpp/absl/types:optional",
|
|
]
|
|
}
|
|
|
|
rtc_source_set("copy_to_file_audio_capturer_unittest") {
|
|
testonly = true
|
|
sources = [
|
|
"testsupport/copy_to_file_audio_capturer_unittest.cc",
|
|
]
|
|
deps = [
|
|
":copy_to_file_audio_capturer",
|
|
":fileutils",
|
|
":test_support",
|
|
"../modules/audio_device:audio_device_impl",
|
|
"//third_party/abseil-cpp/absl/memory",
|
|
]
|
|
}
|
|
|
|
if (!build_with_chromium && is_android) {
|
|
rtc_android_library("native_test_java") {
|
|
testonly = true
|
|
java_files = [
|
|
"android/org/webrtc/native_test/RTCNativeUnitTest.java",
|
|
"android/org/webrtc/native_test/RTCNativeUnitTestActivity.java",
|
|
]
|
|
deps = [
|
|
"../rtc_base:base_java",
|
|
"//testing/android/native_test:native_test_java",
|
|
]
|
|
}
|
|
}
|
|
|
|
rtc_source_set("call_config_utils") {
|
|
sources = [
|
|
"call_config_utils.cc",
|
|
"call_config_utils.h",
|
|
]
|
|
deps = [
|
|
"../call:call_interfaces",
|
|
"../call:video_stream_api",
|
|
"../rtc_base:rtc_json",
|
|
]
|
|
}
|