diff --git a/webrtc/BUILD.gn b/webrtc/BUILD.gn index 02a16d122d..565810c4b8 100644 --- a/webrtc/BUILD.gn +++ b/webrtc/BUILD.gn @@ -254,17 +254,7 @@ source_set("webrtc") { "call", "common_audio", "common_video", - "modules/audio_coding", - "modules/audio_conference_mixer", - "modules/audio_device", - "modules/audio_processing", - "modules/bitrate_controller", - "modules/desktop_capture", - "modules/media_file", - "modules/rtp_rtcp", - "modules/utility", - "modules/video_coding", - "modules/video_processing", + "modules", "system_wrappers", "tools", "video", diff --git a/webrtc/build/webrtc.gni b/webrtc/build/webrtc.gni index aa86c99efa..28a9ef52d3 100644 --- a/webrtc/build/webrtc.gni +++ b/webrtc/build/webrtc.gni @@ -42,6 +42,7 @@ declare_args() { rtc_build_libjpeg = true rtc_build_libsrtp = true rtc_build_libvpx = true + rtc_libvpx_build_vp9 = true rtc_build_libyuv = true rtc_build_openmax_dl = true rtc_build_opus = true @@ -73,10 +74,6 @@ declare_args() { rtc_build_libevent = true } - if (is_ios) { - rtc_enable_protobuf = false - } - if (current_cpu == "arm" || current_cpu == "arm64") { rtc_prefer_fixed_point = true } diff --git a/webrtc/modules/BUILD.gn b/webrtc/modules/BUILD.gn new file mode 100644 index 0000000000..4eeaa59126 --- /dev/null +++ b/webrtc/modules/BUILD.gn @@ -0,0 +1,540 @@ +# Copyright (c) 2016 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/webrtc.gni") +import("audio_coding/audio_coding.gni") +import("//testing/test.gni") + +declare_args() { + # Desktop capturer is supported only on Windows, OSX and Linux. + rtc_desktop_capture_supported = is_win || is_mac || is_linux +} + +group("modules") { + deps = [ + "audio_coding", + "audio_conference_mixer", + "audio_device", + "audio_processing", + "bitrate_controller", + "desktop_capture", + "media_file", + "rtp_rtcp", + "utility", + "video_coding", + "video_processing", + ] +} + +if (rtc_include_tests) { + test("modules_unittests") { + testonly = true + + defines = audio_coding_defines + deps = [] + sources = [ + "audio_coding/acm2/acm_receiver_unittest_oldapi.cc", + "audio_coding/acm2/audio_coding_module_unittest_oldapi.cc", + "audio_coding/acm2/call_statistics_unittest.cc", + "audio_coding/acm2/codec_manager_unittest.cc", + "audio_coding/acm2/initial_delay_manager_unittest.cc", + "audio_coding/acm2/rent_a_codec_unittest.cc", + "audio_coding/codecs/audio_decoder_factory_unittest.cc", + "audio_coding/codecs/cng/audio_encoder_cng_unittest.cc", + "audio_coding/codecs/cng/cng_unittest.cc", + "audio_coding/codecs/isac/fix/source/filterbanks_unittest.cc", + "audio_coding/codecs/isac/fix/source/filters_unittest.cc", + "audio_coding/codecs/isac/fix/source/lpc_masking_model_unittest.cc", + "audio_coding/codecs/isac/fix/source/transform_unittest.cc", + "audio_coding/codecs/isac/main/source/audio_encoder_isac_unittest.cc", + "audio_coding/codecs/isac/main/source/isac_unittest.cc", + "audio_coding/codecs/isac/unittest.cc", + "audio_coding/codecs/mock/mock_audio_encoder.cc", + "audio_coding/codecs/opus/audio_encoder_opus_unittest.cc", + "audio_coding/codecs/opus/opus_unittest.cc", + "audio_coding/codecs/red/audio_encoder_copy_red_unittest.cc", + "audio_coding/neteq/audio_classifier_unittest.cc", + "audio_coding/neteq/audio_multi_vector_unittest.cc", + "audio_coding/neteq/audio_vector_unittest.cc", + "audio_coding/neteq/background_noise_unittest.cc", + "audio_coding/neteq/buffer_level_filter_unittest.cc", + "audio_coding/neteq/comfort_noise_unittest.cc", + "audio_coding/neteq/decision_logic_unittest.cc", + "audio_coding/neteq/decoder_database_unittest.cc", + "audio_coding/neteq/delay_manager_unittest.cc", + "audio_coding/neteq/delay_peak_detector_unittest.cc", + "audio_coding/neteq/dsp_helper_unittest.cc", + "audio_coding/neteq/dtmf_buffer_unittest.cc", + "audio_coding/neteq/dtmf_tone_generator_unittest.cc", + "audio_coding/neteq/expand_unittest.cc", + "audio_coding/neteq/merge_unittest.cc", + "audio_coding/neteq/mock/mock_audio_decoder.h", + "audio_coding/neteq/mock/mock_audio_vector.h", + "audio_coding/neteq/mock/mock_buffer_level_filter.h", + "audio_coding/neteq/mock/mock_decoder_database.h", + "audio_coding/neteq/mock/mock_delay_manager.h", + "audio_coding/neteq/mock/mock_delay_peak_detector.h", + "audio_coding/neteq/mock/mock_dtmf_buffer.h", + "audio_coding/neteq/mock/mock_dtmf_tone_generator.h", + "audio_coding/neteq/mock/mock_expand.h", + "audio_coding/neteq/mock/mock_external_decoder_pcm16b.h", + "audio_coding/neteq/mock/mock_packet_buffer.h", + "audio_coding/neteq/mock/mock_payload_splitter.h", + "audio_coding/neteq/nack_tracker_unittest.cc", + "audio_coding/neteq/neteq_external_decoder_unittest.cc", + "audio_coding/neteq/neteq_impl_unittest.cc", + "audio_coding/neteq/neteq_network_stats_unittest.cc", + "audio_coding/neteq/neteq_stereo_unittest.cc", + "audio_coding/neteq/neteq_unittest.cc", + "audio_coding/neteq/normal_unittest.cc", + "audio_coding/neteq/packet_buffer_unittest.cc", + "audio_coding/neteq/payload_splitter_unittest.cc", + "audio_coding/neteq/post_decode_vad_unittest.cc", + "audio_coding/neteq/random_vector_unittest.cc", + "audio_coding/neteq/sync_buffer_unittest.cc", + "audio_coding/neteq/tick_timer_unittest.cc", + "audio_coding/neteq/time_stretch_unittest.cc", + "audio_coding/neteq/timestamp_scaler_unittest.cc", + "audio_coding/neteq/tools/input_audio_file_unittest.cc", + "audio_coding/neteq/tools/packet_unittest.cc", + "audio_conference_mixer/test/audio_conference_mixer_unittest.cc", + "audio_device/fine_audio_buffer_unittest.cc", + "audio_processing/aec/echo_cancellation_unittest.cc", + "audio_processing/aec/system_delay_unittest.cc", + "audio_processing/agc/agc_manager_direct_unittest.cc", + + # TODO(ajm): Fix to match new interface. + # "audio_processing/agc/agc_unittest.cc", + "audio_processing/agc/loudness_histogram_unittest.cc", + "audio_processing/agc/mock_agc.h", + "audio_processing/beamformer/array_util_unittest.cc", + "audio_processing/beamformer/complex_matrix_unittest.cc", + "audio_processing/beamformer/covariance_matrix_generator_unittest.cc", + "audio_processing/beamformer/matrix_unittest.cc", + "audio_processing/beamformer/mock_nonlinear_beamformer.h", + "audio_processing/beamformer/nonlinear_beamformer_unittest.cc", + "audio_processing/echo_cancellation_impl_unittest.cc", + "audio_processing/intelligibility/intelligibility_enhancer_unittest.cc", + "audio_processing/intelligibility/intelligibility_utils_unittest.cc", + "audio_processing/splitting_filter_unittest.cc", + "audio_processing/transient/dyadic_decimator_unittest.cc", + "audio_processing/transient/file_utils.cc", + "audio_processing/transient/file_utils.h", + "audio_processing/transient/file_utils_unittest.cc", + "audio_processing/transient/moving_moments_unittest.cc", + "audio_processing/transient/transient_detector_unittest.cc", + "audio_processing/transient/transient_suppressor_unittest.cc", + "audio_processing/transient/wpd_node_unittest.cc", + "audio_processing/transient/wpd_tree_unittest.cc", + "audio_processing/utility/block_mean_calculator_unittest.cc", + "audio_processing/utility/delay_estimator_unittest.cc", + "audio_processing/vad/gmm_unittest.cc", + "audio_processing/vad/pitch_based_vad_unittest.cc", + "audio_processing/vad/pitch_internal_unittest.cc", + "audio_processing/vad/pole_zero_filter_unittest.cc", + "audio_processing/vad/standalone_vad_unittest.cc", + "audio_processing/vad/vad_audio_proc_unittest.cc", + "audio_processing/vad/vad_circular_buffer_unittest.cc", + "audio_processing/vad/voice_activity_detector_unittest.cc", + "bitrate_controller/bitrate_controller_unittest.cc", + "bitrate_controller/send_side_bandwidth_estimation_unittest.cc", + "congestion_controller/congestion_controller_unittest.cc", + "media_file/media_file_unittest.cc", + "module_common_types_unittest.cc", + "pacing/bitrate_prober_unittest.cc", + "pacing/paced_sender_unittest.cc", + "pacing/packet_router_unittest.cc", + "remote_bitrate_estimator/bwe_simulations.cc", + "remote_bitrate_estimator/include/mock/mock_remote_bitrate_estimator.h", + "remote_bitrate_estimator/include/mock/mock_remote_bitrate_observer.h", + "remote_bitrate_estimator/inter_arrival_unittest.cc", + "remote_bitrate_estimator/overuse_detector_unittest.cc", + "remote_bitrate_estimator/remote_bitrate_estimator_abs_send_time_unittest.cc", + "remote_bitrate_estimator/remote_bitrate_estimator_single_stream_unittest.cc", + "remote_bitrate_estimator/remote_bitrate_estimator_unittest_helper.cc", + "remote_bitrate_estimator/remote_bitrate_estimator_unittest_helper.h", + "remote_bitrate_estimator/remote_estimator_proxy_unittest.cc", + "remote_bitrate_estimator/send_time_history_unittest.cc", + "remote_bitrate_estimator/test/bwe_test_framework_unittest.cc", + "remote_bitrate_estimator/test/bwe_unittest.cc", + "remote_bitrate_estimator/test/estimators/nada_unittest.cc", + "remote_bitrate_estimator/test/metric_recorder_unittest.cc", + "remote_bitrate_estimator/transport_feedback_adapter_unittest.cc", + "rtp_rtcp/source/byte_io_unittest.cc", + "rtp_rtcp/source/fec_receiver_unittest.cc", + "rtp_rtcp/source/fec_test_helper.cc", + "rtp_rtcp/source/fec_test_helper.h", + "rtp_rtcp/source/mock/mock_rtp_payload_strategy.h", + "rtp_rtcp/source/nack_rtx_unittest.cc", + "rtp_rtcp/source/packet_loss_stats_unittest.cc", + "rtp_rtcp/source/producer_fec_unittest.cc", + "rtp_rtcp/source/receive_statistics_unittest.cc", + "rtp_rtcp/source/remote_ntp_time_estimator_unittest.cc", + "rtp_rtcp/source/rtcp_format_remb_unittest.cc", + "rtp_rtcp/source/rtcp_packet/app_unittest.cc", + "rtp_rtcp/source/rtcp_packet/bye_unittest.cc", + "rtp_rtcp/source/rtcp_packet/common_header_unittest.cc", + "rtp_rtcp/source/rtcp_packet/compound_packet_unittest.cc", + "rtp_rtcp/source/rtcp_packet/dlrr_unittest.cc", + "rtp_rtcp/source/rtcp_packet/extended_jitter_report_unittest.cc", + "rtp_rtcp/source/rtcp_packet/extended_reports_unittest.cc", + "rtp_rtcp/source/rtcp_packet/fir_unittest.cc", + "rtp_rtcp/source/rtcp_packet/nack_unittest.cc", + "rtp_rtcp/source/rtcp_packet/pli_unittest.cc", + "rtp_rtcp/source/rtcp_packet/rapid_resync_request_unittest.cc", + "rtp_rtcp/source/rtcp_packet/receiver_report_unittest.cc", + "rtp_rtcp/source/rtcp_packet/remb_unittest.cc", + "rtp_rtcp/source/rtcp_packet/report_block_unittest.cc", + "rtp_rtcp/source/rtcp_packet/rpsi_unittest.cc", + "rtp_rtcp/source/rtcp_packet/rrtr_unittest.cc", + "rtp_rtcp/source/rtcp_packet/sdes_unittest.cc", + "rtp_rtcp/source/rtcp_packet/sender_report_unittest.cc", + "rtp_rtcp/source/rtcp_packet/sli_unittest.cc", + "rtp_rtcp/source/rtcp_packet/tmmbn_unittest.cc", + "rtp_rtcp/source/rtcp_packet/tmmbr_unittest.cc", + "rtp_rtcp/source/rtcp_packet/transport_feedback_unittest.cc", + "rtp_rtcp/source/rtcp_packet/voip_metric_unittest.cc", + "rtp_rtcp/source/rtcp_packet_unittest.cc", + "rtp_rtcp/source/rtcp_receiver_unittest.cc", + "rtp_rtcp/source/rtcp_sender_unittest.cc", + "rtp_rtcp/source/rtcp_utility_unittest.cc", + "rtp_rtcp/source/rtp_fec_unittest.cc", + "rtp_rtcp/source/rtp_format_h264_unittest.cc", + "rtp_rtcp/source/rtp_format_vp8_test_helper.cc", + "rtp_rtcp/source/rtp_format_vp8_test_helper.h", + "rtp_rtcp/source/rtp_format_vp8_unittest.cc", + "rtp_rtcp/source/rtp_format_vp9_unittest.cc", + "rtp_rtcp/source/rtp_header_extension_unittest.cc", + "rtp_rtcp/source/rtp_packet_history_unittest.cc", + "rtp_rtcp/source/rtp_packet_unittest.cc", + "rtp_rtcp/source/rtp_payload_registry_unittest.cc", + "rtp_rtcp/source/rtp_rtcp_impl_unittest.cc", + "rtp_rtcp/source/rtp_sender_unittest.cc", + "rtp_rtcp/source/time_util_unittest.cc", + "rtp_rtcp/source/vp8_partition_aggregator_unittest.cc", + "rtp_rtcp/test/testAPI/test_api.cc", + "rtp_rtcp/test/testAPI/test_api.h", + "rtp_rtcp/test/testAPI/test_api_audio.cc", + "rtp_rtcp/test/testAPI/test_api_rtcp.cc", + "rtp_rtcp/test/testAPI/test_api_video.cc", + "utility/source/audio_frame_operations_unittest.cc", + "utility/source/file_player_unittests.cc", + "utility/source/process_thread_impl_unittest.cc", + "video_coding/codecs/test/packet_manipulator_unittest.cc", + "video_coding/codecs/test/stats_unittest.cc", + "video_coding/codecs/test/videoprocessor_unittest.cc", + "video_coding/codecs/vp8/default_temporal_layers_unittest.cc", + "video_coding/codecs/vp8/reference_picture_selection_unittest.cc", + "video_coding/codecs/vp8/screenshare_layers_unittest.cc", + "video_coding/codecs/vp8/simulcast_encoder_adapter_unittest.cc", + "video_coding/codecs/vp8/simulcast_unittest.cc", + "video_coding/codecs/vp8/simulcast_unittest.h", + "video_coding/decoding_state_unittest.cc", + "video_coding/frame_buffer2_unittest.cc", + "video_coding/histogram_unittest.cc", + "video_coding/include/mock/mock_vcm_callbacks.h", + "video_coding/jitter_buffer_unittest.cc", + "video_coding/jitter_estimator_tests.cc", + "video_coding/media_optimization_unittest.cc", + "video_coding/nack_module_unittest.cc", + "video_coding/percentile_filter_unittest.cc", + "video_coding/protection_bitrate_calculator_unittest.cc", + "video_coding/receiver_unittest.cc", + "video_coding/sequence_number_util_unittest.cc", + "video_coding/session_info_unittest.cc", + "video_coding/test/stream_generator.cc", + "video_coding/test/stream_generator.h", + "video_coding/timing_unittest.cc", + "video_coding/utility/frame_dropper_unittest.cc", + "video_coding/utility/h264_bitstream_parser_unittest.cc", + "video_coding/utility/ivf_file_writer_unittest.cc", + "video_coding/utility/quality_scaler_unittest.cc", + "video_coding/video_coding_robustness_unittest.cc", + "video_coding/video_packet_buffer_unittest.cc", + "video_coding/video_receiver_unittest.cc", + "video_coding/video_sender_unittest.cc", + "video_processing/test/denoiser_test.cc", + "video_processing/test/video_processing_unittest.cc", + "video_processing/test/video_processing_unittest.h", + ] + + if (rtc_libvpx_build_vp9) { + sources += + [ "video_coding/codecs/vp9/vp9_screenshare_layers_unittest.cc" ] + } + + if (rtc_desktop_capture_supported || is_android) { + deps += [ "desktop_capture" ] + sources += [ + "desktop_capture/desktop_region_unittest.cc", + "desktop_capture/differ_block_unittest.cc", + "desktop_capture/differ_unittest.cc", + ] + } + + if (rtc_desktop_capture_supported) { + deps += [ "desktop_capture" ] + sources += [ + "desktop_capture/desktop_and_cursor_composer_unittest.cc", + "desktop_capture/mouse_cursor_monitor_unittest.cc", + "desktop_capture/screen_capturer_helper_unittest.cc", + "desktop_capture/screen_capturer_mac_unittest.cc", + "desktop_capture/screen_capturer_mock_objects.h", + "desktop_capture/screen_capturer_unittest.cc", + "desktop_capture/win/cursor_unittest.cc", + "desktop_capture/win/cursor_unittest_resources.h", + "desktop_capture/win/cursor_unittest_resources.rc", + "desktop_capture/window_capturer_unittest.cc", + ] + } + + if (rtc_prefer_fixed_point) { + defines += [ "WEBRTC_AUDIOPROC_FIXED_PROFILE" ] + } else { + defines += [ "WEBRTC_AUDIOPROC_FLOAT_PROFILE" ] + } + + if (rtc_enable_protobuf) { + defines += [ + "WEBRTC_AUDIOPROC_DEBUG_DUMP", + "WEBRTC_NETEQ_UNITTEST_BITEXACT", + ] + deps += [ + "audio_coding:neteq_unittest_proto", + "audio_processing:audioproc_protobuf_utils", + "audio_processing:audioproc_unittest_proto", + ] + sources += [ + "audio_processing/audio_processing_impl_locking_unittest.cc", + "audio_processing/audio_processing_impl_unittest.cc", + "audio_processing/audio_processing_unittest.cc", + "audio_processing/echo_cancellation_bit_exact_unittest.cc", + "audio_processing/echo_control_mobile_unittest.cc", + "audio_processing/gain_control_unittest.cc", + "audio_processing/high_pass_filter_unittest.cc", + "audio_processing/level_estimator_unittest.cc", + "audio_processing/noise_suppression_unittest.cc", + "audio_processing/test/audio_buffer_tools.cc", + "audio_processing/test/audio_buffer_tools.h", + "audio_processing/test/bitexactness_tools.cc", + "audio_processing/test/bitexactness_tools.h", + "audio_processing/test/debug_dump_replayer.cc", + "audio_processing/test/debug_dump_replayer.h", + "audio_processing/test/debug_dump_test.cc", + "audio_processing/test/test_utils.h", + "audio_processing/voice_detection_unittest.cc", + ] + } + + if (rtc_build_libvpx) { + deps += [ rtc_libvpx_dir ] + } + + configs += [ "..:common_config" ] + public_configs = [ "..:common_inherited_config" ] + + # TODO(jschuh): bugs.webrtc.org/1348: fix this warning. + configs += [ "//build/config/compiler:no_size_t_to_int_warning" ] + + if (is_clang) { + # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163). + configs -= [ "//build/config/clang:find_bad_constructs" ] + } + + if (is_win) { + cflags = [ + # TODO(kjellander): bugs.webrtc.org/261: Fix this warning. + "/wd4373", # virtual function override. + ] + } + + deps += [ + "..:webrtc_common", + "../base:rtc_base", # TODO(kjellander): Cleanup in bugs.webrtc.org/3806. + "../common_audio", + "../common_video", + "../system_wrappers:system_wrappers", + "../test:rtp_test_utils", + "../test:test_common", + "../test:test_support_main", + "../test:test_support_main", + "../test:video_test_common", + "../tools:agc_test_utils", + "audio_coding", + "audio_coding:acm_receive_test", + "audio_coding:acm_send_test", + "audio_coding:builtin_audio_decoder_factory", + "audio_coding:cng", + "audio_coding:isac_fix", + "audio_coding:neteq", + "audio_coding:neteq_test_support", + "audio_coding:neteq_unittest_tools", + "audio_coding:pcm16b", + "audio_coding:red", + "audio_coding:webrtc_opus", + "audio_conference_mixer", + "audio_device", + "audio_processing", + "audio_processing:audioproc_test_utils", + "bitrate_controller", + "media_file", + "pacing", + "remote_bitrate_estimator", + "remote_bitrate_estimator:bwe_simulator", + "rtp_rtcp", + "utility", + "video_capture", + "video_coding", + "video_coding:video_codecs_test_framework", + "video_coding:webrtc_vp8", + "video_coding:webrtc_vp9", + "video_processing", + "//testing/gmock", + "//testing/gtest", + "//third_party/gflags", + ] + + if (is_android) { + deps += [ "//testing/android/native_test:native_test_support" ] + + # Need to disable error due to the line in + # base/android/jni_android.h triggering it: + # const BASE_EXPORT jobject GetApplicationContext() + # error: type qualifiers ignored on function return type + cflags = [ "-Wno-ignored-qualifiers" ] + sources += [ + "audio_device/android/audio_device_unittest.cc", + "audio_device/android/audio_manager_unittest.cc", + "audio_device/android/ensure_initialized.cc", + "audio_device/android/ensure_initialized.h", + ] + + # This needs to be kept in sync with the .isolate file. + # TODO(kjellander); Move this to android_assets targets instead. + data = [ + "//data/audio_processing/output_data_fixed.pb", + "//data/audio_processing/output_data_float.pb", + "//data/audio_processing/output_data_mac.pb", + "//data/voice_engine/audio_tiny48.wav", + "//resources/att-downlink.rx", + "//resources/att-uplink.rx", + "//resources/audio_coding/neteq_opus.rtp", + "//resources/audio_coding/neteq_universal_new.rtp", + "//resources/audio_coding/speech_mono_16kHz.pcm", + "//resources/audio_coding/speech_mono_32_48kHz.pcm", + "//resources/audio_coding/testfile32kHz.pcm", + "//resources/audio_coding/teststereo32kHz.pcm", + "//resources/audio_device/audio_short16.pcm", + "//resources/audio_device/audio_short44.pcm", + "//resources/audio_device/audio_short48.pcm", + "//resources/audio_processing/agc/agc_audio.pcm", + "//resources/audio_processing/agc/agc_no_circular_buffer.dat", + "//resources/audio_processing/agc/agc_pitch_gain.dat", + "//resources/audio_processing/agc/agc_pitch_lag.dat", + "//resources/audio_processing/agc/agc_spectral_peak.dat", + "//resources/audio_processing/agc/agc_vad.dat", + "//resources/audio_processing/agc/agc_voicing_prob.dat", + "//resources/audio_processing/agc/agc_with_circular_buffer.dat", + "//resources/audio_processing/transient/ajm-macbook-1-spke16m.pcm", + "//resources/audio_processing/transient/audio16kHz.pcm", + "//resources/audio_processing/transient/audio32kHz.pcm", + "//resources/audio_processing/transient/audio48kHz.pcm", + "//resources/audio_processing/transient/audio8kHz.pcm", + "//resources/audio_processing/transient/detect16kHz.dat", + "//resources/audio_processing/transient/detect32kHz.dat", + "//resources/audio_processing/transient/detect48kHz.dat", + "//resources/audio_processing/transient/detect8kHz.dat", + "//resources/audio_processing/transient/double-utils.dat", + "//resources/audio_processing/transient/float-utils.dat", + "//resources/audio_processing/transient/suppressed16kHz.pcm", + "//resources/audio_processing/transient/suppressed32kHz.pcm", + "//resources/audio_processing/transient/suppressed8kHz.pcm", + "//resources/audio_processing/transient/wpd0.dat", + "//resources/audio_processing/transient/wpd1.dat", + "//resources/audio_processing/transient/wpd2.dat", + "//resources/audio_processing/transient/wpd3.dat", + "//resources/audio_processing/transient/wpd4.dat", + "//resources/audio_processing/transient/wpd5.dat", + "//resources/audio_processing/transient/wpd6.dat", + "//resources/audio_processing/transient/wpd7.dat", + "//resources/deflicker_before_cif_short.yuv", + "//resources/far16_stereo.pcm", + "//resources/far32_stereo.pcm", + "//resources/far44_stereo.pcm", + "//resources/far48_stereo.pcm", + "//resources/far8_stereo.pcm", + "//resources/foremanColorEnhanced_cif_short.yuv", + "//resources/foreman_cif.yuv", + "//resources/foreman_cif_short.yuv", + "//resources/near16_stereo.pcm", + "//resources/near32_stereo.pcm", + "//resources/near44_stereo.pcm", + "//resources/near48_stereo.pcm", + "//resources/near8_stereo.pcm", + "//resources/ref03.aecdump", + "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingChoke1_0_AST.bin", + "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingChoke1_0_TOF.bin", + "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingChoke1_1_AST.bin", + "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingChoke1_1_TOF.bin", + "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingChoke2_0_AST.bin", + "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingChoke2_0_TOF.bin", + "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingChoke2_1_AST.bin", + "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingChoke2_1_TOF.bin", + "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingDelay1_0_AST.bin", + "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingDelay1_0_TOF.bin", + "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingLoss1_0_AST.bin", + "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingLoss1_0_TOF.bin", + "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_Multi1_1_AST.bin", + "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_Multi1_1_TOF.bin", + "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_SteadyChoke_0_AST.bin", + "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_SteadyChoke_0_TOF.bin", + "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_SteadyChoke_1_AST.bin", + "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_SteadyChoke_1_TOF.bin", + "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_SteadyDelay_0_AST.bin", + "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_SteadyDelay_0_TOF.bin", + "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_SteadyLoss_0_AST.bin", + "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_SteadyLoss_0_TOF.bin", + "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_UnlimitedSpeed_0_AST.bin", + "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_UnlimitedSpeed_0_TOF.bin", + "//resources/short_mixed_mono_48.dat", + "//resources/short_mixed_mono_48_arm.dat", + "//resources/short_mixed_mono_48.pcm", + "//resources/short_mixed_stereo_48.dat", + "//resources/short_mixed_stereo_48.pcm", + "//resources/sprint-downlink.rx", + "//resources/sprint-uplink.rx", + "//resources/synthetic-trace.rx", + "//resources/tmobile-downlink.rx", + "//resources/tmobile-uplink.rx", + "//resources/utility/encapsulated_pcm16b_8khz.wav", + "//resources/utility/encapsulated_pcmu_8khz.wav", + "//resources/verizon3g-downlink.rx", + "//resources/verizon3g-uplink.rx", + "//resources/verizon4g-downlink.rx", + "//resources/verizon4g-uplink.rx", + ] + } + + if (is_ios) { + configs += [ + "..:common_objc", + "//build/config/compiler:enable_arc", + ] + + sources += [ + "audio_device/ios/audio_device_unittest_ios.cc", + "audio_device/ios/objc/RTCAudioSessionTest.mm", + "video_coding/codecs/h264/h264_video_toolbox_nalu_unittest.cc", + ] + + ldflags = [ "-ObjC" ] + + # TODO(kjellander): Mac bundle files. + } + } +} diff --git a/webrtc/modules/audio_coding/BUILD.gn b/webrtc/modules/audio_coding/BUILD.gn index f072f31a58..d2c09a377f 100644 --- a/webrtc/modules/audio_coding/BUILD.gn +++ b/webrtc/modules/audio_coding/BUILD.gn @@ -6,38 +6,39 @@ # 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/arm.gni") import("../../build/webrtc.gni") +import("audio_coding.gni") +import("//build/config/arm.gni") +import("//testing/test.gni") +import("//third_party/protobuf/proto_library.gni") audio_codec_deps = [ ":cng", ":g711", ":pcm16b", ] -audio_codec_defines = [] if (rtc_include_ilbc) { - audio_codec_defines += [ "WEBRTC_CODEC_ILBC" ] audio_codec_deps += [ ":ilbc" ] } if (rtc_include_opus) { - audio_codec_defines += [ "WEBRTC_CODEC_OPUS" ] audio_codec_deps += [ ":webrtc_opus" ] } if (!build_with_mozilla) { if (current_cpu == "arm") { - audio_codec_defines += [ "WEBRTC_CODEC_ISACFX" ] audio_codec_deps += [ ":isac_fix" ] } else { - audio_codec_defines += [ "WEBRTC_CODEC_ISAC" ] audio_codec_deps += [ ":isac" ] } - audio_codec_defines += [ "WEBRTC_CODEC_G722" ] audio_codec_deps += [ ":g722" ] } if (!build_with_mozilla && !build_with_chromium) { - audio_codec_defines += [ "WEBRTC_CODEC_RED" ] audio_codec_deps += [ ":red" ] } +audio_coding_deps = audio_codec_deps + [ + "../..:webrtc_common", + "../../common_audio", + "../../system_wrappers", + ] source_set("audio_decoder_factory_interface") { sources = [ @@ -115,6 +116,12 @@ source_set("audio_coding") { ":audio_coding_config", ] + if (rtc_include_opus) { + public_deps = [ + ":webrtc_opus", + ] + } + if (is_win) { cflags = [ # TODO(kjellander): Bug 261: fix this warning. @@ -123,20 +130,16 @@ source_set("audio_coding") { } if (is_clang) { - # Suppress warnings from Chrome's Clang plugins. - # See http://code.google.com/p/webrtc/issues/detail?id=163 for details. + # Suppress warnings from the Chromium Clang plugins (bugs.webrtc.org/163). configs -= [ "//build/config/clang:find_bad_constructs" ] } - deps = audio_codec_deps + [ + deps = audio_coding_deps + [ ":neteq", ":rent_a_codec", "../..:rtc_event_log", - "../..:webrtc_common", - "../../common_audio", - "../../system_wrappers", ] - defines = audio_codec_defines + defines = audio_coding_defines } source_set("audio_decoder_interface") { @@ -887,3 +890,136 @@ source_set("neteq") { deps += [ ":g722" ] } } + +if (rtc_include_tests) { + source_set("acm_receive_test") { + testonly = true + sources = [ + "acm2/acm_receive_test_oldapi.cc", + "acm2/acm_receive_test_oldapi.h", + ] + + configs += [ "../..:common_config" ] + public_configs = [ "../..:common_inherited_config" ] + + if (is_clang) { + # Suppress warnings from the Chromium Clang plugins (bugs.webrtc.org/163). + configs -= [ "//build/config/clang:find_bad_constructs" ] + } + + defines = audio_coding_defines + + deps = audio_coding_deps + [ + ":audio_coding", + ":neteq_unittest_tools", + "//testing/gtest", + ] + } + + source_set("acm_send_test") { + testonly = true + sources = [ + "acm2/acm_send_test_oldapi.cc", + "acm2/acm_send_test_oldapi.h", + ] + + configs += [ "../..:common_config" ] + public_configs = [ "../..:common_inherited_config" ] + + if (is_clang) { + # Suppress warnings from the Chromium Clang plugins (bugs.webrtc.org/163). + configs -= [ "//build/config/clang:find_bad_constructs" ] + } + + defines = audio_coding_defines + + deps = audio_coding_deps + [ + ":audio_coding", + ":neteq_unittest_tools", + "//testing/gtest", + ] + } + + if (rtc_enable_protobuf) { + proto_library("neteq_unittest_proto") { + sources = [ + "neteq/neteq_unittest.proto", + ] + proto_out_dir = "webrtc/audio_coding/neteq" + } + } + + source_set("neteq_test_support") { + testonly = true + sources = [ + "neteq/tools/neteq_external_decoder_test.cc", + "neteq/tools/neteq_external_decoder_test.h", + "neteq/tools/neteq_performance_test.cc", + "neteq/tools/neteq_performance_test.h", + "neteq/tools/neteq_quality_test.cc", + "neteq/tools/neteq_quality_test.h", + ] + + configs += [ "../..:common_config" ] + public_configs = [ "../..:common_inherited_config" ] + + if (is_clang) { + # Suppress warnings from the Chromium Clang plugins (bugs.webrtc.org/163). + configs -= [ "//build/config/clang:find_bad_constructs" ] + } + + deps = [ + ":neteq", + ":neteq_unittest_tools", + ":pcm16b", + "//testing/gtest", + "//third_party/gflags", + ] + } + + config("neteq_unittest_tools_config") { + include_dirs = [ "tools" ] + } + + source_set("neteq_unittest_tools") { + testonly = true + sources = [ + "neteq/tools/audio_checksum.h", + "neteq/tools/audio_loop.cc", + "neteq/tools/audio_loop.h", + "neteq/tools/audio_sink.h", + "neteq/tools/constant_pcm_packet_source.cc", + "neteq/tools/constant_pcm_packet_source.h", + "neteq/tools/input_audio_file.cc", + "neteq/tools/input_audio_file.h", + "neteq/tools/output_audio_file.h", + "neteq/tools/output_wav_file.h", + "neteq/tools/packet.cc", + "neteq/tools/packet.h", + "neteq/tools/packet_source.h", + "neteq/tools/resample_input_audio_file.cc", + "neteq/tools/resample_input_audio_file.h", + "neteq/tools/rtp_file_source.cc", + "neteq/tools/rtp_file_source.h", + "neteq/tools/rtp_generator.cc", + "neteq/tools/rtp_generator.h", + ] + + configs += [ "../..:common_config" ] + public_configs = [ + "../..:common_inherited_config", + ":neteq_unittest_tools_config", + ] + + if (is_clang) { + # Suppress warnings from the Chromium Clang plugins (bugs.webrtc.org/163). + configs -= [ "//build/config/clang:find_bad_constructs" ] + } + + deps = [ + "../../common_audio", + "../../test:rtp_test_utils", + "../rtp_rtcp", + ] + } +} diff --git a/webrtc/modules/audio_coding/audio_coding.gni b/webrtc/modules/audio_coding/audio_coding.gni new file mode 100644 index 0000000000..d346d47d3e --- /dev/null +++ b/webrtc/modules/audio_coding/audio_coding.gni @@ -0,0 +1,30 @@ +# Copyright (c) 2016 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/webrtc.gni") + +audio_codec_defines = [] +if (rtc_include_ilbc) { + audio_codec_defines += [ "WEBRTC_CODEC_ILBC" ] +} +if (rtc_include_opus) { + audio_codec_defines += [ "WEBRTC_CODEC_OPUS" ] +} +if (!build_with_mozilla) { + if (current_cpu == "arm") { + audio_codec_defines += [ "WEBRTC_CODEC_ISACFX" ] + } else { + audio_codec_defines += [ "WEBRTC_CODEC_ISAC" ] + } + audio_codec_defines += [ "WEBRTC_CODEC_G722" ] +} +if (!build_with_mozilla && !build_with_chromium) { + audio_codec_defines += [ "WEBRTC_CODEC_RED" ] +} + +audio_coding_defines = audio_codec_defines diff --git a/webrtc/modules/audio_device/BUILD.gn b/webrtc/modules/audio_device/BUILD.gn index b8aadee13b..92061a2416 100644 --- a/webrtc/modules/audio_device/BUILD.gn +++ b/webrtc/modules/audio_device/BUILD.gn @@ -140,7 +140,9 @@ source_set("audio_device") { ] } if (is_ios) { - deps += [ "../../sdk:rtc_sdk_common_objc" ] + public_deps = [ + "../../sdk:rtc_sdk_common_objc", + ] sources += [ "ios/audio_device_ios.h", "ios/audio_device_ios.mm", @@ -157,7 +159,7 @@ source_set("audio_device") { "ios/voice_processing_audio_unit.h", "ios/voice_processing_audio_unit.mm", ] - cflags += [ "-fobjc-arc" ] # CLANG_ENABLE_OBJC_ARC = YES. + configs += [ "//build/config/compiler:enable_arc" ] libs = [ "AudioToolbox.framework", diff --git a/webrtc/modules/audio_processing/BUILD.gn b/webrtc/modules/audio_processing/BUILD.gn index e249c858fa..037e6bbf85 100644 --- a/webrtc/modules/audio_processing/BUILD.gn +++ b/webrtc/modules/audio_processing/BUILD.gn @@ -211,8 +211,7 @@ source_set("audio_processing") { configs += [ "//build/config/compiler:no_size_t_to_int_warning" ] if (is_clang) { - # Suppress warnings from Chrome's Clang plugins. - # See http://code.google.com/p/webrtc/issues/detail?id=163 for details. + # Suppress warnings from the Chromium Clang plugins (bugs.webrtc.org/163). configs -= [ "//build/config/clang:find_bad_constructs" ] } @@ -295,3 +294,46 @@ if (rtc_build_with_neon) { } } } + +if (rtc_include_tests) { + source_set("audioproc_test_utils") { + testonly = true + sources = [ + "test/test_utils.cc", + "test/test_utils.h", + ] + + configs += [ "../..:common_config" ] + public_configs = [ "../..:common_inherited_config" ] + + if (is_clang) { + # Suppress warnings from the Chromium Clang plugins (bugs.webrtc.org/163). + configs -= [ "//build/config/clang:find_bad_constructs" ] + } + + deps = [ + "../../base:rtc_base_approved", + "../../common_audio", + ] + } + + if (rtc_enable_protobuf) { + proto_library("audioproc_unittest_proto") { + sources = [ + "test/unittest.proto", + ] + proto_out_dir = "webrtc/modules/audio_processing" + } + + source_set("audioproc_protobuf_utils") { + sources = [ + "test/protobuf_utils.cc", + "test/protobuf_utils.h", + ] + + deps = [ + ":audioproc_unittest_proto", + ] + } + } +} diff --git a/webrtc/modules/audio_processing/echo_cancellation_unittest.cc b/webrtc/modules/audio_processing/echo_cancellation_bit_exact_unittest.cc similarity index 100% rename from webrtc/modules/audio_processing/echo_cancellation_unittest.cc rename to webrtc/modules/audio_processing/echo_cancellation_bit_exact_unittest.cc diff --git a/webrtc/modules/desktop_capture/BUILD.gn b/webrtc/modules/desktop_capture/BUILD.gn index 63e43d9220..6caef4d719 100644 --- a/webrtc/modules/desktop_capture/BUILD.gn +++ b/webrtc/modules/desktop_capture/BUILD.gn @@ -138,7 +138,7 @@ source_set("desktop_capture") { deps = [ ":primitives", - "../../base:rtc_base_approved", + "../../base:rtc_base", # TODO(kjellander): Cleanup in bugs.webrtc.org/3806. "../../system_wrappers", ] diff --git a/webrtc/modules/modules.gyp b/webrtc/modules/modules.gyp index efdc817dfb..5e38028d1c 100644 --- a/webrtc/modules/modules.gyp +++ b/webrtc/modules/modules.gyp @@ -151,6 +151,7 @@ '<(DEPTH)/testing/gmock.gyp:gmock', '<(DEPTH)/testing/gtest.gyp:gtest', '<(DEPTH)/third_party/gflags/gflags.gyp:gflags', + '<(webrtc_root)/base/base.gyp:rtc_base', '<(webrtc_root)/common.gyp:webrtc_common', '<(webrtc_root)/common_audio/common_audio.gyp:common_audio', '<(webrtc_root)/common_video/common_video.gyp:common_video', @@ -392,7 +393,7 @@ 'conditions': [ ['libvpx_build_vp9==1', { 'sources': [ - 'video_coding/codecs/vp9/screenshare_layers_unittest.cc', + 'video_coding/codecs/vp9/vp9_screenshare_layers_unittest.cc', ], }], ['enable_bwe_test_logging==1', { @@ -445,8 +446,8 @@ 'audio_processing/audio_processing_impl_locking_unittest.cc', 'audio_processing/audio_processing_impl_unittest.cc', 'audio_processing/audio_processing_unittest.cc', + 'audio_processing/echo_cancellation_bit_exact_unittest.cc', 'audio_processing/echo_control_mobile_unittest.cc', - 'audio_processing/echo_cancellation_unittest.cc', 'audio_processing/gain_control_unittest.cc', 'audio_processing/high_pass_filter_unittest.cc', 'audio_processing/level_estimator_unittest.cc', diff --git a/webrtc/modules/remote_bitrate_estimator/BUILD.gn b/webrtc/modules/remote_bitrate_estimator/BUILD.gn index 703bffa5b8..7dcf2360c2 100644 --- a/webrtc/modules/remote_bitrate_estimator/BUILD.gn +++ b/webrtc/modules/remote_bitrate_estimator/BUILD.gn @@ -6,6 +6,9 @@ # in the file PATENTS. All contributing project authors may # be found in the AUTHORS file in the root of the source tree. +import("../../build/webrtc.gni") +import("//testing/test.gni") + declare_args() { # Set this to true to enable BWE test logging. rtc_enable_bwe_test_logging = false @@ -47,8 +50,7 @@ source_set("remote_bitrate_estimator") { public_configs = [ "../..:common_inherited_config" ] if (is_clang) { - # Suppress warnings from Chrome's Clang plugins. - # See http://code.google.com/p/webrtc/issues/detail?id=163 for details. + # Suppress warnings from the Chromium Clang plugins (bugs.webrtc.org/163). configs -= [ "//build/config/clang:find_bad_constructs" ] } @@ -58,3 +60,66 @@ source_set("remote_bitrate_estimator") { "../../system_wrappers", ] } + +if (rtc_include_tests) { + source_set("bwe_simulator") { + testonly = true + sources = [ + "test/bwe.cc", + "test/bwe.h", + "test/bwe_test.cc", + "test/bwe_test.h", + "test/bwe_test_baselinefile.cc", + "test/bwe_test_baselinefile.h", + "test/bwe_test_fileutils.cc", + "test/bwe_test_fileutils.h", + "test/bwe_test_framework.cc", + "test/bwe_test_framework.h", + "test/bwe_test_logging.h", + "test/estimators/nada.cc", + "test/estimators/nada.h", + "test/estimators/remb.cc", + "test/estimators/remb.h", + "test/estimators/send_side.cc", + "test/estimators/send_side.h", + "test/estimators/tcp.cc", + "test/estimators/tcp.h", + "test/metric_recorder.cc", + "test/metric_recorder.h", + "test/packet.h", + "test/packet_receiver.cc", + "test/packet_receiver.h", + "test/packet_sender.cc", + "test/packet_sender.h", + ] + + if (rtc_enable_bwe_test_logging) { + defines = [ "BWE_TEST_LOGGING_COMPILE_TIME_ENABLE=1" ] + sources += [ "test/bwe_test_logging.cc" ] + } else { + defines = [ "BWE_TEST_LOGGING_COMPILE_TIME_ENABLE=0" ] + } + + configs += [ "../..:common_config" ] + public_configs = [ "../..:common_inherited_config" ] + + if (is_clang) { + # Suppress warnings from the Chromium Clang plugins (bugs.webrtc.org/163). + configs -= [ "//build/config/clang:find_bad_constructs" ] + } + + if (is_win) { + cflags = [ + # TODO(kjellander): Bug 261: fix this warning. + "/wd4373", # virtual function override. + ] + } + + deps = [ + "../../test:test_support", + "../pacing", + "//testing/gmock", + "//testing/gtest", + ] + } +} diff --git a/webrtc/modules/remote_bitrate_estimator/remote_bitrate_estimator.gypi b/webrtc/modules/remote_bitrate_estimator/remote_bitrate_estimator.gypi index b041ecaabd..9978beb86d 100644 --- a/webrtc/modules/remote_bitrate_estimator/remote_bitrate_estimator.gypi +++ b/webrtc/modules/remote_bitrate_estimator/remote_bitrate_estimator.gypi @@ -64,6 +64,8 @@ 'target_name': 'bwe_simulator', 'type': 'static_library', 'dependencies': [ + '<(webrtc_root)/modules/modules.gyp:paced_sender', + '<(webrtc_root)/test/test.gyp:test_support', '<(DEPTH)/testing/gtest.gyp:gtest', '<(DEPTH)/testing/gmock.gyp:gmock', ], diff --git a/webrtc/modules/video_coding/BUILD.gn b/webrtc/modules/video_coding/BUILD.gn index 7b1138416a..30d0f11fc8 100644 --- a/webrtc/modules/video_coding/BUILD.gn +++ b/webrtc/modules/video_coding/BUILD.gn @@ -308,3 +308,33 @@ source_set("webrtc_vp9") { deps += [ rtc_libvpx_dir ] } } + +if (rtc_include_tests) { + source_set("video_codecs_test_framework") { + testonly = true + sources = [ + "codecs/test/mock/mock_packet_manipulator.h", + "codecs/test/packet_manipulator.cc", + "codecs/test/packet_manipulator.h", + "codecs/test/predictive_packet_manipulator.cc", + "codecs/test/predictive_packet_manipulator.h", + "codecs/test/stats.cc", + "codecs/test/stats.h", + "codecs/test/videoprocessor.cc", + "codecs/test/videoprocessor.h", + ] + + configs += [ "../..:common_config" ] + public_configs = [ "../..:common_inherited_config" ] + + if (is_clang) { + # Suppress warnings from Chrome's Clang plugins. + # See http://code.google.com/p/webrtc/issues/detail?id=163 for details. + configs -= [ "//build/config/clang:find_bad_constructs" ] + } + + deps = [ + "../../test:test_support", + ] + } +} diff --git a/webrtc/modules/video_coding/codecs/vp9/screenshare_layers_unittest.cc b/webrtc/modules/video_coding/codecs/vp9/vp9_screenshare_layers_unittest.cc similarity index 100% rename from webrtc/modules/video_coding/codecs/vp9/screenshare_layers_unittest.cc rename to webrtc/modules/video_coding/codecs/vp9/vp9_screenshare_layers_unittest.cc