1# Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. 2# 3# Use of this source code is governed by a BSD-style license 4# that can be found in the LICENSE file in the root of the source 5# tree. An additional intellectual property rights grant can be found 6# in the file PATENTS. All contributing project authors may 7# be found in the AUTHORS file in the root of the source tree. 8 9import("../../webrtc.gni") 10import("audio_coding.gni") 11if (rtc_enable_protobuf) { 12 import("//third_party/protobuf/proto_library.gni") 13} 14 15visibility = [ ":*" ] 16 17rtc_source_set("audio_coding_module_typedefs") { 18 visibility += [ "*" ] 19 sources = [ "include/audio_coding_module_typedefs.h" ] 20} 21 22rtc_library("audio_coding") { 23 visibility += [ "*" ] 24 sources = [ 25 "acm2/acm_receiver.cc", 26 "acm2/acm_receiver.h", 27 "acm2/acm_remixing.cc", 28 "acm2/acm_remixing.h", 29 "acm2/acm_resampler.cc", 30 "acm2/acm_resampler.h", 31 "acm2/audio_coding_module.cc", 32 "acm2/call_statistics.cc", 33 "acm2/call_statistics.h", 34 "include/audio_coding_module.h", 35 ] 36 37 defines = [] 38 39 deps = [ 40 ":audio_coding_module_typedefs", 41 ":default_neteq_factory", 42 ":neteq", 43 "..:module_api", 44 "..:module_api_public", 45 "../../api:array_view", 46 "../../api:function_view", 47 "../../api/audio:audio_frame_api", 48 "../../api/audio_codecs:audio_codecs_api", 49 "../../api/neteq:neteq_api", 50 "../../common_audio", 51 "../../common_audio:common_audio_c", 52 "../../rtc_base:audio_format_to_string", 53 "../../rtc_base:buffer", 54 "../../rtc_base:checks", 55 "../../rtc_base:logging", 56 "../../rtc_base:macromagic", 57 "../../rtc_base:safe_conversions", 58 "../../rtc_base/synchronization:mutex", 59 "../../system_wrappers", 60 "../../system_wrappers:metrics", 61 ] 62 absl_deps = [ 63 "//third_party/abseil-cpp/absl/strings", 64 "//third_party/abseil-cpp/absl/types:optional", 65 ] 66} 67 68rtc_library("legacy_encoded_audio_frame") { 69 sources = [ 70 "codecs/legacy_encoded_audio_frame.cc", 71 "codecs/legacy_encoded_audio_frame.h", 72 ] 73 deps = [ 74 "../../api:array_view", 75 "../../api/audio_codecs:audio_codecs_api", 76 "../../rtc_base:buffer", 77 "../../rtc_base:checks", 78 ] 79 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] 80} 81 82rtc_library("webrtc_cng") { 83 visibility += webrtc_default_visibility 84 sources = [ 85 "codecs/cng/webrtc_cng.cc", 86 "codecs/cng/webrtc_cng.h", 87 ] 88 89 deps = [ 90 "../../api:array_view", 91 "../../common_audio:common_audio_c", 92 "../../rtc_base:buffer", 93 "../../rtc_base:checks", 94 "../../rtc_base:safe_conversions", 95 ] 96} 97 98rtc_library("audio_encoder_cng") { 99 visibility += [ "*" ] 100 sources = [ 101 "codecs/cng/audio_encoder_cng.cc", 102 "codecs/cng/audio_encoder_cng.h", 103 ] 104 105 deps = [ 106 ":webrtc_cng", 107 "../../api/audio_codecs:audio_codecs_api", 108 "../../api/units:time_delta", 109 "../../common_audio", 110 "../../rtc_base:checks", 111 ] 112 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] 113} 114 115rtc_library("red") { 116 visibility += [ "*" ] 117 sources = [ 118 "codecs/red/audio_encoder_copy_red.cc", 119 "codecs/red/audio_encoder_copy_red.h", 120 ] 121 122 deps = [ 123 "../../api:array_view", 124 "../../api:field_trials_view", 125 "../../api/audio_codecs:audio_codecs_api", 126 "../../api/units:time_delta", 127 "../../common_audio", 128 "../../rtc_base:buffer", 129 "../../rtc_base:byte_order", 130 "../../rtc_base:checks", 131 "../../rtc_base:logging", 132 ] 133 absl_deps = [ 134 "//third_party/abseil-cpp/absl/strings", 135 "//third_party/abseil-cpp/absl/types:optional", 136 ] 137} 138 139rtc_library("g711") { 140 visibility += [ "*" ] 141 poisonous = [ "audio_codecs" ] 142 sources = [ 143 "codecs/g711/audio_decoder_pcm.cc", 144 "codecs/g711/audio_decoder_pcm.h", 145 "codecs/g711/audio_encoder_pcm.cc", 146 "codecs/g711/audio_encoder_pcm.h", 147 ] 148 149 deps = [ 150 ":legacy_encoded_audio_frame", 151 "../../api:array_view", 152 "../../api/audio_codecs:audio_codecs_api", 153 "../../api/units:time_delta", 154 "../../rtc_base:buffer", 155 "../../rtc_base:checks", 156 ] 157 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] 158 public_deps = [ ":g711_c" ] # no-presubmit-check TODO(webrtc:8603) 159} 160 161rtc_library("g711_c") { 162 poisonous = [ "audio_codecs" ] 163 sources = [ 164 "codecs/g711/g711_interface.c", 165 "codecs/g711/g711_interface.h", 166 ] 167 deps = [ "../third_party/g711:g711_3p" ] 168} 169 170rtc_library("g722") { 171 visibility += [ "*" ] 172 poisonous = [ "audio_codecs" ] 173 sources = [ 174 "codecs/g722/audio_decoder_g722.cc", 175 "codecs/g722/audio_decoder_g722.h", 176 "codecs/g722/audio_encoder_g722.cc", 177 "codecs/g722/audio_encoder_g722.h", 178 ] 179 180 deps = [ 181 ":legacy_encoded_audio_frame", 182 "../../api:array_view", 183 "../../api/audio_codecs:audio_codecs_api", 184 "../../api/audio_codecs/g722:audio_encoder_g722_config", 185 "../../api/units:time_delta", 186 "../../rtc_base:buffer", 187 "../../rtc_base:checks", 188 "../../rtc_base:safe_conversions", 189 ] 190 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] 191 public_deps = [ ":g722_c" ] # no-presubmit-check TODO(webrtc:8603) 192} 193 194rtc_library("g722_c") { 195 poisonous = [ "audio_codecs" ] 196 sources = [ 197 "codecs/g722/g722_interface.c", 198 "codecs/g722/g722_interface.h", 199 ] 200 deps = [ "../third_party/g722:g722_3p" ] 201} 202 203rtc_library("ilbc") { 204 visibility += webrtc_default_visibility 205 poisonous = [ "audio_codecs" ] 206 sources = [ 207 "codecs/ilbc/audio_decoder_ilbc.cc", 208 "codecs/ilbc/audio_decoder_ilbc.h", 209 "codecs/ilbc/audio_encoder_ilbc.cc", 210 "codecs/ilbc/audio_encoder_ilbc.h", 211 ] 212 213 deps = [ 214 ":legacy_encoded_audio_frame", 215 "../../api:array_view", 216 "../../api/audio_codecs:audio_codecs_api", 217 "../../api/audio_codecs/ilbc:audio_encoder_ilbc_config", 218 "../../api/units:time_delta", 219 "../../common_audio", 220 "../../rtc_base:buffer", 221 "../../rtc_base:checks", 222 "../../rtc_base:logging", 223 "../../rtc_base:safe_conversions", 224 ] 225 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] 226 public_deps = [ ":ilbc_c" ] # no-presubmit-check TODO(webrtc:8603) 227} 228 229rtc_library("ilbc_c") { 230 poisonous = [ "audio_codecs" ] 231 sources = [ 232 "codecs/ilbc/abs_quant.c", 233 "codecs/ilbc/abs_quant.h", 234 "codecs/ilbc/abs_quant_loop.c", 235 "codecs/ilbc/abs_quant_loop.h", 236 "codecs/ilbc/augmented_cb_corr.c", 237 "codecs/ilbc/augmented_cb_corr.h", 238 "codecs/ilbc/bw_expand.c", 239 "codecs/ilbc/bw_expand.h", 240 "codecs/ilbc/cb_construct.c", 241 "codecs/ilbc/cb_construct.h", 242 "codecs/ilbc/cb_mem_energy.c", 243 "codecs/ilbc/cb_mem_energy.h", 244 "codecs/ilbc/cb_mem_energy_augmentation.c", 245 "codecs/ilbc/cb_mem_energy_augmentation.h", 246 "codecs/ilbc/cb_mem_energy_calc.c", 247 "codecs/ilbc/cb_mem_energy_calc.h", 248 "codecs/ilbc/cb_search.c", 249 "codecs/ilbc/cb_search.h", 250 "codecs/ilbc/cb_search_core.c", 251 "codecs/ilbc/cb_search_core.h", 252 "codecs/ilbc/cb_update_best_index.c", 253 "codecs/ilbc/cb_update_best_index.h", 254 "codecs/ilbc/chebyshev.c", 255 "codecs/ilbc/chebyshev.h", 256 "codecs/ilbc/comp_corr.c", 257 "codecs/ilbc/comp_corr.h", 258 "codecs/ilbc/constants.c", 259 "codecs/ilbc/constants.h", 260 "codecs/ilbc/create_augmented_vec.c", 261 "codecs/ilbc/create_augmented_vec.h", 262 "codecs/ilbc/decode.c", 263 "codecs/ilbc/decode.h", 264 "codecs/ilbc/decode_residual.c", 265 "codecs/ilbc/decode_residual.h", 266 "codecs/ilbc/decoder_interpolate_lsf.c", 267 "codecs/ilbc/decoder_interpolate_lsf.h", 268 "codecs/ilbc/defines.h", 269 "codecs/ilbc/do_plc.c", 270 "codecs/ilbc/do_plc.h", 271 "codecs/ilbc/encode.c", 272 "codecs/ilbc/encode.h", 273 "codecs/ilbc/energy_inverse.c", 274 "codecs/ilbc/energy_inverse.h", 275 "codecs/ilbc/enh_upsample.c", 276 "codecs/ilbc/enh_upsample.h", 277 "codecs/ilbc/enhancer.c", 278 "codecs/ilbc/enhancer.h", 279 "codecs/ilbc/enhancer_interface.c", 280 "codecs/ilbc/enhancer_interface.h", 281 "codecs/ilbc/filtered_cb_vecs.c", 282 "codecs/ilbc/filtered_cb_vecs.h", 283 "codecs/ilbc/frame_classify.c", 284 "codecs/ilbc/frame_classify.h", 285 "codecs/ilbc/gain_dequant.c", 286 "codecs/ilbc/gain_dequant.h", 287 "codecs/ilbc/gain_quant.c", 288 "codecs/ilbc/gain_quant.h", 289 "codecs/ilbc/get_cd_vec.c", 290 "codecs/ilbc/get_cd_vec.h", 291 "codecs/ilbc/get_lsp_poly.c", 292 "codecs/ilbc/get_lsp_poly.h", 293 "codecs/ilbc/get_sync_seq.c", 294 "codecs/ilbc/get_sync_seq.h", 295 "codecs/ilbc/hp_input.c", 296 "codecs/ilbc/hp_input.h", 297 "codecs/ilbc/hp_output.c", 298 "codecs/ilbc/hp_output.h", 299 "codecs/ilbc/ilbc.c", 300 "codecs/ilbc/ilbc.h", 301 "codecs/ilbc/index_conv_dec.c", 302 "codecs/ilbc/index_conv_dec.h", 303 "codecs/ilbc/index_conv_enc.c", 304 "codecs/ilbc/index_conv_enc.h", 305 "codecs/ilbc/init_decode.c", 306 "codecs/ilbc/init_decode.h", 307 "codecs/ilbc/init_encode.c", 308 "codecs/ilbc/init_encode.h", 309 "codecs/ilbc/interpolate.c", 310 "codecs/ilbc/interpolate.h", 311 "codecs/ilbc/interpolate_samples.c", 312 "codecs/ilbc/interpolate_samples.h", 313 "codecs/ilbc/lpc_encode.c", 314 "codecs/ilbc/lpc_encode.h", 315 "codecs/ilbc/lsf_check.c", 316 "codecs/ilbc/lsf_check.h", 317 "codecs/ilbc/lsf_interpolate_to_poly_dec.c", 318 "codecs/ilbc/lsf_interpolate_to_poly_dec.h", 319 "codecs/ilbc/lsf_interpolate_to_poly_enc.c", 320 "codecs/ilbc/lsf_interpolate_to_poly_enc.h", 321 "codecs/ilbc/lsf_to_lsp.c", 322 "codecs/ilbc/lsf_to_lsp.h", 323 "codecs/ilbc/lsf_to_poly.c", 324 "codecs/ilbc/lsf_to_poly.h", 325 "codecs/ilbc/lsp_to_lsf.c", 326 "codecs/ilbc/lsp_to_lsf.h", 327 "codecs/ilbc/my_corr.c", 328 "codecs/ilbc/my_corr.h", 329 "codecs/ilbc/nearest_neighbor.c", 330 "codecs/ilbc/nearest_neighbor.h", 331 "codecs/ilbc/pack_bits.c", 332 "codecs/ilbc/pack_bits.h", 333 "codecs/ilbc/poly_to_lsf.c", 334 "codecs/ilbc/poly_to_lsf.h", 335 "codecs/ilbc/poly_to_lsp.c", 336 "codecs/ilbc/poly_to_lsp.h", 337 "codecs/ilbc/refiner.c", 338 "codecs/ilbc/refiner.h", 339 "codecs/ilbc/simple_interpolate_lsf.c", 340 "codecs/ilbc/simple_interpolate_lsf.h", 341 "codecs/ilbc/simple_lpc_analysis.c", 342 "codecs/ilbc/simple_lpc_analysis.h", 343 "codecs/ilbc/simple_lsf_dequant.c", 344 "codecs/ilbc/simple_lsf_dequant.h", 345 "codecs/ilbc/simple_lsf_quant.c", 346 "codecs/ilbc/simple_lsf_quant.h", 347 "codecs/ilbc/smooth.c", 348 "codecs/ilbc/smooth.h", 349 "codecs/ilbc/smooth_out_data.c", 350 "codecs/ilbc/smooth_out_data.h", 351 "codecs/ilbc/sort_sq.c", 352 "codecs/ilbc/sort_sq.h", 353 "codecs/ilbc/split_vq.c", 354 "codecs/ilbc/split_vq.h", 355 "codecs/ilbc/state_construct.c", 356 "codecs/ilbc/state_construct.h", 357 "codecs/ilbc/state_search.c", 358 "codecs/ilbc/state_search.h", 359 "codecs/ilbc/swap_bytes.c", 360 "codecs/ilbc/swap_bytes.h", 361 "codecs/ilbc/unpack_bits.c", 362 "codecs/ilbc/unpack_bits.h", 363 "codecs/ilbc/vq3.c", 364 "codecs/ilbc/vq3.h", 365 "codecs/ilbc/vq4.c", 366 "codecs/ilbc/vq4.h", 367 "codecs/ilbc/window32_w32.c", 368 "codecs/ilbc/window32_w32.h", 369 "codecs/ilbc/xcorr_coef.c", 370 "codecs/ilbc/xcorr_coef.h", 371 ] 372 373 deps = [ 374 "../../api/audio_codecs:audio_codecs_api", 375 "../../common_audio", 376 "../../common_audio:common_audio_c", 377 "../../rtc_base:checks", 378 "../../rtc_base:sanitizer", 379 "../../rtc_base/system:arch", 380 ] 381 absl_deps = [ "//third_party/abseil-cpp/absl/base:core_headers" ] 382} 383 384rtc_library("isac_vad") { 385 visibility += [ "../audio_processing/vad:*" ] 386 sources = [ 387 "codecs/isac/main/source/filter_functions.c", 388 "codecs/isac/main/source/filter_functions.h", 389 "codecs/isac/main/source/isac_vad.c", 390 "codecs/isac/main/source/isac_vad.h", 391 "codecs/isac/main/source/os_specific_inline.h", 392 "codecs/isac/main/source/pitch_estimator.c", 393 "codecs/isac/main/source/pitch_estimator.h", 394 "codecs/isac/main/source/pitch_filter.c", 395 "codecs/isac/main/source/pitch_filter.h", 396 "codecs/isac/main/source/settings.h", 397 "codecs/isac/main/source/structs.h", 398 ] 399 deps = [ 400 ":isac_bwinfo", 401 "../../rtc_base:compile_assert_c", 402 "../../rtc_base/system:arch", 403 "../../rtc_base/system:ignore_warnings", 404 "../third_party/fft", 405 ] 406} 407 408rtc_source_set("isac_bwinfo") { 409 sources = [ "codecs/isac/bandwidth_info.h" ] 410 deps = [] 411} 412 413rtc_library("pcm16b") { 414 visibility += [ "*" ] 415 poisonous = [ "audio_codecs" ] 416 sources = [ 417 "codecs/pcm16b/audio_decoder_pcm16b.cc", 418 "codecs/pcm16b/audio_decoder_pcm16b.h", 419 "codecs/pcm16b/audio_encoder_pcm16b.cc", 420 "codecs/pcm16b/audio_encoder_pcm16b.h", 421 "codecs/pcm16b/pcm16b_common.cc", 422 "codecs/pcm16b/pcm16b_common.h", 423 ] 424 425 deps = [ 426 ":g711", 427 ":legacy_encoded_audio_frame", 428 "../../api:array_view", 429 "../../api/audio_codecs:audio_codecs_api", 430 "../../rtc_base:buffer", 431 "../../rtc_base:checks", 432 ] 433 public_deps = [ ":pcm16b_c" ] # no-presubmit-check TODO(webrtc:8603) 434} 435 436rtc_library("pcm16b_c") { 437 poisonous = [ "audio_codecs" ] 438 sources = [ 439 "codecs/pcm16b/pcm16b.c", 440 "codecs/pcm16b/pcm16b.h", 441 ] 442} 443 444rtc_library("audio_coding_opus_common") { 445 sources = [ 446 "codecs/opus/audio_coder_opus_common.cc", 447 "codecs/opus/audio_coder_opus_common.h", 448 ] 449 450 deps = [ 451 "../../api:array_view", 452 "../../api/audio_codecs:audio_codecs_api", 453 "../../rtc_base:checks", 454 "../../rtc_base:stringutils", 455 ] 456 absl_deps = [ 457 "//third_party/abseil-cpp/absl/strings", 458 "//third_party/abseil-cpp/absl/types:optional", 459 ] 460} 461 462rtc_library("webrtc_opus") { 463 visibility += webrtc_default_visibility 464 poisonous = [ "audio_codecs" ] 465 sources = [ 466 "codecs/opus/audio_decoder_opus.cc", 467 "codecs/opus/audio_decoder_opus.h", 468 "codecs/opus/audio_encoder_opus.cc", 469 "codecs/opus/audio_encoder_opus.h", 470 ] 471 472 deps = [ 473 ":audio_coding_opus_common", 474 ":audio_network_adaptor", 475 "../../api:array_view", 476 "../../api/audio_codecs:audio_codecs_api", 477 "../../api/audio_codecs/opus:audio_encoder_opus_config", 478 "../../common_audio", 479 "../../rtc_base:buffer", 480 "../../rtc_base:checks", 481 "../../rtc_base:logging", 482 "../../rtc_base:macromagic", 483 "../../rtc_base:protobuf_utils", 484 "../../rtc_base:rtc_numerics", 485 "../../rtc_base:safe_conversions", 486 "../../rtc_base:safe_minmax", 487 "../../rtc_base:stringutils", 488 "../../rtc_base:timeutils", 489 "../../system_wrappers:field_trial", 490 ] 491 absl_deps = [ 492 "//third_party/abseil-cpp/absl/strings", 493 "//third_party/abseil-cpp/absl/types:optional", 494 ] 495 public_deps = # no-presubmit-check TODO(webrtc:8603) 496 [ ":webrtc_opus_wrapper" ] 497 498 defines = audio_codec_defines 499} 500 501rtc_library("webrtc_multiopus") { 502 visibility += webrtc_default_visibility 503 poisonous = [ "audio_codecs" ] 504 sources = [ 505 "codecs/opus/audio_decoder_multi_channel_opus_impl.cc", 506 "codecs/opus/audio_decoder_multi_channel_opus_impl.h", 507 "codecs/opus/audio_encoder_multi_channel_opus_impl.cc", 508 "codecs/opus/audio_encoder_multi_channel_opus_impl.h", 509 ] 510 511 deps = [ 512 ":audio_coding_opus_common", 513 "../../api/audio_codecs:audio_codecs_api", 514 "../../api/audio_codecs/opus:audio_decoder_opus_config", 515 "../../api/audio_codecs/opus:audio_encoder_opus_config", 516 "../../api/units:time_delta", 517 "../../rtc_base:buffer", 518 "../../rtc_base:checks", 519 "../../rtc_base:logging", 520 "../../rtc_base:macromagic", 521 "../../rtc_base:safe_minmax", 522 "../../rtc_base:stringutils", 523 ] 524 absl_deps = [ 525 "//third_party/abseil-cpp/absl/memory", 526 "//third_party/abseil-cpp/absl/strings", 527 "//third_party/abseil-cpp/absl/types:optional", 528 ] 529 public_deps = # no-presubmit-check TODO(webrtc:8603) 530 [ ":webrtc_opus_wrapper" ] 531 532 defines = audio_codec_defines 533} 534 535rtc_library("webrtc_opus_wrapper") { 536 poisonous = [ "audio_codecs" ] 537 sources = [ 538 "codecs/opus/opus_inst.h", 539 "codecs/opus/opus_interface.cc", 540 "codecs/opus/opus_interface.h", 541 ] 542 543 defines = audio_coding_defines 544 545 deps = [ 546 "../../api:array_view", 547 "../../rtc_base:checks", 548 "../../rtc_base:ignore_wundef", 549 "../../system_wrappers:field_trial", 550 ] 551 552 if (rtc_build_opus) { 553 deps += [ rtc_opus_dir ] 554 public_configs = [ "//third_party/opus:opus_config" ] 555 } else if (build_with_mozilla) { 556 include_dirs = [ getenv("DIST") + "/include/opus" ] 557 } 558} 559 560if (rtc_enable_protobuf) { 561 proto_library("ana_debug_dump_proto") { 562 visibility += webrtc_default_visibility 563 sources = [ "audio_network_adaptor/debug_dump.proto" ] 564 link_deps = [ ":ana_config_proto" ] 565 proto_out_dir = "modules/audio_coding/audio_network_adaptor" 566 } 567 proto_library("ana_config_proto") { 568 visibility += [ "*" ] 569 sources = [ "audio_network_adaptor/config.proto" ] 570 proto_out_dir = "modules/audio_coding/audio_network_adaptor" 571 } 572} 573 574rtc_library("audio_network_adaptor_config") { 575 visibility += webrtc_default_visibility 576 sources = [ 577 "audio_network_adaptor/audio_network_adaptor_config.cc", 578 "audio_network_adaptor/include/audio_network_adaptor_config.h", 579 ] 580 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] 581} 582 583rtc_library("audio_network_adaptor") { 584 visibility += webrtc_default_visibility 585 sources = [ 586 "audio_network_adaptor/audio_network_adaptor_impl.cc", 587 "audio_network_adaptor/audio_network_adaptor_impl.h", 588 "audio_network_adaptor/bitrate_controller.cc", 589 "audio_network_adaptor/bitrate_controller.h", 590 "audio_network_adaptor/channel_controller.cc", 591 "audio_network_adaptor/channel_controller.h", 592 "audio_network_adaptor/controller.cc", 593 "audio_network_adaptor/controller.h", 594 "audio_network_adaptor/controller_manager.cc", 595 "audio_network_adaptor/controller_manager.h", 596 "audio_network_adaptor/debug_dump_writer.cc", 597 "audio_network_adaptor/debug_dump_writer.h", 598 "audio_network_adaptor/dtx_controller.cc", 599 "audio_network_adaptor/dtx_controller.h", 600 "audio_network_adaptor/event_log_writer.cc", 601 "audio_network_adaptor/event_log_writer.h", 602 "audio_network_adaptor/fec_controller_plr_based.cc", 603 "audio_network_adaptor/fec_controller_plr_based.h", 604 "audio_network_adaptor/frame_length_controller.cc", 605 "audio_network_adaptor/frame_length_controller.h", 606 "audio_network_adaptor/frame_length_controller_v2.cc", 607 "audio_network_adaptor/frame_length_controller_v2.h", 608 "audio_network_adaptor/include/audio_network_adaptor.h", 609 "audio_network_adaptor/util/threshold_curve.h", 610 ] 611 612 public_deps = # no-presubmit-check TODO(webrtc:8603) 613 [ ":audio_network_adaptor_config" ] 614 615 deps = [ 616 "../../api/audio_codecs:audio_codecs_api", 617 "../../api/rtc_event_log", 618 "../../common_audio", 619 "../../logging:rtc_event_audio", 620 "../../rtc_base:checks", 621 "../../rtc_base:ignore_wundef", 622 "../../rtc_base:logging", 623 "../../rtc_base:protobuf_utils", 624 "../../rtc_base:safe_conversions", 625 "../../rtc_base:timeutils", 626 "../../rtc_base/system:file_wrapper", 627 "../../system_wrappers", 628 "../../system_wrappers:field_trial", 629 ] 630 absl_deps = [ 631 "//third_party/abseil-cpp/absl/algorithm:container", 632 "//third_party/abseil-cpp/absl/strings", 633 "//third_party/abseil-cpp/absl/types:optional", 634 ] 635 636 if (rtc_enable_protobuf) { 637 deps += [ 638 ":ana_config_proto", 639 ":ana_debug_dump_proto", 640 ] 641 } 642} 643 644rtc_library("neteq") { 645 visibility += webrtc_default_visibility 646 sources = [ 647 "neteq/accelerate.cc", 648 "neteq/accelerate.h", 649 "neteq/audio_multi_vector.cc", 650 "neteq/audio_multi_vector.h", 651 "neteq/audio_vector.cc", 652 "neteq/audio_vector.h", 653 "neteq/background_noise.cc", 654 "neteq/background_noise.h", 655 "neteq/buffer_level_filter.cc", 656 "neteq/buffer_level_filter.h", 657 "neteq/comfort_noise.cc", 658 "neteq/comfort_noise.h", 659 "neteq/cross_correlation.cc", 660 "neteq/cross_correlation.h", 661 "neteq/decision_logic.cc", 662 "neteq/decision_logic.h", 663 "neteq/decoder_database.cc", 664 "neteq/decoder_database.h", 665 "neteq/delay_manager.cc", 666 "neteq/delay_manager.h", 667 "neteq/dsp_helper.cc", 668 "neteq/dsp_helper.h", 669 "neteq/dtmf_buffer.cc", 670 "neteq/dtmf_buffer.h", 671 "neteq/dtmf_tone_generator.cc", 672 "neteq/dtmf_tone_generator.h", 673 "neteq/expand.cc", 674 "neteq/expand.h", 675 "neteq/expand_uma_logger.cc", 676 "neteq/expand_uma_logger.h", 677 "neteq/histogram.cc", 678 "neteq/histogram.h", 679 "neteq/merge.cc", 680 "neteq/merge.h", 681 "neteq/nack_tracker.cc", 682 "neteq/nack_tracker.h", 683 "neteq/neteq_impl.cc", 684 "neteq/neteq_impl.h", 685 "neteq/normal.cc", 686 "neteq/normal.h", 687 "neteq/packet.cc", 688 "neteq/packet.h", 689 "neteq/packet_arrival_history.cc", 690 "neteq/packet_arrival_history.h", 691 "neteq/packet_buffer.cc", 692 "neteq/packet_buffer.h", 693 "neteq/post_decode_vad.cc", 694 "neteq/post_decode_vad.h", 695 "neteq/preemptive_expand.cc", 696 "neteq/preemptive_expand.h", 697 "neteq/random_vector.cc", 698 "neteq/random_vector.h", 699 "neteq/red_payload_splitter.cc", 700 "neteq/red_payload_splitter.h", 701 "neteq/reorder_optimizer.cc", 702 "neteq/reorder_optimizer.h", 703 "neteq/statistics_calculator.cc", 704 "neteq/statistics_calculator.h", 705 "neteq/sync_buffer.cc", 706 "neteq/sync_buffer.h", 707 "neteq/time_stretch.cc", 708 "neteq/time_stretch.h", 709 "neteq/timestamp_scaler.cc", 710 "neteq/timestamp_scaler.h", 711 "neteq/underrun_optimizer.cc", 712 "neteq/underrun_optimizer.h", 713 ] 714 715 deps = [ 716 ":audio_coding_module_typedefs", 717 ":webrtc_cng", 718 "..:module_api_public", 719 "../../api:array_view", 720 "../../api:rtp_headers", 721 "../../api:rtp_packet_info", 722 "../../api:scoped_refptr", 723 "../../api/audio:audio_frame_api", 724 "../../api/audio_codecs:audio_codecs_api", 725 "../../api/neteq:neteq_api", 726 "../../api/neteq:neteq_controller_api", 727 "../../api/neteq:tick_timer", 728 "../../common_audio", 729 "../../common_audio:common_audio_c", 730 "../../rtc_base:audio_format_to_string", 731 "../../rtc_base:buffer", 732 "../../rtc_base:checks", 733 "../../rtc_base:event_tracer", 734 "../../rtc_base:gtest_prod", 735 "../../rtc_base:logging", 736 "../../rtc_base:macromagic", 737 "../../rtc_base:safe_conversions", 738 "../../rtc_base:safe_minmax", 739 "../../rtc_base:sanitizer", 740 "../../rtc_base/experiments:field_trial_parser", 741 "../../rtc_base/synchronization:mutex", 742 "../../system_wrappers", 743 "../../system_wrappers:field_trial", 744 "../../system_wrappers:metrics", 745 ] 746 absl_deps = [ 747 "//third_party/abseil-cpp/absl/strings", 748 "//third_party/abseil-cpp/absl/types:optional", 749 ] 750} 751 752rtc_source_set("default_neteq_factory") { 753 visibility += webrtc_default_visibility 754 sources = [ 755 "neteq/default_neteq_factory.cc", 756 "neteq/default_neteq_factory.h", 757 ] 758 deps = [ 759 ":neteq", 760 "../../api:scoped_refptr", 761 "../../api/audio_codecs:audio_codecs_api", 762 "../../api/neteq:default_neteq_controller_factory", 763 "../../api/neteq:neteq_api", 764 "../../system_wrappers:system_wrappers", 765 ] 766} 767 768# Although providing only test support, this target must be outside of the 769# rtc_include_tests conditional. The reason is that it supports fuzzer tests 770# that ultimately are built and run as a part of the Chromium ecosystem, which 771# does not set the rtc_include_tests flag. 772rtc_library("neteq_tools_minimal") { 773 visibility += webrtc_default_visibility 774 sources = [ 775 "neteq/tools/audio_sink.cc", 776 "neteq/tools/audio_sink.h", 777 "neteq/tools/encode_neteq_input.cc", 778 "neteq/tools/encode_neteq_input.h", 779 "neteq/tools/neteq_input.cc", 780 "neteq/tools/neteq_input.h", 781 "neteq/tools/neteq_test.cc", 782 "neteq/tools/neteq_test.h", 783 "neteq/tools/packet.cc", 784 "neteq/tools/packet.h", 785 "neteq/tools/packet_source.cc", 786 "neteq/tools/packet_source.h", 787 ] 788 789 deps = [ 790 ":default_neteq_factory", 791 ":neteq", 792 "../../api:array_view", 793 "../../api:neteq_simulator_api", 794 "../../api:rtp_headers", 795 "../../api/audio:audio_frame_api", 796 "../../api/audio_codecs:audio_codecs_api", 797 "../../api/neteq:custom_neteq_factory", 798 "../../api/neteq:default_neteq_controller_factory", 799 "../../api/neteq:neteq_api", 800 "../../rtc_base:buffer", 801 "../../rtc_base:checks", 802 "../../rtc_base:copy_on_write_buffer", 803 "../../rtc_base:safe_conversions", 804 "../../rtc_base:stringutils", 805 "../../system_wrappers", 806 "../rtp_rtcp:rtp_rtcp_format", 807 ] 808 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] 809 defines = audio_codec_defines 810} 811 812rtc_library("neteq_test_tools") { 813 visibility += webrtc_default_visibility 814 testonly = true 815 sources = [ 816 "neteq/tools/audio_checksum.h", 817 "neteq/tools/audio_loop.cc", 818 "neteq/tools/audio_loop.h", 819 "neteq/tools/constant_pcm_packet_source.cc", 820 "neteq/tools/constant_pcm_packet_source.h", 821 "neteq/tools/initial_packet_inserter_neteq_input.cc", 822 "neteq/tools/initial_packet_inserter_neteq_input.h", 823 "neteq/tools/neteq_packet_source_input.cc", 824 "neteq/tools/neteq_packet_source_input.h", 825 "neteq/tools/output_audio_file.h", 826 "neteq/tools/output_wav_file.h", 827 "neteq/tools/rtp_file_source.cc", 828 "neteq/tools/rtp_file_source.h", 829 "neteq/tools/rtp_generator.cc", 830 "neteq/tools/rtp_generator.h", 831 ] 832 833 deps = [ 834 ":neteq_tools", 835 ":neteq_tools_minimal", 836 ":pcm16b", 837 "../../api:array_view", 838 "../../api:rtp_headers", 839 "../../common_audio", 840 "../../rtc_base", 841 "../../rtc_base:buffer", 842 "../../rtc_base:checks", 843 "../../rtc_base:stringutils", 844 "../../rtc_base/system:arch", 845 "../../test:rtp_test_utils", 846 "../rtp_rtcp:rtp_rtcp_format", 847 ] 848 absl_deps = [ 849 "//third_party/abseil-cpp/absl/strings", 850 "//third_party/abseil-cpp/absl/types:optional", 851 ] 852 853 if (rtc_enable_protobuf) { 854 sources += [ 855 "neteq/tools/neteq_event_log_input.cc", 856 "neteq/tools/neteq_event_log_input.h", 857 ] 858 deps += [ ":rtc_event_log_source" ] 859 } 860} 861 862rtc_library("neteq_tools") { 863 visibility += webrtc_default_visibility 864 sources = [ 865 "neteq/tools/fake_decode_from_file.cc", 866 "neteq/tools/fake_decode_from_file.h", 867 "neteq/tools/neteq_delay_analyzer.cc", 868 "neteq/tools/neteq_delay_analyzer.h", 869 "neteq/tools/neteq_replacement_input.cc", 870 "neteq/tools/neteq_replacement_input.h", 871 "neteq/tools/neteq_stats_getter.cc", 872 "neteq/tools/neteq_stats_getter.h", 873 "neteq/tools/neteq_stats_plotter.cc", 874 "neteq/tools/neteq_stats_plotter.h", 875 ] 876 877 deps = [ 878 ":neteq_input_audio_tools", 879 ":neteq_tools_minimal", 880 "..:module_api_public", 881 "../../api:array_view", 882 "../../api/audio_codecs:audio_codecs_api", 883 "../../rtc_base:checks", 884 "../../rtc_base:safe_conversions", 885 "../../rtc_base:stringutils", 886 "../../rtc_base:timeutils", 887 "../rtp_rtcp", 888 "../rtp_rtcp:rtp_rtcp_format", 889 ] 890 absl_deps = [ 891 "//third_party/abseil-cpp/absl/strings", 892 "//third_party/abseil-cpp/absl/types:optional", 893 ] 894} 895 896rtc_library("neteq_input_audio_tools") { 897 visibility += webrtc_default_visibility 898 sources = [ 899 "neteq/tools/input_audio_file.cc", 900 "neteq/tools/input_audio_file.h", 901 "neteq/tools/resample_input_audio_file.cc", 902 "neteq/tools/resample_input_audio_file.h", 903 ] 904 905 deps = [ 906 "../../common_audio", 907 "../../rtc_base:checks", 908 ] 909 absl_deps = [ "//third_party/abseil-cpp/absl/strings" ] 910} 911 912if (rtc_enable_protobuf) { 913 rtc_library("rtc_event_log_source") { 914 testonly = true 915 916 sources = [ 917 "neteq/tools/rtc_event_log_source.cc", 918 "neteq/tools/rtc_event_log_source.h", 919 ] 920 921 deps = [ 922 ":neteq_tools_minimal", 923 "../../logging:rtc_event_log_parser", 924 "../../rtc_base:checks", 925 "../rtp_rtcp", 926 "../rtp_rtcp:rtp_rtcp_format", 927 ] 928 absl_deps = [ 929 "//third_party/abseil-cpp/absl/strings", 930 "//third_party/abseil-cpp/absl/types:optional", 931 ] 932 public_deps = # no-presubmit-check TODO(webrtc:8603) 933 [ "../../logging:rtc_event_log_proto" ] 934 } 935 936 # Only used for test purpose. Since we want to use it from chromium 937 # (see audio_coding_modules_tests_shared below), we cannot guard it 938 # under rtc_include_tests. 939 proto_library("neteq_unittest_proto") { 940 testonly = true 941 sources = [ "neteq/neteq_unittest.proto" ] 942 proto_out_dir = "modules/audio_coding/neteq" 943 } 944} 945 946# Allow to re-use some test classes from chromium. 947rtc_library("audio_coding_modules_tests_shared") { 948 testonly = true 949 visibility = [] 950 visibility = [ "*" ] 951 952 sources = [ 953 "neteq/test/neteq_decoding_test.cc", 954 "neteq/test/neteq_decoding_test.h", 955 "neteq/test/result_sink.cc", 956 "neteq/test/result_sink.h", 957 "test/PCMFile.cc", 958 "test/PCMFile.h", 959 "test/TestStereo.cc", 960 "test/TestStereo.h", 961 "test/opus_test.cc", 962 "test/opus_test.h", 963 ] 964 965 deps = [ 966 ":audio_coding", 967 ":audio_coding_module_typedefs", 968 ":default_neteq_factory", 969 ":neteq_test_tools", 970 ":neteq_tools_minimal", 971 ":webrtc_opus_wrapper", 972 "..:module_api", 973 "../../api:rtp_headers", 974 "../../api/audio:audio_frame_api", 975 "../../api/audio_codecs:builtin_audio_decoder_factory", 976 "../../api/audio_codecs:builtin_audio_encoder_factory", 977 "../../api/neteq:neteq_api", 978 "../../rtc_base", 979 "../../rtc_base:checks", 980 "../../rtc_base:ignore_wundef", 981 "../../rtc_base:stringutils", 982 "../../system_wrappers", 983 "../../test:fileutils", 984 "../../test:test_support", 985 "//testing/gtest", 986 ] 987 absl_deps = [ 988 "//third_party/abseil-cpp/absl/strings", 989 "//third_party/abseil-cpp/absl/types:optional", 990 ] 991 defines = audio_coding_defines 992 993 if (rtc_enable_protobuf) { 994 defines += [ "WEBRTC_NETEQ_UNITTEST_BITEXACT" ] 995 deps += [ ":neteq_unittest_proto" ] 996 } 997} 998 999if (rtc_include_tests) { 1000 audio_coding_deps = [ 1001 ":audio_encoder_cng", 1002 ":g711", 1003 ":g722", 1004 ":pcm16b", 1005 "../../common_audio", 1006 "../../system_wrappers", 1007 ] 1008 if (rtc_include_ilbc) { 1009 audio_coding_deps += [ ":ilbc" ] 1010 } 1011 if (rtc_include_opus) { 1012 audio_coding_deps += [ ":webrtc_opus" ] 1013 } 1014 if (!build_with_mozilla && !build_with_chromium) { 1015 audio_coding_deps += [ ":red" ] 1016 } 1017 1018 rtc_source_set("mocks") { 1019 testonly = true 1020 sources = [ 1021 "audio_network_adaptor/mock/mock_audio_network_adaptor.h", 1022 "audio_network_adaptor/mock/mock_controller.h", 1023 "audio_network_adaptor/mock/mock_controller_manager.h", 1024 "audio_network_adaptor/mock/mock_debug_dump_writer.h", 1025 ] 1026 deps = [ 1027 ":audio_network_adaptor", 1028 "../../test:test_support", 1029 ] 1030 } 1031 1032 if (!build_with_chromium) { 1033 group("audio_coding_tests") { 1034 visibility += webrtc_default_visibility 1035 testonly = true 1036 public_deps = [ # no-presubmit-check TODO(webrtc:8603) 1037 ":acm_receive_test", 1038 ":acm_send_test", 1039 ":audio_codec_speed_tests", 1040 ":audio_decoder_unittests", 1041 ":audio_decoder_unittests", 1042 ":g711_test", 1043 ":g722_test", 1044 ":ilbc_test", 1045 ":neteq_ilbc_quality_test", 1046 ":neteq_opus_quality_test", 1047 ":neteq_pcm16b_quality_test", 1048 ":neteq_pcmu_quality_test", 1049 ":neteq_speed_test", 1050 ":rtp_analyze", 1051 ":rtp_encode", 1052 ":rtp_jitter", 1053 ":rtpcat", 1054 ":webrtc_opus_fec_test", 1055 ] 1056 if (rtc_enable_protobuf) { 1057 public_deps += # no-presubmit-check TODO(webrtc:8603) 1058 [ ":neteq_rtpplay" ] 1059 } 1060 } 1061 } 1062 1063 rtc_library("audio_coding_modules_tests") { 1064 testonly = true 1065 visibility += webrtc_default_visibility 1066 1067 sources = [ 1068 "test/Channel.cc", 1069 "test/Channel.h", 1070 "test/EncodeDecodeTest.cc", 1071 "test/EncodeDecodeTest.h", 1072 "test/PacketLossTest.cc", 1073 "test/PacketLossTest.h", 1074 "test/RTPFile.cc", 1075 "test/RTPFile.h", 1076 "test/TestAllCodecs.cc", 1077 "test/TestAllCodecs.h", 1078 "test/TestRedFec.cc", 1079 "test/TestRedFec.h", 1080 "test/TestVADDTX.cc", 1081 "test/TestVADDTX.h", 1082 "test/Tester.cc", 1083 "test/TwoWayCommunication.cc", 1084 "test/TwoWayCommunication.h", 1085 "test/target_delay_unittest.cc", 1086 ] 1087 deps = [ 1088 ":audio_coding", 1089 ":audio_coding_module_typedefs", 1090 ":audio_coding_modules_tests_shared", 1091 ":audio_encoder_cng", 1092 ":pcm16b_c", 1093 ":red", 1094 ":webrtc_opus_wrapper", 1095 "..:module_api", 1096 "../../api:rtp_headers", 1097 "../../api/audio:audio_frame_api", 1098 "../../api/audio_codecs:audio_codecs_api", 1099 "../../api/audio_codecs:builtin_audio_decoder_factory", 1100 "../../api/audio_codecs:builtin_audio_encoder_factory", 1101 "../../api/audio_codecs/L16:audio_decoder_L16", 1102 "../../api/audio_codecs/L16:audio_encoder_L16", 1103 "../../api/audio_codecs/g711:audio_decoder_g711", 1104 "../../api/audio_codecs/g711:audio_encoder_g711", 1105 "../../api/audio_codecs/g722:audio_decoder_g722", 1106 "../../api/audio_codecs/g722:audio_encoder_g722", 1107 "../../api/audio_codecs/ilbc:audio_decoder_ilbc", 1108 "../../api/audio_codecs/ilbc:audio_encoder_ilbc", 1109 "../../api/audio_codecs/opus:audio_decoder_opus", 1110 "../../api/audio_codecs/opus:audio_encoder_opus", 1111 "../../common_audio", 1112 "../../rtc_base:checks", 1113 "../../rtc_base:logging", 1114 "../../rtc_base:macromagic", 1115 "../../rtc_base:stringutils", 1116 "../../rtc_base:timeutils", 1117 "../../rtc_base/synchronization:mutex", 1118 "../../test:fileutils", 1119 "../../test:scoped_key_value_config", 1120 "../../test:test_support", 1121 ] 1122 absl_deps = [ 1123 "//third_party/abseil-cpp/absl/strings", 1124 "//third_party/abseil-cpp/absl/types:optional", 1125 ] 1126 defines = audio_coding_defines 1127 } 1128 1129 rtc_library("audio_coding_perf_tests") { 1130 testonly = true 1131 visibility += webrtc_default_visibility 1132 1133 sources = [ 1134 "codecs/opus/opus_complexity_unittest.cc", 1135 "neteq/test/neteq_performance_unittest.cc", 1136 ] 1137 deps = [ 1138 ":neteq_test_support", 1139 ":neteq_test_tools", 1140 "../../api/audio_codecs/opus:audio_encoder_opus", 1141 "../../api/test/metrics:global_metrics_logger_and_exporter", 1142 "../../api/test/metrics:metric", 1143 "../../rtc_base:macromagic", 1144 "../../rtc_base:timeutils", 1145 "../../system_wrappers", 1146 "../../system_wrappers:field_trial", 1147 "../../test:fileutils", 1148 "../../test:test_support", 1149 ] 1150 } 1151 1152 rtc_library("acm_receive_test") { 1153 testonly = true 1154 sources = [ 1155 "acm2/acm_receive_test.cc", 1156 "acm2/acm_receive_test.h", 1157 ] 1158 1159 defines = audio_coding_defines 1160 1161 deps = [ 1162 ":audio_coding", 1163 ":neteq_tools", 1164 ":neteq_tools_minimal", 1165 "../../api:scoped_refptr", 1166 "../../api/audio_codecs:audio_codecs_api", 1167 "../../api/audio_codecs:builtin_audio_decoder_factory", 1168 "../../test:test_support", 1169 "//testing/gtest", 1170 ] 1171 1172 deps += audio_coding_deps 1173 absl_deps = [ "//third_party/abseil-cpp/absl/strings" ] 1174 } 1175 1176 rtc_library("acm_send_test") { 1177 testonly = true 1178 sources = [ 1179 "acm2/acm_send_test.cc", 1180 "acm2/acm_send_test.h", 1181 ] 1182 1183 defines = audio_coding_defines 1184 1185 deps = [ 1186 ":audio_coding", 1187 ":neteq_input_audio_tools", 1188 ":neteq_tools", 1189 ":neteq_tools_minimal", 1190 "../../api/audio:audio_frame_api", 1191 "../../api/audio_codecs:audio_codecs_api", 1192 "../../api/audio_codecs:builtin_audio_decoder_factory", 1193 "../../api/audio_codecs:builtin_audio_encoder_factory", 1194 "../../rtc_base:checks", 1195 "../../rtc_base:stringutils", 1196 "../../test:test_support", 1197 "//testing/gtest", 1198 ] 1199 deps += audio_coding_deps 1200 absl_deps = [ "//third_party/abseil-cpp/absl/strings" ] 1201 } 1202 1203 if (!build_with_chromium) { 1204 audio_decoder_unittests_resources = 1205 [ "../../resources/audio_coding/testfile32kHz.pcm" ] 1206 1207 if (is_ios) { 1208 bundle_data("audio_decoder_unittests_bundle_data") { 1209 testonly = true 1210 sources = audio_decoder_unittests_resources 1211 outputs = [ "{{bundle_resources_dir}}/{{source_file_part}}" ] 1212 } 1213 } 1214 1215 rtc_test("audio_decoder_unittests") { 1216 testonly = true 1217 sources = [ "neteq/audio_decoder_unittest.cc" ] 1218 1219 defines = neteq_defines 1220 1221 deps = [ 1222 ":ilbc", 1223 ":neteq", 1224 ":neteq_input_audio_tools", 1225 ":neteq_tools", 1226 "../../api/audio_codecs:audio_codecs_api", 1227 "../../api/audio_codecs/opus:audio_encoder_opus", 1228 "../../common_audio", 1229 "../../rtc_base/system:arch", 1230 "../../test:fileutils", 1231 "../../test:test_main", 1232 "../../test:test_support", 1233 "//testing/gtest", 1234 ] + audio_coding_deps 1235 1236 data = audio_decoder_unittests_resources 1237 1238 if (is_android) { 1239 use_default_launcher = false 1240 deps += [ 1241 "//build/android/gtest_apk:native_test_instrumentation_test_runner_java", 1242 "//testing/android/native_test:native_test_java", 1243 "//testing/android/native_test:native_test_support", 1244 ] 1245 shard_timeout = 900 1246 } 1247 if (is_ios) { 1248 deps += [ ":audio_decoder_unittests_bundle_data" ] 1249 } 1250 } 1251 } 1252 1253 if (rtc_enable_protobuf) { 1254 rtc_library("neteq_test_factory") { 1255 testonly = true 1256 visibility += webrtc_default_visibility 1257 defines = audio_codec_defines 1258 deps = [ 1259 ":neteq_input_audio_tools", 1260 ":neteq_tools", 1261 ":neteq_tools_minimal", 1262 "../../rtc_base:checks", 1263 "../../rtc_base:refcount", 1264 "../../test:fileutils", 1265 ] 1266 absl_deps = [ 1267 "//third_party/abseil-cpp/absl/strings", 1268 "//third_party/abseil-cpp/absl/types:optional", 1269 ] 1270 sources = [ 1271 "neteq/tools/neteq_test_factory.cc", 1272 "neteq/tools/neteq_test_factory.h", 1273 ] 1274 1275 deps += [ 1276 ":neteq", 1277 ":neteq_test_tools", 1278 "../../api/audio_codecs:builtin_audio_decoder_factory", 1279 "../../api/neteq:neteq_api", 1280 "../../test:audio_test_common", 1281 "../../test:field_trial", 1282 "../../test:test_support", 1283 ] 1284 } 1285 } 1286 1287 if (rtc_enable_protobuf && !build_with_chromium) { 1288 rtc_executable("neteq_rtpplay") { 1289 testonly = true 1290 visibility += [ "*" ] 1291 defines = [] 1292 deps = [ 1293 ":neteq_test_factory", 1294 ":neteq_test_tools", 1295 ":neteq_tools_minimal", 1296 "../../rtc_base:stringutils", 1297 "../../system_wrappers:field_trial", 1298 "../../test:field_trial", 1299 "//third_party/abseil-cpp/absl/flags:flag", 1300 "//third_party/abseil-cpp/absl/flags:parse", 1301 "//third_party/abseil-cpp/absl/strings", 1302 "//third_party/abseil-cpp/absl/types:optional", 1303 ] 1304 sources = [ "neteq/tools/neteq_rtpplay.cc" ] 1305 } 1306 } 1307 1308 if (!build_with_chromium) { 1309 audio_codec_speed_tests_resources = [ 1310 "//resources/audio_coding/music_stereo_48kHz.pcm", 1311 "//resources/audio_coding/speech_mono_16kHz.pcm", 1312 "//resources/audio_coding/speech_mono_32_48kHz.pcm", 1313 ] 1314 1315 if (is_ios) { 1316 bundle_data("audio_codec_speed_tests_data") { 1317 testonly = true 1318 sources = audio_codec_speed_tests_resources 1319 outputs = [ "{{bundle_resources_dir}}/{{source_file_part}}" ] 1320 } 1321 } 1322 1323 rtc_test("audio_codec_speed_tests") { 1324 testonly = true 1325 defines = [] 1326 deps = [ 1327 "../../rtc_base:macromagic", 1328 "../../test:fileutils", 1329 ] 1330 sources = [ 1331 "codecs/opus/opus_speed_test.cc", 1332 "codecs/tools/audio_codec_speed_test.cc", 1333 "codecs/tools/audio_codec_speed_test.h", 1334 ] 1335 1336 data = audio_codec_speed_tests_resources 1337 1338 if (is_android) { 1339 use_default_launcher = false 1340 deps += [ 1341 "//build/android/gtest_apk:native_test_instrumentation_test_runner_java", 1342 "//testing/android/native_test:native_test_java", 1343 "//testing/android/native_test:native_test_support", 1344 ] 1345 shard_timeout = 900 1346 } 1347 1348 if (is_ios) { 1349 deps += [ ":audio_codec_speed_tests_data" ] 1350 } 1351 1352 deps += [ 1353 ":webrtc_opus", 1354 "../../rtc_base:checks", 1355 "../../test:test_main", 1356 "../../test:test_support", 1357 "../audio_processing", 1358 "//testing/gtest", 1359 ] 1360 } 1361 } 1362 1363 rtc_library("neteq_test_support") { 1364 testonly = true 1365 sources = [ 1366 "neteq/tools/neteq_performance_test.cc", 1367 "neteq/tools/neteq_performance_test.h", 1368 ] 1369 1370 deps = [ 1371 ":default_neteq_factory", 1372 ":neteq", 1373 ":neteq_test_tools", 1374 ":pcm16b", 1375 "../../api/audio:audio_frame_api", 1376 "../../api/audio_codecs:audio_codecs_api", 1377 "../../api/audio_codecs:builtin_audio_decoder_factory", 1378 "../../api/neteq:neteq_api", 1379 "../../rtc_base:checks", 1380 "../../system_wrappers", 1381 "../../test:fileutils", 1382 "../../test:test_support", 1383 "//testing/gtest", 1384 ] 1385 } 1386 1387 if (!build_with_chromium) { 1388 rtc_library("neteq_quality_test_support") { 1389 testonly = true 1390 sources = [ 1391 "neteq/tools/neteq_quality_test.cc", 1392 "neteq/tools/neteq_quality_test.h", 1393 ] 1394 1395 deps = [ 1396 ":default_neteq_factory", 1397 ":neteq", 1398 ":neteq_input_audio_tools", 1399 ":neteq_test_tools", 1400 ":neteq_tools_minimal", 1401 "../../api/audio_codecs:builtin_audio_decoder_factory", 1402 "../../api/neteq:neteq_api", 1403 "../../rtc_base:checks", 1404 "../../rtc_base:stringutils", 1405 "../../system_wrappers", 1406 "../../test:fileutils", 1407 "../../test:test_support", 1408 "//testing/gtest", 1409 ] 1410 absl_deps = [ 1411 "//third_party/abseil-cpp/absl/flags:flag", 1412 "//third_party/abseil-cpp/absl/strings", 1413 ] 1414 } 1415 1416 rtc_executable("rtp_encode") { 1417 testonly = true 1418 1419 deps = [ 1420 ":audio_coding", 1421 ":audio_encoder_cng", 1422 ":neteq_input_audio_tools", 1423 "../../api/audio:audio_frame_api", 1424 "../../api/audio_codecs/L16:audio_encoder_L16", 1425 "../../api/audio_codecs/g711:audio_encoder_g711", 1426 "../../api/audio_codecs/g722:audio_encoder_g722", 1427 "../../api/audio_codecs/ilbc:audio_encoder_ilbc", 1428 "../../api/audio_codecs/opus:audio_encoder_opus", 1429 "../../rtc_base:safe_conversions", 1430 "//third_party/abseil-cpp/absl/flags:flag", 1431 "//third_party/abseil-cpp/absl/flags:parse", 1432 "//third_party/abseil-cpp/absl/memory", 1433 ] 1434 1435 deps += audio_coding_deps 1436 1437 sources = [ "neteq/tools/rtp_encode.cc" ] 1438 1439 defines = audio_coding_defines 1440 } 1441 1442 rtc_executable("rtp_jitter") { 1443 testonly = true 1444 1445 deps = [ 1446 "../../api:array_view", 1447 "../../rtc_base:buffer", 1448 "../rtp_rtcp:rtp_rtcp_format", 1449 ] 1450 1451 deps += audio_coding_deps 1452 1453 sources = [ "neteq/tools/rtp_jitter.cc" ] 1454 1455 defines = audio_coding_defines 1456 } 1457 1458 rtc_executable("rtpcat") { 1459 testonly = true 1460 1461 sources = [ "neteq/tools/rtpcat.cc" ] 1462 1463 deps = [ 1464 "../../rtc_base:checks", 1465 "../../test:rtp_test_utils", 1466 "//testing/gtest", 1467 ] 1468 } 1469 1470 rtc_executable("rtp_analyze") { 1471 testonly = true 1472 1473 sources = [ "neteq/tools/rtp_analyze.cc" ] 1474 1475 deps = [ 1476 ":neteq", 1477 ":neteq_test_tools", 1478 ":neteq_tools_minimal", 1479 ":pcm16b", 1480 "//testing/gtest", 1481 "//third_party/abseil-cpp/absl/flags:flag", 1482 "//third_party/abseil-cpp/absl/flags:parse", 1483 ] 1484 } 1485 1486 rtc_executable("neteq_opus_quality_test") { 1487 testonly = true 1488 1489 sources = [ "neteq/test/neteq_opus_quality_test.cc" ] 1490 1491 deps = [ 1492 ":neteq", 1493 ":neteq_quality_test_support", 1494 ":neteq_tools", 1495 ":webrtc_opus", 1496 "../../test:test_main", 1497 "//testing/gtest", 1498 "//third_party/abseil-cpp/absl/flags:flag", 1499 ] 1500 } 1501 1502 rtc_executable("neteq_speed_test") { 1503 testonly = true 1504 1505 sources = [ "neteq/test/neteq_speed_test.cc" ] 1506 1507 deps = [ 1508 ":neteq", 1509 ":neteq_test_support", 1510 "../../rtc_base:checks", 1511 "../../test:test_support", 1512 "//third_party/abseil-cpp/absl/flags:flag", 1513 "//third_party/abseil-cpp/absl/flags:parse", 1514 ] 1515 } 1516 1517 rtc_executable("neteq_ilbc_quality_test") { 1518 testonly = true 1519 1520 sources = [ "neteq/test/neteq_ilbc_quality_test.cc" ] 1521 1522 deps = [ 1523 ":ilbc", 1524 ":neteq", 1525 ":neteq_quality_test_support", 1526 ":neteq_tools", 1527 "../../rtc_base:checks", 1528 "../../rtc_base:safe_conversions", 1529 "../../test:fileutils", 1530 "../../test:test_main", 1531 "//testing/gtest", 1532 "//third_party/abseil-cpp/absl/flags:flag", 1533 ] 1534 } 1535 1536 rtc_executable("neteq_pcmu_quality_test") { 1537 testonly = true 1538 1539 sources = [ "neteq/test/neteq_pcmu_quality_test.cc" ] 1540 1541 deps = [ 1542 ":g711", 1543 ":neteq", 1544 ":neteq_quality_test_support", 1545 "../../rtc_base:checks", 1546 "../../rtc_base:safe_conversions", 1547 "../../test:fileutils", 1548 "../../test:test_main", 1549 "//testing/gtest", 1550 "//third_party/abseil-cpp/absl/flags:flag", 1551 ] 1552 } 1553 1554 rtc_executable("neteq_pcm16b_quality_test") { 1555 testonly = true 1556 1557 sources = [ "neteq/test/neteq_pcm16b_quality_test.cc" ] 1558 1559 deps = [ 1560 ":neteq", 1561 ":neteq_quality_test_support", 1562 ":pcm16b", 1563 "../../rtc_base:checks", 1564 "../../rtc_base:safe_conversions", 1565 "../../test:fileutils", 1566 "../../test:test_main", 1567 "//testing/gtest", 1568 "//third_party/abseil-cpp/absl/flags:flag", 1569 ] 1570 } 1571 } 1572 1573 rtc_executable("g711_test") { 1574 testonly = true 1575 1576 sources = [ "codecs/g711/test/testG711.cc" ] 1577 1578 deps = [ ":g711" ] 1579 } 1580 1581 rtc_executable("g722_test") { 1582 testonly = true 1583 1584 sources = [ "codecs/g722/test/testG722.cc" ] 1585 1586 deps = [ ":g722" ] 1587 } 1588 1589 if (!build_with_chromium) { 1590 rtc_executable("ilbc_test") { 1591 testonly = true 1592 1593 sources = [ "codecs/ilbc/test/iLBC_test.c" ] 1594 1595 deps = [ ":ilbc" ] 1596 } 1597 1598 rtc_executable("webrtc_opus_fec_test") { 1599 testonly = true 1600 1601 sources = [ "codecs/opus/opus_fec_test.cc" ] 1602 1603 deps = [ 1604 ":webrtc_opus", 1605 "../../common_audio", 1606 "../../rtc_base:macromagic", 1607 "../../test:fileutils", 1608 "../../test:test_main", 1609 "../../test:test_support", 1610 "//testing/gtest", 1611 ] 1612 } 1613 1614 rtc_library("audio_coding_unittests") { 1615 testonly = true 1616 visibility += webrtc_default_visibility 1617 1618 sources = [ 1619 "acm2/acm_receiver_unittest.cc", 1620 "acm2/acm_remixing_unittest.cc", 1621 "acm2/audio_coding_module_unittest.cc", 1622 "acm2/call_statistics_unittest.cc", 1623 "audio_network_adaptor/audio_network_adaptor_impl_unittest.cc", 1624 "audio_network_adaptor/bitrate_controller_unittest.cc", 1625 "audio_network_adaptor/channel_controller_unittest.cc", 1626 "audio_network_adaptor/controller_manager_unittest.cc", 1627 "audio_network_adaptor/dtx_controller_unittest.cc", 1628 "audio_network_adaptor/event_log_writer_unittest.cc", 1629 "audio_network_adaptor/fec_controller_plr_based_unittest.cc", 1630 "audio_network_adaptor/frame_length_controller_unittest.cc", 1631 "audio_network_adaptor/frame_length_controller_v2_unittest.cc", 1632 "audio_network_adaptor/util/threshold_curve_unittest.cc", 1633 "codecs/builtin_audio_decoder_factory_unittest.cc", 1634 "codecs/builtin_audio_encoder_factory_unittest.cc", 1635 "codecs/cng/audio_encoder_cng_unittest.cc", 1636 "codecs/cng/cng_unittest.cc", 1637 "codecs/ilbc/ilbc_unittest.cc", 1638 "codecs/legacy_encoded_audio_frame_unittest.cc", 1639 "codecs/opus/audio_decoder_multi_channel_opus_unittest.cc", 1640 "codecs/opus/audio_encoder_multi_channel_opus_unittest.cc", 1641 "codecs/opus/audio_encoder_opus_unittest.cc", 1642 "codecs/opus/opus_bandwidth_unittest.cc", 1643 "codecs/opus/opus_unittest.cc", 1644 "codecs/red/audio_encoder_copy_red_unittest.cc", 1645 "neteq/audio_multi_vector_unittest.cc", 1646 "neteq/audio_vector_unittest.cc", 1647 "neteq/background_noise_unittest.cc", 1648 "neteq/buffer_level_filter_unittest.cc", 1649 "neteq/comfort_noise_unittest.cc", 1650 "neteq/decision_logic_unittest.cc", 1651 "neteq/decoder_database_unittest.cc", 1652 "neteq/delay_manager_unittest.cc", 1653 "neteq/dsp_helper_unittest.cc", 1654 "neteq/dtmf_buffer_unittest.cc", 1655 "neteq/dtmf_tone_generator_unittest.cc", 1656 "neteq/expand_unittest.cc", 1657 "neteq/histogram_unittest.cc", 1658 "neteq/merge_unittest.cc", 1659 "neteq/mock/mock_buffer_level_filter.h", 1660 "neteq/mock/mock_decoder_database.h", 1661 "neteq/mock/mock_delay_manager.h", 1662 "neteq/mock/mock_dtmf_buffer.h", 1663 "neteq/mock/mock_dtmf_tone_generator.h", 1664 "neteq/mock/mock_expand.h", 1665 "neteq/mock/mock_histogram.h", 1666 "neteq/mock/mock_neteq_controller.h", 1667 "neteq/mock/mock_packet_buffer.h", 1668 "neteq/mock/mock_red_payload_splitter.h", 1669 "neteq/mock/mock_statistics_calculator.h", 1670 "neteq/nack_tracker_unittest.cc", 1671 "neteq/neteq_decoder_plc_unittest.cc", 1672 "neteq/neteq_impl_unittest.cc", 1673 "neteq/neteq_network_stats_unittest.cc", 1674 "neteq/neteq_stereo_unittest.cc", 1675 "neteq/neteq_unittest.cc", 1676 "neteq/normal_unittest.cc", 1677 "neteq/packet_arrival_history_unittest.cc", 1678 "neteq/packet_buffer_unittest.cc", 1679 "neteq/post_decode_vad_unittest.cc", 1680 "neteq/random_vector_unittest.cc", 1681 "neteq/red_payload_splitter_unittest.cc", 1682 "neteq/reorder_optimizer_unittest.cc", 1683 "neteq/statistics_calculator_unittest.cc", 1684 "neteq/sync_buffer_unittest.cc", 1685 "neteq/time_stretch_unittest.cc", 1686 "neteq/timestamp_scaler_unittest.cc", 1687 "neteq/tools/input_audio_file_unittest.cc", 1688 "neteq/tools/packet_unittest.cc", 1689 "neteq/underrun_optimizer_unittest.cc", 1690 ] 1691 1692 deps = [ 1693 ":acm_receive_test", 1694 ":acm_send_test", 1695 ":audio_coding", 1696 ":audio_coding_module_typedefs", 1697 ":audio_coding_modules_tests_shared", 1698 ":audio_coding_opus_common", 1699 ":audio_encoder_cng", 1700 ":audio_network_adaptor", 1701 ":default_neteq_factory", 1702 ":g711", 1703 ":ilbc", 1704 ":legacy_encoded_audio_frame", 1705 ":mocks", 1706 ":neteq", 1707 ":neteq_input_audio_tools", 1708 ":neteq_test_support", 1709 ":neteq_test_tools", 1710 ":neteq_tools", 1711 ":neteq_tools_minimal", 1712 ":pcm16b", 1713 ":red", 1714 ":webrtc_cng", 1715 ":webrtc_opus", 1716 "..:module_api", 1717 "..:module_api_public", 1718 "../../api:array_view", 1719 "../../api/audio:audio_frame_api", 1720 "../../api/audio_codecs:audio_codecs_api", 1721 "../../api/audio_codecs:builtin_audio_decoder_factory", 1722 "../../api/audio_codecs:builtin_audio_encoder_factory", 1723 "../../api/audio_codecs/opus:audio_decoder_multiopus", 1724 "../../api/audio_codecs/opus:audio_decoder_opus", 1725 "../../api/audio_codecs/opus:audio_encoder_multiopus", 1726 "../../api/audio_codecs/opus:audio_encoder_opus", 1727 "../../api/neteq:default_neteq_controller_factory", 1728 "../../api/neteq:neteq_api", 1729 "../../api/neteq:neteq_controller_api", 1730 "../../api/neteq:tick_timer", 1731 "../../api/neteq:tick_timer_unittest", 1732 "../../api/rtc_event_log", 1733 "../../common_audio", 1734 "../../common_audio:common_audio_c", 1735 "../../common_audio:mock_common_audio", 1736 "../../logging:mocks", 1737 "../../logging:rtc_event_audio", 1738 "../../modules/rtp_rtcp:rtp_rtcp_format", 1739 "../../rtc_base", 1740 "../../rtc_base:checks", 1741 "../../rtc_base:ignore_wundef", 1742 "../../rtc_base:macromagic", 1743 "../../rtc_base:platform_thread", 1744 "../../rtc_base:refcount", 1745 "../../rtc_base:rtc_base_tests_utils", 1746 "../../rtc_base:rtc_event", 1747 "../../rtc_base:safe_conversions", 1748 "../../rtc_base:sanitizer", 1749 "../../rtc_base:stringutils", 1750 "../../rtc_base:timeutils", 1751 "../../rtc_base/synchronization:mutex", 1752 "../../rtc_base/system:arch", 1753 "../../system_wrappers", 1754 "../../test:audio_codec_mocks", 1755 "../../test:audio_test_common", 1756 "../../test:field_trial", 1757 "../../test:fileutils", 1758 "../../test:rtc_expect_death", 1759 "../../test:rtp_test_utils", 1760 "../../test:scoped_key_value_config", 1761 "../../test:test_common", 1762 "../../test:test_support", 1763 "codecs/opus/test", 1764 "codecs/opus/test:test_unittest", 1765 "//testing/gtest", 1766 ] 1767 absl_deps = [ 1768 "//third_party/abseil-cpp/absl/flags:flag", 1769 "//third_party/abseil-cpp/absl/memory", 1770 "//third_party/abseil-cpp/absl/strings", 1771 "//third_party/abseil-cpp/absl/types:optional", 1772 ] 1773 1774 defines = audio_coding_defines 1775 1776 if (rtc_enable_protobuf) { 1777 defines += [ "WEBRTC_NETEQ_UNITTEST_BITEXACT" ] 1778 deps += [ 1779 ":ana_config_proto", 1780 ":neteq_unittest_proto", 1781 ] 1782 } 1783 } 1784 } 1785} 1786 1787# For backwards compatibility only! Use 1788# webrtc/api/audio_codecs:audio_codecs_api instead. 1789# TODO(kwiberg): Remove this. 1790rtc_source_set("audio_decoder_interface") { 1791 visibility += [ "*" ] 1792 sources = [ "codecs/audio_decoder.h" ] 1793 deps = [ "../../api/audio_codecs:audio_codecs_api" ] 1794} 1795 1796# For backwards compatibility only! Use 1797# webrtc/api/audio_codecs:audio_codecs_api instead. 1798# TODO(ossu): Remove this. 1799rtc_source_set("audio_encoder_interface") { 1800 visibility += [ "*" ] 1801 sources = [ "codecs/audio_encoder.h" ] 1802 deps = [ "../../api/audio_codecs:audio_codecs_api" ] 1803} 1804