blob: 5d754d9974b7ce3a1116090518be36dd7366c1da [file] [log] [blame]
# 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("../../webrtc.gni")
rtc_static_library("rtp_rtcp") {
sources = [
"include/flexfec_receiver.h",
"include/flexfec_sender.h",
"include/receive_statistics.h",
"include/remote_ntp_time_estimator.h",
"include/rtp_header_parser.h",
"include/rtp_payload_registry.h",
"include/rtp_receiver.h",
"include/rtp_rtcp.h",
"include/rtp_rtcp_defines.h",
"include/ulpfec_receiver.h",
"source/byte_io.h",
"source/dtmf_queue.cc",
"source/dtmf_queue.h",
"source/fec_private_tables_bursty.h",
"source/fec_private_tables_random.h",
"source/flexfec_header_reader_writer.cc",
"source/flexfec_header_reader_writer.h",
"source/flexfec_receiver.cc",
"source/flexfec_sender.cc",
"source/forward_error_correction.cc",
"source/forward_error_correction.h",
"source/forward_error_correction_internal.cc",
"source/forward_error_correction_internal.h",
"source/packet_loss_stats.cc",
"source/packet_loss_stats.h",
"source/playout_delay_oracle.cc",
"source/playout_delay_oracle.h",
"source/receive_statistics_impl.cc",
"source/receive_statistics_impl.h",
"source/remote_ntp_time_estimator.cc",
"source/rtcp_nack_stats.cc",
"source/rtcp_nack_stats.h",
"source/rtcp_packet.cc",
"source/rtcp_packet.h",
"source/rtcp_packet/app.cc",
"source/rtcp_packet/app.h",
"source/rtcp_packet/bye.cc",
"source/rtcp_packet/bye.h",
"source/rtcp_packet/common_header.cc",
"source/rtcp_packet/common_header.h",
"source/rtcp_packet/compound_packet.cc",
"source/rtcp_packet/compound_packet.h",
"source/rtcp_packet/dlrr.cc",
"source/rtcp_packet/dlrr.h",
"source/rtcp_packet/extended_jitter_report.cc",
"source/rtcp_packet/extended_jitter_report.h",
"source/rtcp_packet/extended_reports.cc",
"source/rtcp_packet/extended_reports.h",
"source/rtcp_packet/fir.cc",
"source/rtcp_packet/fir.h",
"source/rtcp_packet/nack.cc",
"source/rtcp_packet/nack.h",
"source/rtcp_packet/pli.cc",
"source/rtcp_packet/pli.h",
"source/rtcp_packet/psfb.cc",
"source/rtcp_packet/psfb.h",
"source/rtcp_packet/rapid_resync_request.cc",
"source/rtcp_packet/rapid_resync_request.h",
"source/rtcp_packet/receiver_report.cc",
"source/rtcp_packet/receiver_report.h",
"source/rtcp_packet/remb.cc",
"source/rtcp_packet/remb.h",
"source/rtcp_packet/report_block.cc",
"source/rtcp_packet/report_block.h",
"source/rtcp_packet/rrtr.cc",
"source/rtcp_packet/rrtr.h",
"source/rtcp_packet/rtpfb.cc",
"source/rtcp_packet/rtpfb.h",
"source/rtcp_packet/sdes.cc",
"source/rtcp_packet/sdes.h",
"source/rtcp_packet/sender_report.cc",
"source/rtcp_packet/sender_report.h",
"source/rtcp_packet/target_bitrate.cc",
"source/rtcp_packet/target_bitrate.h",
"source/rtcp_packet/tmmb_item.cc",
"source/rtcp_packet/tmmb_item.h",
"source/rtcp_packet/tmmbn.cc",
"source/rtcp_packet/tmmbn.h",
"source/rtcp_packet/tmmbr.cc",
"source/rtcp_packet/tmmbr.h",
"source/rtcp_packet/transport_feedback.cc",
"source/rtcp_packet/transport_feedback.h",
"source/rtcp_packet/voip_metric.cc",
"source/rtcp_packet/voip_metric.h",
"source/rtcp_receiver.cc",
"source/rtcp_receiver.h",
"source/rtcp_sender.cc",
"source/rtcp_sender.h",
"source/rtp_format.cc",
"source/rtp_format.h",
"source/rtp_format_h264.cc",
"source/rtp_format_h264.h",
"source/rtp_format_video_generic.cc",
"source/rtp_format_video_generic.h",
"source/rtp_format_vp8.cc",
"source/rtp_format_vp8.h",
"source/rtp_format_vp9.cc",
"source/rtp_format_vp9.h",
"source/rtp_header_extension.cc",
"source/rtp_header_extension.h",
"source/rtp_header_extensions.cc",
"source/rtp_header_extensions.h",
"source/rtp_header_parser.cc",
"source/rtp_packet.cc",
"source/rtp_packet.h",
"source/rtp_packet_history.cc",
"source/rtp_packet_history.h",
"source/rtp_packet_received.h",
"source/rtp_packet_to_send.h",
"source/rtp_payload_registry.cc",
"source/rtp_receiver_audio.cc",
"source/rtp_receiver_audio.h",
"source/rtp_receiver_impl.cc",
"source/rtp_receiver_impl.h",
"source/rtp_receiver_strategy.cc",
"source/rtp_receiver_strategy.h",
"source/rtp_receiver_video.cc",
"source/rtp_receiver_video.h",
"source/rtp_rtcp_config.h",
"source/rtp_rtcp_impl.cc",
"source/rtp_rtcp_impl.h",
"source/rtp_sender.cc",
"source/rtp_sender.h",
"source/rtp_sender_audio.cc",
"source/rtp_sender_audio.h",
"source/rtp_sender_video.cc",
"source/rtp_sender_video.h",
"source/rtp_utility.cc",
"source/rtp_utility.h",
"source/time_util.cc",
"source/time_util.h",
"source/tmmbr_help.cc",
"source/tmmbr_help.h",
"source/ulpfec_generator.cc",
"source/ulpfec_generator.h",
"source/ulpfec_header_reader_writer.cc",
"source/ulpfec_header_reader_writer.h",
"source/ulpfec_receiver_impl.cc",
"source/ulpfec_receiver_impl.h",
"source/video_codec_information.h",
"source/vp8_partition_aggregator.cc",
"source/vp8_partition_aggregator.h",
]
if (rtc_enable_bwe_test_logging) {
defines = [ "BWE_TEST_LOGGING_COMPILE_TIME_ENABLE=1" ]
} else {
defines = [ "BWE_TEST_LOGGING_COMPILE_TIME_ENABLE=0" ]
}
if (!build_with_chromium && is_clang) {
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
}
deps = [
"..:module_api",
"../..:webrtc_common",
"../../api:libjingle_peerconnection_api",
"../../api:transport_api",
"../../api/audio_codecs:audio_codecs_api",
"../../base:gtest_prod",
"../../base:rtc_base_approved",
"../../base:rtc_task_queue",
"../../call:call_interfaces",
"../../common_video",
"../../logging:rtc_event_log_api",
"../../system_wrappers",
"../audio_coding:audio_format_conversion",
"../remote_bitrate_estimator",
]
# TODO(jschuh): Bug 1348: fix this warning.
configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
if (is_win) {
cflags = [
# TODO(kjellander): Bug 261: fix this warning.
"/wd4373", # virtual function override.
]
}
}
rtc_source_set("fec_test_helper") {
testonly = true
sources = [
"source/fec_test_helper.cc",
"source/fec_test_helper.h",
]
deps = [
":rtp_rtcp",
"..:module_api",
"../../base:rtc_base_approved",
]
# TODO(jschuh): bugs.webrtc.org/1348: fix this warning.
configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
if (!build_with_chromium && is_clang) {
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
}
}
if (rtc_include_tests) {
rtc_executable("test_packet_masks_metrics") {
testonly = true
sources = [
"test/testFec/average_residual_loss_xor_codes.h",
"test/testFec/test_packet_masks_metrics.cc",
]
deps = [
":rtp_rtcp",
"//testing/gtest",
"//webrtc/test:test_main",
]
} # test_packet_masks_metrics
rtc_source_set("rtp_rtcp_modules_tests") {
testonly = true
# Skip restricting visibility on mobile platforms since the tests on those
# gets additional generated targets which would require many lines here to
# cover (which would be confusing to read and hard to maintain).
if (!is_android && !is_ios) {
visibility = [ "//webrtc/modules:modules_tests" ]
}
sources = [
"test/testFec/test_fec.cc",
]
deps = [
":rtp_rtcp",
"../../base:rtc_base_approved",
"../../test:test_support",
]
if (!build_with_chromium && is_clang) {
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
}
}
rtc_source_set("mock_rtp_rtcp") {
testonly = true
sources = [
"mocks/mock_rtp_rtcp.h",
]
deps = [
":rtp_rtcp",
"..:module_api",
"../../base:rtc_base_approved",
"../../test:test_support",
]
}
rtc_source_set("rtp_rtcp_unittests") {
testonly = true
# Skip restricting visibility on mobile platforms since the tests on those
# gets additional generated targets which would require many lines here to
# cover (which would be confusing to read and hard to maintain).
if (!is_android && !is_ios) {
visibility = [ "//webrtc/modules:modules_unittests" ]
}
sources = [
"source/byte_io_unittest.cc",
"source/flexfec_header_reader_writer_unittest.cc",
"source/flexfec_receiver_unittest.cc",
"source/flexfec_sender_unittest.cc",
"source/nack_rtx_unittest.cc",
"source/packet_loss_stats_unittest.cc",
"source/playout_delay_oracle_unittest.cc",
"source/receive_statistics_unittest.cc",
"source/remote_ntp_time_estimator_unittest.cc",
"source/rtcp_nack_stats_unittest.cc",
"source/rtcp_packet/app_unittest.cc",
"source/rtcp_packet/bye_unittest.cc",
"source/rtcp_packet/common_header_unittest.cc",
"source/rtcp_packet/compound_packet_unittest.cc",
"source/rtcp_packet/dlrr_unittest.cc",
"source/rtcp_packet/extended_jitter_report_unittest.cc",
"source/rtcp_packet/extended_reports_unittest.cc",
"source/rtcp_packet/fir_unittest.cc",
"source/rtcp_packet/nack_unittest.cc",
"source/rtcp_packet/pli_unittest.cc",
"source/rtcp_packet/rapid_resync_request_unittest.cc",
"source/rtcp_packet/receiver_report_unittest.cc",
"source/rtcp_packet/remb_unittest.cc",
"source/rtcp_packet/report_block_unittest.cc",
"source/rtcp_packet/rrtr_unittest.cc",
"source/rtcp_packet/sdes_unittest.cc",
"source/rtcp_packet/sender_report_unittest.cc",
"source/rtcp_packet/target_bitrate_unittest.cc",
"source/rtcp_packet/tmmbn_unittest.cc",
"source/rtcp_packet/tmmbr_unittest.cc",
"source/rtcp_packet/transport_feedback_unittest.cc",
"source/rtcp_packet/voip_metric_unittest.cc",
"source/rtcp_packet_unittest.cc",
"source/rtcp_receiver_unittest.cc",
"source/rtcp_sender_unittest.cc",
"source/rtp_fec_unittest.cc",
"source/rtp_format_h264_unittest.cc",
"source/rtp_format_vp8_test_helper.cc",
"source/rtp_format_vp8_test_helper.h",
"source/rtp_format_vp8_unittest.cc",
"source/rtp_format_vp9_unittest.cc",
"source/rtp_header_extension_unittest.cc",
"source/rtp_packet_history_unittest.cc",
"source/rtp_packet_unittest.cc",
"source/rtp_payload_registry_unittest.cc",
"source/rtp_receiver_unittest.cc",
"source/rtp_rtcp_impl_unittest.cc",
"source/rtp_sender_unittest.cc",
"source/rtp_utility_unittest.cc",
"source/time_util_unittest.cc",
"source/ulpfec_generator_unittest.cc",
"source/ulpfec_header_reader_writer_unittest.cc",
"source/ulpfec_receiver_unittest.cc",
"source/vp8_partition_aggregator_unittest.cc",
"test/testAPI/test_api.cc",
"test/testAPI/test_api.h",
"test/testAPI/test_api_audio.cc",
"test/testAPI/test_api_rtcp.cc",
"test/testAPI/test_api_video.cc",
]
deps = [
":fec_test_helper",
":mock_rtp_rtcp",
":rtp_rtcp",
"..:module_api",
"../..:webrtc_common",
"../../api:transport_api",
"../../base:rtc_base_approved",
"../../common_video:common_video",
"../../system_wrappers:system_wrappers",
"../../test:field_trial",
"../../test:rtp_test_utils",
"../../test:test_common",
"../../test:test_support",
"//testing/gmock",
]
# TODO(jschuh): bugs.webrtc.org/1348: fix this warning.
configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
if (!build_with_chromium && is_clang) {
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
}
}
}