|  | # 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") | 
|  | import("audio_coding.gni") | 
|  | if (rtc_enable_protobuf) { | 
|  | import("//third_party/protobuf/proto_library.gni") | 
|  | } | 
|  |  | 
|  | visibility = [ ":*" ] | 
|  |  | 
|  | rtc_source_set("audio_coding_module_typedefs") { | 
|  | visibility += [ "*" ] | 
|  | sources = [ "include/audio_coding_module_typedefs.h" ] | 
|  | } | 
|  |  | 
|  | rtc_library("audio_coding") { | 
|  | visibility += [ "*" ] | 
|  | sources = [ | 
|  | "acm2/acm_remixing.cc", | 
|  | "acm2/acm_remixing.h", | 
|  | "acm2/acm_resampler.cc", | 
|  | "acm2/acm_resampler.h", | 
|  | "acm2/audio_coding_module.cc", | 
|  | "acm2/call_statistics.cc", | 
|  | "acm2/call_statistics.h", | 
|  | "include/audio_coding_module.h", | 
|  | ] | 
|  |  | 
|  | defines = [] | 
|  |  | 
|  | deps = [ | 
|  | ":audio_coding_module_typedefs", | 
|  | ":neteq", | 
|  | "..:module_api", | 
|  | "..:module_api_public", | 
|  | "../../api:array_view", | 
|  | "../../api:function_view", | 
|  | "../../api/audio:audio_frame_api", | 
|  | "../../api/audio_codecs:audio_codecs_api", | 
|  | "../../api/environment", | 
|  | "../../api/neteq:default_neteq_factory", | 
|  | "../../api/neteq:neteq_api", | 
|  | "../../api/units:timestamp", | 
|  | "../../common_audio", | 
|  | "../../common_audio:common_audio_c", | 
|  | "../../rtc_base:buffer", | 
|  | "../../rtc_base:checks", | 
|  | "../../rtc_base:logging", | 
|  | "../../rtc_base:macromagic", | 
|  | "../../rtc_base:safe_conversions", | 
|  | "../../rtc_base/synchronization:mutex", | 
|  | "../../system_wrappers", | 
|  | "../../system_wrappers:metrics", | 
|  | "//third_party/abseil-cpp/absl/strings", | 
|  | "//third_party/abseil-cpp/absl/strings:string_view", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("legacy_encoded_audio_frame") { | 
|  | sources = [ | 
|  | "codecs/legacy_encoded_audio_frame.cc", | 
|  | "codecs/legacy_encoded_audio_frame.h", | 
|  | ] | 
|  | deps = [ | 
|  | "../../api:array_view", | 
|  | "../../api/audio_codecs:audio_codecs_api", | 
|  | "../../rtc_base:buffer", | 
|  | "../../rtc_base:checks", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("webrtc_cng") { | 
|  | visibility += webrtc_default_visibility | 
|  | sources = [ | 
|  | "codecs/cng/webrtc_cng.cc", | 
|  | "codecs/cng/webrtc_cng.h", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | "../../api:array_view", | 
|  | "../../common_audio:common_audio_c", | 
|  | "../../rtc_base:buffer", | 
|  | "../../rtc_base:checks", | 
|  | "../../rtc_base:safe_conversions", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("audio_encoder_cng") { | 
|  | visibility += [ "*" ] | 
|  | sources = [ | 
|  | "codecs/cng/audio_encoder_cng.cc", | 
|  | "codecs/cng/audio_encoder_cng.h", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | ":webrtc_cng", | 
|  | "../../api:array_view", | 
|  | "../../api/audio_codecs:audio_codecs_api", | 
|  | "../../api/units:time_delta", | 
|  | "../../common_audio", | 
|  | "../../rtc_base:buffer", | 
|  | "../../rtc_base:checks", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("red") { | 
|  | visibility += [ "*" ] | 
|  | sources = [ | 
|  | "codecs/red/audio_encoder_copy_red.cc", | 
|  | "codecs/red/audio_encoder_copy_red.h", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | "../../api:array_view", | 
|  | "../../api:bitrate_allocation", | 
|  | "../../api:field_trials_view", | 
|  | "../../api/audio_codecs:audio_codecs_api", | 
|  | "../../api/units:time_delta", | 
|  | "../../common_audio", | 
|  | "../../rtc_base:buffer", | 
|  | "../../rtc_base:byte_order", | 
|  | "../../rtc_base:checks", | 
|  | "../../rtc_base:logging", | 
|  | "//third_party/abseil-cpp/absl/strings:string_view", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("g711") { | 
|  | visibility += [ "*" ] | 
|  | poisonous = [ "audio_codecs" ] | 
|  | sources = [ | 
|  | "codecs/g711/audio_decoder_pcm.cc", | 
|  | "codecs/g711/audio_decoder_pcm.h", | 
|  | "codecs/g711/audio_encoder_pcm.cc", | 
|  | "codecs/g711/audio_encoder_pcm.h", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | ":legacy_encoded_audio_frame", | 
|  | "../../api:array_view", | 
|  | "../../api/audio_codecs:audio_codecs_api", | 
|  | "../../api/units:time_delta", | 
|  | "../../rtc_base:buffer", | 
|  | "../../rtc_base:checks", | 
|  | ] | 
|  | public_deps += [ ":g711_c" ]  # no-presubmit-check TODO(webrtc:8603) | 
|  | } | 
|  |  | 
|  | rtc_library("g711_c") { | 
|  | poisonous = [ "audio_codecs" ] | 
|  | sources = [ | 
|  | "codecs/g711/g711_interface.c", | 
|  | "codecs/g711/g711_interface.h", | 
|  | ] | 
|  | deps = [ "../third_party/g711:g711_3p" ] | 
|  | } | 
|  |  | 
|  | rtc_library("g722") { | 
|  | visibility += [ "*" ] | 
|  | poisonous = [ "audio_codecs" ] | 
|  | sources = [ | 
|  | "codecs/g722/audio_decoder_g722.cc", | 
|  | "codecs/g722/audio_decoder_g722.h", | 
|  | "codecs/g722/audio_encoder_g722.cc", | 
|  | "codecs/g722/audio_encoder_g722.h", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | ":legacy_encoded_audio_frame", | 
|  | "../../api:array_view", | 
|  | "../../api/audio_codecs:audio_codecs_api", | 
|  | "../../api/audio_codecs/g722:audio_encoder_g722_config", | 
|  | "../../api/units:time_delta", | 
|  | "../../rtc_base:buffer", | 
|  | "../../rtc_base:checks", | 
|  | "../../rtc_base:safe_conversions", | 
|  | ] | 
|  | public_deps += [ ":g722_c" ]  # no-presubmit-check TODO(webrtc:8603) | 
|  | } | 
|  |  | 
|  | rtc_library("g722_c") { | 
|  | poisonous = [ "audio_codecs" ] | 
|  | sources = [ | 
|  | "codecs/g722/g722_interface.c", | 
|  | "codecs/g722/g722_interface.h", | 
|  | ] | 
|  | deps = [ "../third_party/g722:g722_3p" ] | 
|  | } | 
|  |  | 
|  | rtc_library("isac_vad") { | 
|  | visibility += [ "../audio_processing/vad:*" ] | 
|  | sources = [ | 
|  | "codecs/isac/main/source/filter_functions.c", | 
|  | "codecs/isac/main/source/filter_functions.h", | 
|  | "codecs/isac/main/source/isac_vad.c", | 
|  | "codecs/isac/main/source/isac_vad.h", | 
|  | "codecs/isac/main/source/os_specific_inline.h", | 
|  | "codecs/isac/main/source/pitch_estimator.c", | 
|  | "codecs/isac/main/source/pitch_estimator.h", | 
|  | "codecs/isac/main/source/pitch_filter.c", | 
|  | "codecs/isac/main/source/pitch_filter.h", | 
|  | "codecs/isac/main/source/settings.h", | 
|  | "codecs/isac/main/source/structs.h", | 
|  | ] | 
|  | deps = [ | 
|  | ":isac_bwinfo", | 
|  | "../../rtc_base:compile_assert_c", | 
|  | "../../rtc_base/system:arch", | 
|  | "../../rtc_base/system:ignore_warnings", | 
|  | "../third_party/fft", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("isac_bwinfo") { | 
|  | sources = [ "codecs/isac/bandwidth_info.h" ] | 
|  | deps = [] | 
|  | } | 
|  |  | 
|  | rtc_library("pcm16b") { | 
|  | visibility += [ "*" ] | 
|  | poisonous = [ "audio_codecs" ] | 
|  | sources = [ | 
|  | "codecs/pcm16b/audio_decoder_pcm16b.cc", | 
|  | "codecs/pcm16b/audio_decoder_pcm16b.h", | 
|  | "codecs/pcm16b/audio_encoder_pcm16b.cc", | 
|  | "codecs/pcm16b/audio_encoder_pcm16b.h", | 
|  | "codecs/pcm16b/pcm16b_common.cc", | 
|  | "codecs/pcm16b/pcm16b_common.h", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | ":g711", | 
|  | ":legacy_encoded_audio_frame", | 
|  | "../../api:array_view", | 
|  | "../../api/audio_codecs:audio_codecs_api", | 
|  | "../../rtc_base:buffer", | 
|  | "../../rtc_base:checks", | 
|  | ] | 
|  | public_deps += [ ":pcm16b_c" ]  # no-presubmit-check TODO(webrtc:8603) | 
|  | } | 
|  |  | 
|  | rtc_library("pcm16b_c") { | 
|  | poisonous = [ "audio_codecs" ] | 
|  | sources = [ | 
|  | "codecs/pcm16b/pcm16b.c", | 
|  | "codecs/pcm16b/pcm16b.h", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("audio_coding_opus_common") { | 
|  | sources = [ | 
|  | "codecs/opus/audio_coder_opus_common.cc", | 
|  | "codecs/opus/audio_coder_opus_common.h", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | "../../api:array_view", | 
|  | "../../api/audio_codecs:audio_codecs_api", | 
|  | "../../rtc_base:buffer", | 
|  | "../../rtc_base:checks", | 
|  | "../../rtc_base:stringutils", | 
|  | "//third_party/abseil-cpp/absl/strings:string_view", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("webrtc_opus") { | 
|  | visibility += webrtc_default_visibility | 
|  | poisonous = [ "audio_codecs" ] | 
|  | sources = [ | 
|  | "codecs/opus/audio_decoder_opus.cc", | 
|  | "codecs/opus/audio_decoder_opus.h", | 
|  | "codecs/opus/audio_encoder_opus.cc", | 
|  | "codecs/opus/audio_encoder_opus.h", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | ":audio_coding_opus_common", | 
|  | ":audio_network_adaptor", | 
|  | "../../api:array_view", | 
|  | "../../api:bitrate_allocation", | 
|  | "../../api:field_trials_view", | 
|  | "../../api/audio_codecs:audio_codecs_api", | 
|  | "../../api/audio_codecs/opus:audio_encoder_opus_config", | 
|  | "../../api/environment", | 
|  | "../../api/units:time_delta", | 
|  | "../../common_audio", | 
|  | "../../rtc_base:buffer", | 
|  | "../../rtc_base:checks", | 
|  | "../../rtc_base:logging", | 
|  | "../../rtc_base:macromagic", | 
|  | "../../rtc_base:protobuf_utils", | 
|  | "../../rtc_base:rtc_numerics", | 
|  | "../../rtc_base:safe_conversions", | 
|  | "../../rtc_base:safe_minmax", | 
|  | "../../rtc_base:stringutils", | 
|  | "../../rtc_base:timeutils", | 
|  | "//third_party/abseil-cpp/absl/memory", | 
|  | "//third_party/abseil-cpp/absl/strings", | 
|  | "//third_party/abseil-cpp/absl/strings:string_view", | 
|  | "//third_party/opus", | 
|  | ] | 
|  | public_deps +=  # no-presubmit-check TODO(webrtc:8603) | 
|  | [ ":webrtc_opus_wrapper" ] | 
|  |  | 
|  | defines = audio_codec_defines | 
|  | } | 
|  |  | 
|  | rtc_library("webrtc_multiopus") { | 
|  | visibility += webrtc_default_visibility | 
|  | poisonous = [ "audio_codecs" ] | 
|  | sources = [ | 
|  | "codecs/opus/audio_decoder_multi_channel_opus_impl.cc", | 
|  | "codecs/opus/audio_decoder_multi_channel_opus_impl.h", | 
|  | "codecs/opus/audio_encoder_multi_channel_opus_impl.cc", | 
|  | "codecs/opus/audio_encoder_multi_channel_opus_impl.h", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | ":audio_coding_opus_common", | 
|  | "../../api:array_view", | 
|  | "../../api/audio_codecs:audio_codecs_api", | 
|  | "../../api/audio_codecs/opus:audio_decoder_opus_config", | 
|  | "../../api/audio_codecs/opus:audio_encoder_opus_config", | 
|  | "../../api/units:time_delta", | 
|  | "../../rtc_base:buffer", | 
|  | "../../rtc_base:checks", | 
|  | "../../rtc_base:logging", | 
|  | "../../rtc_base:macromagic", | 
|  | "../../rtc_base:safe_conversions", | 
|  | "../../rtc_base:safe_minmax", | 
|  | "../../rtc_base:stringutils", | 
|  | "//third_party/abseil-cpp/absl/memory", | 
|  | "//third_party/abseil-cpp/absl/strings", | 
|  | ] | 
|  | public_deps +=  # no-presubmit-check TODO(webrtc:8603) | 
|  | [ ":webrtc_opus_wrapper" ] | 
|  |  | 
|  | defines = audio_codec_defines | 
|  | } | 
|  |  | 
|  | rtc_library("webrtc_opus_wrapper") { | 
|  | poisonous = [ "audio_codecs" ] | 
|  | sources = [ | 
|  | "codecs/opus/opus_inst.h", | 
|  | "codecs/opus/opus_interface.cc", | 
|  | "codecs/opus/opus_interface.h", | 
|  | ] | 
|  |  | 
|  | defines = audio_coding_defines | 
|  |  | 
|  | deps = [ | 
|  | "../../api:array_view", | 
|  | "../../rtc_base:checks", | 
|  | "../../rtc_base:ignore_wundef", | 
|  | ] | 
|  |  | 
|  | if (rtc_build_opus) { | 
|  | deps += [ rtc_opus_dir ] | 
|  | public_configs = [ "//third_party/opus:opus_config" ] | 
|  | } else if (build_with_mozilla) { | 
|  | include_dirs = [ getenv("DIST") + "/include/opus" ] | 
|  | } | 
|  | } | 
|  |  | 
|  | if (rtc_enable_protobuf) { | 
|  | proto_library("ana_debug_dump_proto") { | 
|  | visibility += webrtc_default_visibility | 
|  | sources = [ "audio_network_adaptor/debug_dump.proto" ] | 
|  | deps = [ ":ana_config_proto" ] | 
|  | proto_out_dir = "modules/audio_coding/audio_network_adaptor" | 
|  | } | 
|  | proto_library("ana_config_proto") { | 
|  | visibility += [ "*" ] | 
|  | sources = [ "audio_network_adaptor/config.proto" ] | 
|  | proto_out_dir = "modules/audio_coding/audio_network_adaptor" | 
|  | } | 
|  | } | 
|  |  | 
|  | rtc_library("audio_network_adaptor_config") { | 
|  | visibility += webrtc_default_visibility | 
|  | sources = [ | 
|  | "audio_network_adaptor/audio_network_adaptor_config.cc", | 
|  | "audio_network_adaptor/include/audio_network_adaptor_config.h", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("audio_network_adaptor") { | 
|  | visibility += webrtc_default_visibility | 
|  | sources = [ | 
|  | "audio_network_adaptor/audio_network_adaptor_impl.cc", | 
|  | "audio_network_adaptor/audio_network_adaptor_impl.h", | 
|  | "audio_network_adaptor/bitrate_controller.cc", | 
|  | "audio_network_adaptor/bitrate_controller.h", | 
|  | "audio_network_adaptor/channel_controller.cc", | 
|  | "audio_network_adaptor/channel_controller.h", | 
|  | "audio_network_adaptor/controller.cc", | 
|  | "audio_network_adaptor/controller.h", | 
|  | "audio_network_adaptor/controller_manager.cc", | 
|  | "audio_network_adaptor/controller_manager.h", | 
|  | "audio_network_adaptor/debug_dump_writer.cc", | 
|  | "audio_network_adaptor/debug_dump_writer.h", | 
|  | "audio_network_adaptor/dtx_controller.cc", | 
|  | "audio_network_adaptor/dtx_controller.h", | 
|  | "audio_network_adaptor/event_log_writer.cc", | 
|  | "audio_network_adaptor/event_log_writer.h", | 
|  | "audio_network_adaptor/fec_controller_plr_based.cc", | 
|  | "audio_network_adaptor/fec_controller_plr_based.h", | 
|  | "audio_network_adaptor/frame_length_controller.cc", | 
|  | "audio_network_adaptor/frame_length_controller.h", | 
|  | "audio_network_adaptor/frame_length_controller_v2.cc", | 
|  | "audio_network_adaptor/frame_length_controller_v2.h", | 
|  | "audio_network_adaptor/include/audio_network_adaptor.h", | 
|  | "audio_network_adaptor/util/threshold_curve.h", | 
|  | ] | 
|  |  | 
|  | public_deps +=  # no-presubmit-check TODO(webrtc:8603) | 
|  | [ ":audio_network_adaptor_config" ] | 
|  |  | 
|  | deps = [ | 
|  | "../../api:array_view", | 
|  | "../../api/audio_codecs:audio_codecs_api", | 
|  | "../../api/rtc_event_log", | 
|  | "../../common_audio", | 
|  | "../../logging:rtc_event_audio", | 
|  | "../../rtc_base:checks", | 
|  | "../../rtc_base:logging", | 
|  | "../../rtc_base:protobuf_utils", | 
|  | "../../rtc_base:safe_conversions", | 
|  | "../../rtc_base:timeutils", | 
|  | "../../rtc_base/system:file_wrapper", | 
|  | "../../system_wrappers", | 
|  | "../../system_wrappers:field_trial", | 
|  | "//third_party/abseil-cpp/absl/algorithm:container", | 
|  | "//third_party/abseil-cpp/absl/strings:string_view", | 
|  | ] | 
|  |  | 
|  | if (rtc_enable_protobuf) { | 
|  | deps += [ | 
|  | ":ana_config_proto", | 
|  | ":ana_debug_dump_proto", | 
|  | ] | 
|  | } | 
|  | } | 
|  |  | 
|  | rtc_library("neteq") { | 
|  | visibility += webrtc_default_visibility | 
|  | sources = [ | 
|  | "neteq/accelerate.cc", | 
|  | "neteq/accelerate.h", | 
|  | "neteq/audio_multi_vector.cc", | 
|  | "neteq/audio_multi_vector.h", | 
|  | "neteq/audio_vector.cc", | 
|  | "neteq/audio_vector.h", | 
|  | "neteq/background_noise.cc", | 
|  | "neteq/background_noise.h", | 
|  | "neteq/buffer_level_filter.cc", | 
|  | "neteq/buffer_level_filter.h", | 
|  | "neteq/comfort_noise.cc", | 
|  | "neteq/comfort_noise.h", | 
|  | "neteq/cross_correlation.cc", | 
|  | "neteq/cross_correlation.h", | 
|  | "neteq/decision_logic.cc", | 
|  | "neteq/decision_logic.h", | 
|  | "neteq/decoder_database.cc", | 
|  | "neteq/decoder_database.h", | 
|  | "neteq/delay_constraints.cc", | 
|  | "neteq/delay_constraints.h", | 
|  | "neteq/delay_manager.cc", | 
|  | "neteq/delay_manager.h", | 
|  | "neteq/dsp_helper.cc", | 
|  | "neteq/dsp_helper.h", | 
|  | "neteq/dtmf_buffer.cc", | 
|  | "neteq/dtmf_buffer.h", | 
|  | "neteq/dtmf_tone_generator.cc", | 
|  | "neteq/dtmf_tone_generator.h", | 
|  | "neteq/expand.cc", | 
|  | "neteq/expand.h", | 
|  | "neteq/expand_uma_logger.cc", | 
|  | "neteq/expand_uma_logger.h", | 
|  | "neteq/histogram.cc", | 
|  | "neteq/histogram.h", | 
|  | "neteq/merge.cc", | 
|  | "neteq/merge.h", | 
|  | "neteq/nack_tracker.cc", | 
|  | "neteq/nack_tracker.h", | 
|  | "neteq/neteq_impl.cc", | 
|  | "neteq/neteq_impl.h", | 
|  | "neteq/normal.cc", | 
|  | "neteq/normal.h", | 
|  | "neteq/packet.cc", | 
|  | "neteq/packet.h", | 
|  | "neteq/packet_arrival_history.cc", | 
|  | "neteq/packet_arrival_history.h", | 
|  | "neteq/packet_buffer.cc", | 
|  | "neteq/packet_buffer.h", | 
|  | "neteq/preemptive_expand.cc", | 
|  | "neteq/preemptive_expand.h", | 
|  | "neteq/random_vector.cc", | 
|  | "neteq/random_vector.h", | 
|  | "neteq/red_payload_splitter.cc", | 
|  | "neteq/red_payload_splitter.h", | 
|  | "neteq/reorder_optimizer.cc", | 
|  | "neteq/reorder_optimizer.h", | 
|  | "neteq/statistics_calculator.cc", | 
|  | "neteq/statistics_calculator.h", | 
|  | "neteq/sync_buffer.cc", | 
|  | "neteq/sync_buffer.h", | 
|  | "neteq/time_stretch.cc", | 
|  | "neteq/time_stretch.h", | 
|  | "neteq/timestamp_scaler.cc", | 
|  | "neteq/timestamp_scaler.h", | 
|  | "neteq/underrun_optimizer.cc", | 
|  | "neteq/underrun_optimizer.h", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | ":audio_coding_module_typedefs", | 
|  | ":webrtc_cng", | 
|  | "..:module_api_public", | 
|  | "../../api:array_view", | 
|  | "../../api:field_trials_view", | 
|  | "../../api:rtp_headers", | 
|  | "../../api:rtp_packet_info", | 
|  | "../../api:scoped_refptr", | 
|  | "../../api/audio:audio_frame_api", | 
|  | "../../api/audio_codecs:audio_codecs_api", | 
|  | "../../api/environment", | 
|  | "../../api/neteq:neteq_api", | 
|  | "../../api/neteq:neteq_controller_api", | 
|  | "../../api/neteq:tick_timer", | 
|  | "../../api/units:time_delta", | 
|  | "../../api/units:timestamp", | 
|  | "../../common_audio", | 
|  | "../../common_audio:common_audio_c", | 
|  | "../../common_audio:common_audio_cc", | 
|  | "../../rtc_base:buffer", | 
|  | "../../rtc_base:checks", | 
|  | "../../rtc_base:event_tracer", | 
|  | "../../rtc_base:gtest_prod", | 
|  | "../../rtc_base:logging", | 
|  | "../../rtc_base:macromagic", | 
|  | "../../rtc_base:rtc_numerics", | 
|  | "../../rtc_base:safe_conversions", | 
|  | "../../rtc_base:safe_minmax", | 
|  | "../../rtc_base:sanitizer", | 
|  | "../../rtc_base/experiments:field_trial_parser", | 
|  | "../../rtc_base/synchronization:mutex", | 
|  | "../../system_wrappers", | 
|  | "../../system_wrappers:metrics", | 
|  | "//third_party/abseil-cpp/absl/strings", | 
|  | "//third_party/abseil-cpp/absl/strings:string_view", | 
|  | ] | 
|  | } | 
|  |  | 
|  | # Although providing only test support, this target must be outside of the | 
|  | # rtc_include_tests conditional. The reason is that it supports fuzzer tests | 
|  | # that ultimately are built and run as a part of the Chromium ecosystem, which | 
|  | # does not set the rtc_include_tests flag. | 
|  | rtc_library("neteq_tools_minimal") { | 
|  | visibility += webrtc_default_visibility | 
|  | sources = [ | 
|  | "neteq/tools/audio_sink.cc", | 
|  | "neteq/tools/audio_sink.h", | 
|  | "neteq/tools/encode_neteq_input.cc", | 
|  | "neteq/tools/encode_neteq_input.h", | 
|  | "neteq/tools/neteq_input.cc", | 
|  | "neteq/tools/neteq_input.h", | 
|  | "neteq/tools/neteq_test.cc", | 
|  | "neteq/tools/neteq_test.h", | 
|  | "neteq/tools/packet.cc", | 
|  | "neteq/tools/packet.h", | 
|  | "neteq/tools/packet_source.cc", | 
|  | "neteq/tools/packet_source.h", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | ":neteq", | 
|  | "../../api:array_view", | 
|  | "../../api:field_trials", | 
|  | "../../api:neteq_simulator_api", | 
|  | "../../api:rtp_headers", | 
|  | "../../api:scoped_refptr", | 
|  | "../../api/audio:audio_frame_api", | 
|  | "../../api/audio_codecs:audio_codecs_api", | 
|  | "../../api/environment", | 
|  | "../../api/environment:environment_factory", | 
|  | "../../api/neteq:custom_neteq_factory", | 
|  | "../../api/neteq:default_neteq_controller_factory", | 
|  | "../../api/neteq:default_neteq_factory", | 
|  | "../../api/neteq:neteq_api", | 
|  | "../../api/units:timestamp", | 
|  | "../../rtc_base:buffer", | 
|  | "../../rtc_base:checks", | 
|  | "../../rtc_base:copy_on_write_buffer", | 
|  | "../../rtc_base:safe_conversions", | 
|  | "../../rtc_base:stringutils", | 
|  | "../../system_wrappers", | 
|  | "../rtp_rtcp:rtp_rtcp_format", | 
|  | "//third_party/abseil-cpp/absl/strings:string_view", | 
|  | ] | 
|  | defines = audio_codec_defines | 
|  | } | 
|  |  | 
|  | rtc_library("neteq_test_tools") { | 
|  | visibility += webrtc_default_visibility | 
|  | testonly = true | 
|  | sources = [ | 
|  | "neteq/tools/audio_checksum.h", | 
|  | "neteq/tools/audio_loop.cc", | 
|  | "neteq/tools/audio_loop.h", | 
|  | "neteq/tools/constant_pcm_packet_source.cc", | 
|  | "neteq/tools/constant_pcm_packet_source.h", | 
|  | "neteq/tools/initial_packet_inserter_neteq_input.cc", | 
|  | "neteq/tools/initial_packet_inserter_neteq_input.h", | 
|  | "neteq/tools/neteq_rtp_dump_input.cc", | 
|  | "neteq/tools/neteq_rtp_dump_input.h", | 
|  | "neteq/tools/output_audio_file.h", | 
|  | "neteq/tools/output_wav_file.h", | 
|  | "neteq/tools/rtp_file_source.cc", | 
|  | "neteq/tools/rtp_file_source.h", | 
|  | "neteq/tools/rtp_generator.cc", | 
|  | "neteq/tools/rtp_generator.h", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | ":neteq_tools", | 
|  | ":neteq_tools_minimal", | 
|  | ":pcm16b", | 
|  | "../../api:array_view", | 
|  | "../../api:rtp_headers", | 
|  | "../../common_audio", | 
|  | "../../rtc_base:buffer", | 
|  | "../../rtc_base:checks", | 
|  | "../../rtc_base:copy_on_write_buffer", | 
|  | "../../rtc_base:digest", | 
|  | "../../rtc_base:stringutils", | 
|  | "../../rtc_base/system:arch", | 
|  | "../../test:rtp_test_utils", | 
|  | "../rtp_rtcp:rtp_rtcp_format", | 
|  | "//third_party/abseil-cpp/absl/strings:string_view", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("neteq_tools") { | 
|  | visibility += webrtc_default_visibility | 
|  | sources = [ | 
|  | "neteq/tools/fake_decode_from_file.cc", | 
|  | "neteq/tools/fake_decode_from_file.h", | 
|  | "neteq/tools/neteq_delay_analyzer.cc", | 
|  | "neteq/tools/neteq_delay_analyzer.h", | 
|  | "neteq/tools/neteq_replacement_input.cc", | 
|  | "neteq/tools/neteq_replacement_input.h", | 
|  | "neteq/tools/neteq_stats_getter.cc", | 
|  | "neteq/tools/neteq_stats_getter.h", | 
|  | "neteq/tools/neteq_stats_plotter.cc", | 
|  | "neteq/tools/neteq_stats_plotter.h", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | ":neteq_input_audio_tools", | 
|  | ":neteq_tools_minimal", | 
|  | "..:module_api_public", | 
|  | "../../api:array_view", | 
|  | "../../api:rtp_headers", | 
|  | "../../api:rtp_packet_info", | 
|  | "../../api/audio:audio_frame_api", | 
|  | "../../api/audio_codecs:audio_codecs_api", | 
|  | "../../api/neteq:neteq_api", | 
|  | "../../logging:rtc_event_audio", | 
|  | "../../logging:rtc_event_rtp_rtcp", | 
|  | "../../rtc_base:buffer", | 
|  | "../../rtc_base:checks", | 
|  | "../../rtc_base:rtc_numerics", | 
|  | "../../rtc_base:safe_conversions", | 
|  | "../../rtc_base:stringutils", | 
|  | "../../rtc_base:timeutils", | 
|  | "../rtp_rtcp", | 
|  | "../rtp_rtcp:rtp_rtcp_format", | 
|  | "//third_party/abseil-cpp/absl/strings:string_view", | 
|  | ] | 
|  |  | 
|  | if (rtc_enable_protobuf) { | 
|  | sources += [ | 
|  | "neteq/tools/neteq_event_log_input.cc", | 
|  | "neteq/tools/neteq_event_log_input.h", | 
|  | ] | 
|  | deps += [ "../../logging:rtc_event_log_parser" ] | 
|  | public_deps +=  # no-presubmit-check TODO(webrtc:8603) | 
|  | [ "../../logging:rtc_event_log_proto" ] | 
|  | } | 
|  | } | 
|  |  | 
|  | rtc_library("neteq_input_audio_tools") { | 
|  | visibility += webrtc_default_visibility | 
|  | sources = [ | 
|  | "neteq/tools/input_audio_file.cc", | 
|  | "neteq/tools/input_audio_file.h", | 
|  | "neteq/tools/resample_input_audio_file.cc", | 
|  | "neteq/tools/resample_input_audio_file.h", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | "../../common_audio", | 
|  | "../../rtc_base:checks", | 
|  | "//third_party/abseil-cpp/absl/strings:string_view", | 
|  | ] | 
|  | } | 
|  |  | 
|  | if (rtc_enable_protobuf) { | 
|  | # Only used for test purpose. Since we want to use it from chromium | 
|  | # (see audio_coding_modules_tests_shared below), we cannot guard it | 
|  | # under rtc_include_tests. | 
|  | proto_library("neteq_unittest_proto") { | 
|  | testonly = true | 
|  | sources = [ "neteq/neteq_unittest.proto" ] | 
|  | proto_out_dir = "modules/audio_coding/neteq" | 
|  | } | 
|  | } | 
|  |  | 
|  | # Allow to re-use some test classes from chromium. | 
|  | rtc_library("audio_coding_modules_tests_shared") { | 
|  | testonly = true | 
|  | visibility = [] | 
|  | visibility = [ "*" ] | 
|  |  | 
|  | sources = [ | 
|  | "neteq/test/neteq_decoding_test.cc", | 
|  | "neteq/test/neteq_decoding_test.h", | 
|  | "neteq/test/result_sink.cc", | 
|  | "neteq/test/result_sink.h", | 
|  | "test/PCMFile.cc", | 
|  | "test/PCMFile.h", | 
|  | "test/TestStereo.cc", | 
|  | "test/TestStereo.h", | 
|  | "test/opus_test.cc", | 
|  | "test/opus_test.h", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | ":audio_coding", | 
|  | ":audio_coding_module_typedefs", | 
|  | ":neteq_test_tools", | 
|  | ":neteq_tools_minimal", | 
|  | ":webrtc_opus_wrapper", | 
|  | "..:module_api", | 
|  | "../../api:array_view", | 
|  | "../../api:rtp_headers", | 
|  | "../../api:rtp_parameters", | 
|  | "../../api/audio:audio_frame_api", | 
|  | "../../api/audio_codecs:audio_codecs_api", | 
|  | "../../api/audio_codecs:builtin_audio_decoder_factory", | 
|  | "../../api/audio_codecs:builtin_audio_encoder_factory", | 
|  | "../../api/environment", | 
|  | "../../api/environment:environment_factory", | 
|  | "../../api/neteq:default_neteq_factory", | 
|  | "../../api/neteq:neteq_api", | 
|  | "../../api/units:timestamp", | 
|  | "../../rtc_base:checks", | 
|  | "../../rtc_base:digest", | 
|  | "../../rtc_base:stringutils", | 
|  | "../../system_wrappers", | 
|  | "../../test:fileutils", | 
|  | "../../test:test_support", | 
|  | "//testing/gtest", | 
|  | "//third_party/abseil-cpp/absl/strings", | 
|  | "//third_party/abseil-cpp/absl/strings:string_view", | 
|  | ] | 
|  | defines = audio_coding_defines | 
|  |  | 
|  | if (rtc_enable_protobuf) { | 
|  | defines += [ "WEBRTC_NETEQ_UNITTEST_BITEXACT" ] | 
|  | deps += [ ":neteq_unittest_proto" ] | 
|  | } | 
|  | } | 
|  |  | 
|  | if (rtc_include_tests) { | 
|  | audio_coding_deps = [ | 
|  | ":audio_encoder_cng", | 
|  | ":g711", | 
|  | ":g722", | 
|  | ":pcm16b", | 
|  | "../../common_audio", | 
|  | "../../system_wrappers", | 
|  | ] | 
|  | if (rtc_include_opus) { | 
|  | audio_coding_deps += [ ":webrtc_opus" ] | 
|  | } | 
|  | if (!build_with_mozilla && !build_with_chromium) { | 
|  | audio_coding_deps += [ ":red" ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("mocks") { | 
|  | testonly = true | 
|  | sources = [ | 
|  | "audio_network_adaptor/mock/mock_audio_network_adaptor.h", | 
|  | "audio_network_adaptor/mock/mock_controller.h", | 
|  | "audio_network_adaptor/mock/mock_controller_manager.h", | 
|  | "audio_network_adaptor/mock/mock_debug_dump_writer.h", | 
|  | ] | 
|  | deps = [ | 
|  | ":audio_network_adaptor", | 
|  | "../../api/audio_codecs:audio_codecs_api", | 
|  | "../../test:test_support", | 
|  | ] | 
|  | } | 
|  |  | 
|  | if (!build_with_chromium) { | 
|  | group("audio_coding_tests") { | 
|  | visibility += webrtc_default_visibility | 
|  | testonly = true | 
|  | public_deps = [  # no-presubmit-check TODO(webrtc:8603) | 
|  | ":acm_receive_test", | 
|  | ":acm_send_test", | 
|  | ":audio_codec_speed_tests", | 
|  | ":audio_decoder_unittests", | 
|  | ":audio_decoder_unittests", | 
|  | ":g711_test", | 
|  | ":g722_test", | 
|  | ":neteq_opus_quality_test", | 
|  | ":neteq_pcm16b_quality_test", | 
|  | ":neteq_pcmu_quality_test", | 
|  | ":neteq_speed_test", | 
|  | ":rtp_analyze", | 
|  | ":rtp_encode", | 
|  | ":rtp_jitter", | 
|  | ":rtpcat", | 
|  | ":webrtc_opus_fec_test", | 
|  | ] | 
|  | if (rtc_enable_protobuf) { | 
|  | public_deps +=  # no-presubmit-check TODO(webrtc:8603) | 
|  | [ ":neteq_rtpplay" ] | 
|  | } | 
|  | } | 
|  | } | 
|  |  | 
|  | rtc_library("audio_coding_modules_tests") { | 
|  | testonly = true | 
|  | visibility += webrtc_default_visibility | 
|  |  | 
|  | sources = [ | 
|  | "test/Channel.cc", | 
|  | "test/Channel.h", | 
|  | "test/EncodeDecodeTest.cc", | 
|  | "test/EncodeDecodeTest.h", | 
|  | "test/PacketLossTest.cc", | 
|  | "test/PacketLossTest.h", | 
|  | "test/RTPFile.cc", | 
|  | "test/RTPFile.h", | 
|  | "test/TestAllCodecs.cc", | 
|  | "test/TestAllCodecs.h", | 
|  | "test/TestRedFec.cc", | 
|  | "test/TestRedFec.h", | 
|  | "test/TestVADDTX.cc", | 
|  | "test/TestVADDTX.h", | 
|  | "test/Tester.cc", | 
|  | "test/target_delay_unittest.cc", | 
|  | ] | 
|  | deps = [ | 
|  | ":audio_coding", | 
|  | ":audio_coding_module_typedefs", | 
|  | ":audio_coding_modules_tests_shared", | 
|  | ":audio_encoder_cng", | 
|  | ":pcm16b_c", | 
|  | ":red", | 
|  | ":webrtc_opus_wrapper", | 
|  | "..:module_api", | 
|  | "../../api:array_view", | 
|  | "../../api:rtp_headers", | 
|  | "../../api:scoped_refptr", | 
|  | "../../api/audio:audio_frame_api", | 
|  | "../../api/audio_codecs:audio_codecs_api", | 
|  | "../../api/audio_codecs:builtin_audio_decoder_factory", | 
|  | "../../api/audio_codecs:builtin_audio_encoder_factory", | 
|  | "../../api/audio_codecs/L16:audio_decoder_L16", | 
|  | "../../api/audio_codecs/L16:audio_encoder_L16", | 
|  | "../../api/audio_codecs/g711:audio_decoder_g711", | 
|  | "../../api/audio_codecs/g711:audio_encoder_g711", | 
|  | "../../api/audio_codecs/g722:audio_decoder_g722", | 
|  | "../../api/audio_codecs/g722:audio_encoder_g722", | 
|  | "../../api/audio_codecs/opus:audio_decoder_opus", | 
|  | "../../api/audio_codecs/opus:audio_encoder_opus", | 
|  | "../../api/environment", | 
|  | "../../api/environment:environment_factory", | 
|  | "../../api/neteq:default_neteq_factory", | 
|  | "../../api/neteq:neteq_api", | 
|  | "../../api/units:timestamp", | 
|  | "../../common_audio", | 
|  | "../../rtc_base:checks", | 
|  | "../../rtc_base:ip_address", | 
|  | "../../rtc_base:logging", | 
|  | "../../rtc_base:macromagic", | 
|  | "../../rtc_base:stringutils", | 
|  | "../../rtc_base:timeutils", | 
|  | "../../rtc_base/synchronization:mutex", | 
|  | "../../test:fileutils", | 
|  | "../../test:scoped_key_value_config", | 
|  | "../../test:test_support", | 
|  | "//third_party/abseil-cpp/absl/strings", | 
|  | "//third_party/abseil-cpp/absl/strings:string_view", | 
|  | ] | 
|  | defines = audio_coding_defines | 
|  | } | 
|  |  | 
|  | rtc_library("audio_coding_perf_tests") { | 
|  | testonly = true | 
|  | visibility += webrtc_default_visibility | 
|  |  | 
|  | sources = [ | 
|  | "codecs/opus/opus_complexity_unittest.cc", | 
|  | "neteq/test/neteq_performance_unittest.cc", | 
|  | ] | 
|  | deps = [ | 
|  | ":neteq_test_support", | 
|  | ":neteq_test_tools", | 
|  | "../../api/audio_codecs:audio_codecs_api", | 
|  | "../../api/audio_codecs/opus:audio_encoder_opus", | 
|  | "../../api/audio_codecs/opus:audio_encoder_opus_config", | 
|  | "../../api/environment", | 
|  | "../../api/environment:environment_factory", | 
|  | "../../api/test/metrics:global_metrics_logger_and_exporter", | 
|  | "../../api/test/metrics:metric", | 
|  | "../../rtc_base:buffer", | 
|  | "../../rtc_base:macromagic", | 
|  | "../../rtc_base:timeutils", | 
|  | "../../system_wrappers", | 
|  | "../../test:fileutils", | 
|  | "../../test:test_flags", | 
|  | "../../test:test_support", | 
|  | "//third_party/abseil-cpp/absl/flags:flag", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("acm_receive_test") { | 
|  | testonly = true | 
|  | sources = [ | 
|  | "acm2/acm_receive_test.cc", | 
|  | "acm2/acm_receive_test.h", | 
|  | ] | 
|  |  | 
|  | defines = audio_coding_defines | 
|  |  | 
|  | deps = [ | 
|  | ":audio_coding", | 
|  | ":neteq_tools", | 
|  | ":neteq_tools_minimal", | 
|  | "../../api:array_view", | 
|  | "../../api:scoped_refptr", | 
|  | "../../api/audio_codecs:audio_codecs_api", | 
|  | "../../api/audio_codecs:builtin_audio_decoder_factory", | 
|  | "../../api/environment:environment_factory", | 
|  | "../../api/neteq:default_neteq_factory", | 
|  | "../../api/neteq:neteq_api", | 
|  | "../../test:test_support", | 
|  | "//testing/gtest", | 
|  | ] | 
|  |  | 
|  | deps += audio_coding_deps | 
|  | } | 
|  |  | 
|  | rtc_library("acm_send_test") { | 
|  | testonly = true | 
|  | sources = [ | 
|  | "acm2/acm_send_test.cc", | 
|  | "acm2/acm_send_test.h", | 
|  | ] | 
|  |  | 
|  | defines = audio_coding_defines | 
|  |  | 
|  | deps = [ | 
|  | ":audio_coding", | 
|  | ":audio_coding_module_typedefs", | 
|  | ":neteq_input_audio_tools", | 
|  | ":neteq_tools", | 
|  | ":neteq_tools_minimal", | 
|  | "../../api/audio:audio_frame_api", | 
|  | "../../api/audio_codecs:audio_codecs_api", | 
|  | "../../api/audio_codecs:builtin_audio_decoder_factory", | 
|  | "../../api/audio_codecs:builtin_audio_encoder_factory", | 
|  | "../../api/environment", | 
|  | "../../api/environment:environment_factory", | 
|  | "../../rtc_base:checks", | 
|  | "../../rtc_base:copy_on_write_buffer", | 
|  | "../../rtc_base:stringutils", | 
|  | "../../test:test_support", | 
|  | "//testing/gtest", | 
|  | "//third_party/abseil-cpp/absl/strings", | 
|  | "//third_party/abseil-cpp/absl/strings:string_view", | 
|  | ] | 
|  | deps += audio_coding_deps | 
|  | } | 
|  |  | 
|  | if (!build_with_chromium) { | 
|  | audio_decoder_unittests_resources = | 
|  | [ "../../resources/audio_coding/testfile32kHz.pcm" ] | 
|  |  | 
|  | if (is_ios) { | 
|  | bundle_data("audio_decoder_unittests_bundle_data") { | 
|  | testonly = true | 
|  | sources = audio_decoder_unittests_resources | 
|  | outputs = [ "{{bundle_resources_dir}}/{{source_file_part}}" ] | 
|  | } | 
|  | } | 
|  |  | 
|  | rtc_test("audio_decoder_unittests") { | 
|  | testonly = true | 
|  | sources = [ "neteq/audio_decoder_unittest.cc" ] | 
|  |  | 
|  | defines = neteq_defines | 
|  |  | 
|  | deps = [ | 
|  | ":neteq", | 
|  | ":neteq_input_audio_tools", | 
|  | ":neteq_tools", | 
|  | "../../api:array_view", | 
|  | "../../api/audio_codecs:audio_codecs_api", | 
|  | "../../api/audio_codecs/g722:audio_encoder_g722_config", | 
|  | "../../api/audio_codecs/opus:audio_encoder_opus", | 
|  | "../../api/audio_codecs/opus:audio_encoder_opus_config", | 
|  | "../../api/environment:environment_factory", | 
|  | "../../common_audio", | 
|  | "../../rtc_base:buffer", | 
|  | "../../rtc_base:checks", | 
|  | "../../rtc_base/system:arch", | 
|  | "../../test:explicit_key_value_config", | 
|  | "../../test:fileutils", | 
|  | "../../test:test_main", | 
|  | "../../test:test_support", | 
|  | "//testing/gtest", | 
|  | ] + audio_coding_deps | 
|  |  | 
|  | data = audio_decoder_unittests_resources | 
|  |  | 
|  | if (is_android) { | 
|  | use_default_launcher = false | 
|  | deps += [ "//build/android/gtest_apk:native_test_instrumentation_test_runner_java" ] | 
|  | shard_timeout = 900 | 
|  | } | 
|  | if (is_ios) { | 
|  | deps += [ ":audio_decoder_unittests_bundle_data" ] | 
|  | } | 
|  | } | 
|  | } | 
|  |  | 
|  | if (rtc_enable_protobuf) { | 
|  | rtc_library("neteq_test_factory") { | 
|  | testonly = true | 
|  | visibility += webrtc_default_visibility | 
|  | defines = audio_codec_defines | 
|  | deps = [ | 
|  | ":neteq", | 
|  | ":neteq_input_audio_tools", | 
|  | ":neteq_test_tools", | 
|  | ":neteq_tools", | 
|  | ":neteq_tools_minimal", | 
|  | "../../api:make_ref_counted", | 
|  | "../../api:rtp_headers", | 
|  | "../../api:scoped_refptr", | 
|  | "../../api/audio_codecs:audio_codecs_api", | 
|  | "../../api/audio_codecs:builtin_audio_decoder_factory", | 
|  | "../../api/environment:environment", | 
|  | "../../api/neteq:neteq_api", | 
|  | "../../logging:rtc_event_log_parser", | 
|  | "../../rtc_base:checks", | 
|  | "../../rtc_base:refcount", | 
|  | "../../test:audio_test_common", | 
|  | "../../test:field_trial", | 
|  | "../../test:fileutils", | 
|  | "../../test:test_support", | 
|  | "../rtp_rtcp:rtp_rtcp_format", | 
|  | "//third_party/abseil-cpp/absl/strings:string_view", | 
|  | ] | 
|  | sources = [ | 
|  | "neteq/tools/neteq_test_factory.cc", | 
|  | "neteq/tools/neteq_test_factory.h", | 
|  | ] | 
|  | } | 
|  | } | 
|  |  | 
|  | if (rtc_enable_protobuf && !build_with_chromium) { | 
|  | rtc_executable("neteq_rtpplay") { | 
|  | testonly = true | 
|  | visibility += [ "*" ] | 
|  | defines = [] | 
|  | deps = [ | 
|  | ":neteq_test_factory", | 
|  | ":neteq_test_tools", | 
|  | ":neteq_tools_minimal", | 
|  | "../../rtc_base:checks", | 
|  | "../../rtc_base:stringutils", | 
|  | "../../system_wrappers:field_trial", | 
|  | "../../test:field_trial", | 
|  | "//third_party/abseil-cpp/absl/flags:flag", | 
|  | "//third_party/abseil-cpp/absl/flags:parse", | 
|  | "//third_party/abseil-cpp/absl/strings", | 
|  | ] | 
|  | sources = [ "neteq/tools/neteq_rtpplay.cc" ] | 
|  | } | 
|  | } | 
|  |  | 
|  | if (!build_with_chromium) { | 
|  | audio_codec_speed_tests_resources = [ | 
|  | "//resources/audio_coding/music_stereo_48kHz.pcm", | 
|  | "//resources/audio_coding/speech_mono_16kHz.pcm", | 
|  | "//resources/audio_coding/speech_mono_32_48kHz.pcm", | 
|  | ] | 
|  |  | 
|  | if (is_ios) { | 
|  | bundle_data("audio_codec_speed_tests_data") { | 
|  | testonly = true | 
|  | sources = audio_codec_speed_tests_resources | 
|  | outputs = [ "{{bundle_resources_dir}}/{{source_file_part}}" ] | 
|  | } | 
|  | } | 
|  |  | 
|  | rtc_test("audio_codec_speed_tests") { | 
|  | testonly = true | 
|  | defines = [] | 
|  | deps = [ | 
|  | "../../rtc_base:macromagic", | 
|  | "../../test:fileutils", | 
|  | "//third_party/opus", | 
|  | ] | 
|  | sources = [ | 
|  | "codecs/opus/opus_speed_test.cc", | 
|  | "codecs/tools/audio_codec_speed_test.cc", | 
|  | "codecs/tools/audio_codec_speed_test.h", | 
|  | ] | 
|  |  | 
|  | data = audio_codec_speed_tests_resources | 
|  |  | 
|  | if (is_android) { | 
|  | use_default_launcher = false | 
|  | deps += [ "//build/android/gtest_apk:native_test_instrumentation_test_runner_java" ] | 
|  | shard_timeout = 900 | 
|  | } | 
|  |  | 
|  | if (is_ios) { | 
|  | deps += [ ":audio_codec_speed_tests_data" ] | 
|  | } | 
|  |  | 
|  | deps += [ | 
|  | ":webrtc_opus", | 
|  | "../../rtc_base:checks", | 
|  | "../../test:test_main", | 
|  | "../../test:test_support", | 
|  | "../audio_processing", | 
|  | "//testing/gtest", | 
|  | ] | 
|  | } | 
|  | } | 
|  |  | 
|  | rtc_library("neteq_test_support") { | 
|  | testonly = true | 
|  | sources = [ | 
|  | "neteq/tools/neteq_performance_test.cc", | 
|  | "neteq/tools/neteq_performance_test.h", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | ":neteq", | 
|  | ":neteq_test_tools", | 
|  | ":pcm16b", | 
|  | "../../api:rtp_headers", | 
|  | "../../api/audio:audio_frame_api", | 
|  | "../../api/audio_codecs:audio_codecs_api", | 
|  | "../../api/audio_codecs:builtin_audio_decoder_factory", | 
|  | "../../api/environment", | 
|  | "../../api/environment:environment_factory", | 
|  | "../../api/neteq:default_neteq_factory", | 
|  | "../../api/neteq:neteq_api", | 
|  | "../../api/units:timestamp", | 
|  | "../../rtc_base:checks", | 
|  | "../../system_wrappers", | 
|  | "../../test:fileutils", | 
|  | "../../test:test_support", | 
|  | "//testing/gtest", | 
|  | ] | 
|  | } | 
|  |  | 
|  | if (!build_with_chromium) { | 
|  | rtc_library("neteq_quality_test_support") { | 
|  | testonly = true | 
|  | sources = [ | 
|  | "neteq/tools/neteq_quality_test.cc", | 
|  | "neteq/tools/neteq_quality_test.h", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | ":neteq", | 
|  | ":neteq_input_audio_tools", | 
|  | ":neteq_test_tools", | 
|  | ":neteq_tools_minimal", | 
|  | "../../api:array_view", | 
|  | "../../api:rtp_headers", | 
|  | "../../api:scoped_refptr", | 
|  | "../../api/audio_codecs:audio_codecs_api", | 
|  | "../../api/audio_codecs:builtin_audio_decoder_factory", | 
|  | "../../api/environment:environment_factory", | 
|  | "../../api/neteq:default_neteq_factory", | 
|  | "../../api/neteq:neteq_api", | 
|  | "../../api/units:timestamp", | 
|  | "../../rtc_base:buffer", | 
|  | "../../rtc_base:checks", | 
|  | "../../rtc_base:stringutils", | 
|  | "../../system_wrappers", | 
|  | "../../test:fileutils", | 
|  | "../../test:test_support", | 
|  | "//testing/gtest", | 
|  | "//third_party/abseil-cpp/absl/flags:flag", | 
|  | "//third_party/abseil-cpp/absl/strings:string_view", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_executable("rtp_encode") { | 
|  | testonly = true | 
|  |  | 
|  | deps = [ | 
|  | ":audio_coding", | 
|  | ":audio_coding_module_typedefs", | 
|  | ":audio_encoder_cng", | 
|  | ":neteq_input_audio_tools", | 
|  | "../../api/audio:audio_frame_api", | 
|  | "../../api/audio_codecs/L16:audio_encoder_L16", | 
|  | "../../api/audio_codecs/g711:audio_encoder_g711", | 
|  | "../../api/audio_codecs/g722:audio_encoder_g722", | 
|  | "../../api/audio_codecs/opus:audio_encoder_opus", | 
|  | "../../api/environment:environment_factory", | 
|  | "../../rtc_base:checks", | 
|  | "../../rtc_base:ip_address", | 
|  | "../../rtc_base:safe_conversions", | 
|  | "//third_party/abseil-cpp/absl/flags:flag", | 
|  | "//third_party/abseil-cpp/absl/flags:parse", | 
|  | ] | 
|  |  | 
|  | deps += audio_coding_deps | 
|  |  | 
|  | sources = [ "neteq/tools/rtp_encode.cc" ] | 
|  |  | 
|  | defines = audio_coding_defines | 
|  | } | 
|  |  | 
|  | rtc_executable("rtp_jitter") { | 
|  | testonly = true | 
|  |  | 
|  | deps = [ | 
|  | "../../api:array_view", | 
|  | "../../rtc_base:buffer", | 
|  | "../../rtc_base:checks", | 
|  | "../rtp_rtcp:rtp_rtcp_format", | 
|  | ] | 
|  |  | 
|  | deps += audio_coding_deps | 
|  |  | 
|  | sources = [ "neteq/tools/rtp_jitter.cc" ] | 
|  |  | 
|  | defines = audio_coding_defines | 
|  | } | 
|  |  | 
|  | rtc_executable("rtpcat") { | 
|  | testonly = true | 
|  |  | 
|  | sources = [ "neteq/tools/rtpcat.cc" ] | 
|  |  | 
|  | deps = [ | 
|  | "../../rtc_base:checks", | 
|  | "../../test:rtp_test_utils", | 
|  | "//testing/gtest", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_executable("rtp_analyze") { | 
|  | testonly = true | 
|  |  | 
|  | sources = [ "neteq/tools/rtp_analyze.cc" ] | 
|  |  | 
|  | deps = [ | 
|  | ":neteq", | 
|  | ":neteq_test_tools", | 
|  | ":neteq_tools_minimal", | 
|  | ":pcm16b", | 
|  | "../../api:rtp_headers", | 
|  | "../../rtc_base:checks", | 
|  | "../rtp_rtcp:rtp_rtcp_format", | 
|  | "//testing/gtest", | 
|  | "//third_party/abseil-cpp/absl/flags:flag", | 
|  | "//third_party/abseil-cpp/absl/flags:parse", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_executable("neteq_opus_quality_test") { | 
|  | testonly = true | 
|  |  | 
|  | sources = [ "neteq/test/neteq_opus_quality_test.cc" ] | 
|  |  | 
|  | deps = [ | 
|  | ":neteq", | 
|  | ":neteq_quality_test_support", | 
|  | ":neteq_tools", | 
|  | ":webrtc_opus", | 
|  | "../../api:array_view", | 
|  | "../../api:rtp_parameters", | 
|  | "../../api/audio_codecs:audio_codecs_api", | 
|  | "../../rtc_base:buffer", | 
|  | "../../rtc_base:checks", | 
|  | "../../test:test_main", | 
|  | "../../test:test_support", | 
|  | "//testing/gtest", | 
|  | "//third_party/abseil-cpp/absl/flags:flag", | 
|  | "//third_party/opus", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_executable("neteq_speed_test") { | 
|  | testonly = true | 
|  |  | 
|  | sources = [ "neteq/test/neteq_speed_test.cc" ] | 
|  |  | 
|  | deps = [ | 
|  | ":neteq", | 
|  | ":neteq_test_support", | 
|  | "../../rtc_base:checks", | 
|  | "../../test:test_support", | 
|  | "//third_party/abseil-cpp/absl/flags:flag", | 
|  | "//third_party/abseil-cpp/absl/flags:parse", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_executable("neteq_pcmu_quality_test") { | 
|  | testonly = true | 
|  |  | 
|  | sources = [ "neteq/test/neteq_pcmu_quality_test.cc" ] | 
|  |  | 
|  | deps = [ | 
|  | ":g711", | 
|  | ":neteq", | 
|  | ":neteq_quality_test_support", | 
|  | "../../api:array_view", | 
|  | "../../api/audio_codecs:audio_codecs_api", | 
|  | "../../rtc_base:buffer", | 
|  | "../../rtc_base:checks", | 
|  | "../../rtc_base:safe_conversions", | 
|  | "../../test:fileutils", | 
|  | "../../test:test_main", | 
|  | "../../test:test_support", | 
|  | "//testing/gtest", | 
|  | "//third_party/abseil-cpp/absl/flags:flag", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_executable("neteq_pcm16b_quality_test") { | 
|  | testonly = true | 
|  |  | 
|  | sources = [ "neteq/test/neteq_pcm16b_quality_test.cc" ] | 
|  |  | 
|  | deps = [ | 
|  | ":neteq", | 
|  | ":neteq_quality_test_support", | 
|  | ":pcm16b", | 
|  | "../../api:array_view", | 
|  | "../../api/audio_codecs:audio_codecs_api", | 
|  | "../../rtc_base:buffer", | 
|  | "../../rtc_base:checks", | 
|  | "../../rtc_base:safe_conversions", | 
|  | "../../test:fileutils", | 
|  | "../../test:test_main", | 
|  | "../../test:test_support", | 
|  | "//testing/gtest", | 
|  | "//third_party/abseil-cpp/absl/flags:flag", | 
|  | ] | 
|  | } | 
|  | } | 
|  |  | 
|  | rtc_executable("g711_test") { | 
|  | testonly = true | 
|  |  | 
|  | sources = [ "codecs/g711/test/testG711.cc" ] | 
|  |  | 
|  | deps = [ ":g711" ] | 
|  | } | 
|  |  | 
|  | rtc_executable("g722_test") { | 
|  | testonly = true | 
|  |  | 
|  | sources = [ "codecs/g722/test/testG722.cc" ] | 
|  |  | 
|  | deps = [ ":g722" ] | 
|  | } | 
|  |  | 
|  | if (!build_with_chromium) { | 
|  | rtc_executable("webrtc_opus_fec_test") { | 
|  | testonly = true | 
|  |  | 
|  | sources = [ "codecs/opus/opus_fec_test.cc" ] | 
|  |  | 
|  | deps = [ | 
|  | ":webrtc_opus", | 
|  | "../../common_audio", | 
|  | "../../rtc_base:macromagic", | 
|  | "../../test:fileutils", | 
|  | "../../test:test_main", | 
|  | "../../test:test_support", | 
|  | "//testing/gtest", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("audio_coding_unittests") { | 
|  | testonly = true | 
|  | visibility += webrtc_default_visibility | 
|  |  | 
|  | sources = [ | 
|  | "acm2/acm_remixing_unittest.cc", | 
|  | "acm2/audio_coding_module_unittest.cc", | 
|  | "acm2/call_statistics_unittest.cc", | 
|  | "audio_network_adaptor/audio_network_adaptor_impl_unittest.cc", | 
|  | "audio_network_adaptor/bitrate_controller_unittest.cc", | 
|  | "audio_network_adaptor/channel_controller_unittest.cc", | 
|  | "audio_network_adaptor/controller_manager_unittest.cc", | 
|  | "audio_network_adaptor/dtx_controller_unittest.cc", | 
|  | "audio_network_adaptor/event_log_writer_unittest.cc", | 
|  | "audio_network_adaptor/fec_controller_plr_based_unittest.cc", | 
|  | "audio_network_adaptor/frame_length_controller_unittest.cc", | 
|  | "audio_network_adaptor/frame_length_controller_v2_unittest.cc", | 
|  | "audio_network_adaptor/util/threshold_curve_unittest.cc", | 
|  | "codecs/builtin_audio_decoder_factory_unittest.cc", | 
|  | "codecs/builtin_audio_encoder_factory_unittest.cc", | 
|  | "codecs/cng/audio_encoder_cng_unittest.cc", | 
|  | "codecs/cng/cng_unittest.cc", | 
|  | "codecs/legacy_encoded_audio_frame_unittest.cc", | 
|  | "codecs/opus/audio_decoder_multi_channel_opus_unittest.cc", | 
|  | "codecs/opus/audio_decoder_opus_unittest.cc", | 
|  | "codecs/opus/audio_encoder_multi_channel_opus_unittest.cc", | 
|  | "codecs/opus/audio_encoder_opus_unittest.cc", | 
|  | "codecs/opus/opus_bandwidth_unittest.cc", | 
|  | "codecs/opus/opus_unittest.cc", | 
|  | "codecs/red/audio_encoder_copy_red_unittest.cc", | 
|  | "neteq/audio_multi_vector_unittest.cc", | 
|  | "neteq/audio_vector_unittest.cc", | 
|  | "neteq/background_noise_unittest.cc", | 
|  | "neteq/buffer_level_filter_unittest.cc", | 
|  | "neteq/comfort_noise_unittest.cc", | 
|  | "neteq/decision_logic_unittest.cc", | 
|  | "neteq/decoder_database_unittest.cc", | 
|  | "neteq/delay_constraints_unittest.cc", | 
|  | "neteq/delay_manager_unittest.cc", | 
|  | "neteq/dsp_helper_unittest.cc", | 
|  | "neteq/dtmf_buffer_unittest.cc", | 
|  | "neteq/dtmf_tone_generator_unittest.cc", | 
|  | "neteq/expand_unittest.cc", | 
|  | "neteq/histogram_unittest.cc", | 
|  | "neteq/merge_unittest.cc", | 
|  | "neteq/mock/mock_buffer_level_filter.h", | 
|  | "neteq/mock/mock_decoder_database.h", | 
|  | "neteq/mock/mock_delay_manager.h", | 
|  | "neteq/mock/mock_dtmf_buffer.h", | 
|  | "neteq/mock/mock_dtmf_tone_generator.h", | 
|  | "neteq/mock/mock_expand.h", | 
|  | "neteq/mock/mock_histogram.h", | 
|  | "neteq/mock/mock_neteq_controller.h", | 
|  | "neteq/mock/mock_packet_arrival_history.h", | 
|  | "neteq/mock/mock_packet_buffer.h", | 
|  | "neteq/mock/mock_red_payload_splitter.h", | 
|  | "neteq/mock/mock_statistics_calculator.h", | 
|  | "neteq/nack_tracker_unittest.cc", | 
|  | "neteq/neteq_decoder_plc_unittest.cc", | 
|  | "neteq/neteq_impl_unittest.cc", | 
|  | "neteq/neteq_network_stats_unittest.cc", | 
|  | "neteq/neteq_stereo_unittest.cc", | 
|  | "neteq/neteq_unittest.cc", | 
|  | "neteq/normal_unittest.cc", | 
|  | "neteq/packet_arrival_history_unittest.cc", | 
|  | "neteq/packet_buffer_unittest.cc", | 
|  | "neteq/random_vector_unittest.cc", | 
|  | "neteq/red_payload_splitter_unittest.cc", | 
|  | "neteq/reorder_optimizer_unittest.cc", | 
|  | "neteq/statistics_calculator_unittest.cc", | 
|  | "neteq/sync_buffer_unittest.cc", | 
|  | "neteq/time_stretch_unittest.cc", | 
|  | "neteq/timestamp_scaler_unittest.cc", | 
|  | "neteq/tools/input_audio_file_unittest.cc", | 
|  | "neteq/tools/packet_unittest.cc", | 
|  | "neteq/underrun_optimizer_unittest.cc", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | ":acm_receive_test", | 
|  | ":acm_send_test", | 
|  | ":audio_coding", | 
|  | ":audio_coding_module_typedefs", | 
|  | ":audio_coding_modules_tests_shared", | 
|  | ":audio_coding_opus_common", | 
|  | ":audio_encoder_cng", | 
|  | ":audio_network_adaptor", | 
|  | ":g711", | 
|  | ":legacy_encoded_audio_frame", | 
|  | ":mocks", | 
|  | ":neteq", | 
|  | ":neteq_input_audio_tools", | 
|  | ":neteq_test_support", | 
|  | ":neteq_test_tools", | 
|  | ":neteq_tools", | 
|  | ":neteq_tools_minimal", | 
|  | ":pcm16b", | 
|  | ":red", | 
|  | ":webrtc_cng", | 
|  | ":webrtc_opus", | 
|  | "..:module_api", | 
|  | "..:module_api_public", | 
|  | "../../api:array_view", | 
|  | "../../api:bitrate_allocation", | 
|  | "../../api:field_trials_view", | 
|  | "../../api:make_ref_counted", | 
|  | "../../api:rtp_headers", | 
|  | "../../api:rtp_packet_info", | 
|  | "../../api:rtp_parameters", | 
|  | "../../api:scoped_refptr", | 
|  | "../../api/audio:audio_frame_api", | 
|  | "../../api/audio_codecs:audio_codecs_api", | 
|  | "../../api/audio_codecs:builtin_audio_decoder_factory", | 
|  | "../../api/audio_codecs:builtin_audio_encoder_factory", | 
|  | "../../api/audio_codecs/opus:audio_decoder_multiopus", | 
|  | "../../api/audio_codecs/opus:audio_decoder_opus", | 
|  | "../../api/audio_codecs/opus:audio_encoder_multiopus", | 
|  | "../../api/audio_codecs/opus:audio_encoder_opus", | 
|  | "../../api/audio_codecs/opus:audio_encoder_opus_config", | 
|  | "../../api/environment", | 
|  | "../../api/environment:environment_factory", | 
|  | "../../api/neteq:default_neteq_controller_factory", | 
|  | "../../api/neteq:default_neteq_factory", | 
|  | "../../api/neteq:neteq_api", | 
|  | "../../api/neteq:neteq_controller_api", | 
|  | "../../api/neteq:tick_timer", | 
|  | "../../api/neteq:tick_timer_unittest", | 
|  | "../../api/rtc_event_log", | 
|  | "../../api/units:data_rate", | 
|  | "../../api/units:time_delta", | 
|  | "../../api/units:timestamp", | 
|  | "../../common_audio", | 
|  | "../../common_audio:common_audio_c", | 
|  | "../../common_audio:mock_common_audio", | 
|  | "../../logging:mocks", | 
|  | "../../logging:rtc_event_audio", | 
|  | "../../modules/rtp_rtcp:rtp_rtcp_format", | 
|  | "../../rtc_base:buffer", | 
|  | "../../rtc_base:checks", | 
|  | "../../rtc_base:copy_on_write_buffer", | 
|  | "../../rtc_base:digest", | 
|  | "../../rtc_base:ip_address", | 
|  | "../../rtc_base:macromagic", | 
|  | "../../rtc_base:platform_thread", | 
|  | "../../rtc_base:random", | 
|  | "../../rtc_base:refcount", | 
|  | "../../rtc_base:rtc_base_tests_utils", | 
|  | "../../rtc_base:rtc_event", | 
|  | "../../rtc_base:safe_conversions", | 
|  | "../../rtc_base:sanitizer", | 
|  | "../../rtc_base:stringutils", | 
|  | "../../rtc_base:timeutils", | 
|  | "../../rtc_base/synchronization:mutex", | 
|  | "../../rtc_base/system:arch", | 
|  | "../../system_wrappers", | 
|  | "../../test:audio_codec_mocks", | 
|  | "../../test:audio_test_common", | 
|  | "../../test:explicit_key_value_config", | 
|  | "../../test:field_trial", | 
|  | "../../test:fileutils", | 
|  | "../../test:rtc_expect_death", | 
|  | "../../test:rtp_test_utils", | 
|  | "../../test:scoped_key_value_config", | 
|  | "../../test:test_common", | 
|  | "../../test:test_support", | 
|  | "codecs/opus/test", | 
|  | "codecs/opus/test:test_unittest", | 
|  | "//testing/gmock", | 
|  | "//testing/gtest", | 
|  | "//third_party/abseil-cpp/absl/flags:flag", | 
|  | "//third_party/abseil-cpp/absl/memory", | 
|  | "//third_party/abseil-cpp/absl/strings:string_view", | 
|  | "//third_party/opus", | 
|  | ] | 
|  |  | 
|  | defines = audio_coding_defines | 
|  |  | 
|  | if (rtc_enable_protobuf) { | 
|  | defines += [ "WEBRTC_NETEQ_UNITTEST_BITEXACT" ] | 
|  | deps += [ | 
|  | ":ana_config_proto", | 
|  | ":neteq_unittest_proto", | 
|  | ] | 
|  | } | 
|  | } | 
|  | } | 
|  | } | 
|  |  | 
|  | # For backwards compatibility only! Use | 
|  | # webrtc/api/audio_codecs:audio_codecs_api instead. | 
|  | # TODO(kwiberg): Remove this. | 
|  | rtc_source_set("audio_decoder_interface") { | 
|  | visibility += [ "*" ] | 
|  | sources = [ "codecs/audio_decoder.h" ] | 
|  | deps = [ "../../api/audio_codecs:audio_codecs_api" ] | 
|  | } | 
|  |  | 
|  | # For backwards compatibility only! Use | 
|  | # webrtc/api/audio_codecs:audio_codecs_api instead. | 
|  | # TODO(ossu): Remove this. | 
|  | rtc_source_set("audio_encoder_interface") { | 
|  | visibility += [ "*" ] | 
|  | sources = [ "codecs/audio_encoder.h" ] | 
|  | deps = [ "../../api/audio_codecs:audio_codecs_api" ] | 
|  | } |