| OLD | NEW |
| 1 # Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. | 1 # Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. |
| 2 # | 2 # |
| 3 # Use of this source code is governed by a BSD-style license | 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 | 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 | 5 # tree. An additional intellectual property rights grant can be found |
| 6 # in the file PATENTS. All contributing project authors may | 6 # in the file PATENTS. All contributing project authors may |
| 7 # be found in the AUTHORS file in the root of the source tree. | 7 # be found in the AUTHORS file in the root of the source tree. |
| 8 | 8 |
| 9 import("//build/config/arm.gni") | 9 import("//build/config/arm.gni") |
| 10 import("//third_party/protobuf/proto_library.gni") | 10 import("//third_party/protobuf/proto_library.gni") |
| 11 import("../../build/webrtc.gni") | 11 import("../../build/webrtc.gni") |
| 12 | 12 |
| 13 declare_args() { | 13 declare_args() { |
| 14 # Disables the usual mode where we trust the reported system delay | 14 # Disables the usual mode where we trust the reported system delay |
| 15 # values the AEC receives. The corresponding define is set appropriately | 15 # values the AEC receives. The corresponding define is set appropriately |
| 16 # in the code, but it can be force-enabled here for testing. | 16 # in the code, but it can be force-enabled here for testing. |
| 17 aec_untrusted_delay_for_testing = false | 17 aec_untrusted_delay_for_testing = false |
| 18 } | 18 } |
| 19 | 19 |
| 20 source_set("audio_processing") { | 20 rtc_source_set("audio_processing") { |
| 21 sources = [ | 21 sources = [ |
| 22 "aec/aec_core.cc", | 22 "aec/aec_core.cc", |
| 23 "aec/aec_core.h", | 23 "aec/aec_core.h", |
| 24 "aec/aec_core_optimized_methods.h", | 24 "aec/aec_core_optimized_methods.h", |
| 25 "aec/aec_rdft.cc", | 25 "aec/aec_rdft.cc", |
| 26 "aec/aec_rdft.h", | 26 "aec/aec_rdft.h", |
| 27 "aec/aec_resampler.cc", | 27 "aec/aec_resampler.cc", |
| 28 "aec/aec_resampler.h", | 28 "aec/aec_resampler.h", |
| 29 "aec/echo_cancellation.cc", | 29 "aec/echo_cancellation.cc", |
| 30 "aec/echo_cancellation.h", | 30 "aec/echo_cancellation.h", |
| (...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 247 proto_library("audioproc_debug_proto") { | 247 proto_library("audioproc_debug_proto") { |
| 248 sources = [ | 248 sources = [ |
| 249 "debug.proto", | 249 "debug.proto", |
| 250 ] | 250 ] |
| 251 | 251 |
| 252 proto_out_dir = "webrtc/modules/audio_processing" | 252 proto_out_dir = "webrtc/modules/audio_processing" |
| 253 } | 253 } |
| 254 } | 254 } |
| 255 | 255 |
| 256 if (current_cpu == "x86" || current_cpu == "x64") { | 256 if (current_cpu == "x86" || current_cpu == "x64") { |
| 257 source_set("audio_processing_sse2") { | 257 rtc_source_set("audio_processing_sse2") { |
| 258 sources = [ | 258 sources = [ |
| 259 "aec/aec_core_sse2.cc", | 259 "aec/aec_core_sse2.cc", |
| 260 "aec/aec_rdft_sse2.cc", | 260 "aec/aec_rdft_sse2.cc", |
| 261 ] | 261 ] |
| 262 | 262 |
| 263 if (is_posix) { | 263 if (is_posix) { |
| 264 cflags = [ "-msse2" ] | 264 cflags = [ "-msse2" ] |
| 265 } | 265 } |
| 266 | 266 |
| 267 configs += [ "../..:common_config" ] | 267 configs += [ "../..:common_config" ] |
| 268 public_configs = [ "../..:common_inherited_config" ] | 268 public_configs = [ "../..:common_inherited_config" ] |
| 269 | 269 |
| 270 if (apm_debug_dump) { | 270 if (apm_debug_dump) { |
| 271 defines = [ "WEBRTC_APM_DEBUG_DUMP=1" ] | 271 defines = [ "WEBRTC_APM_DEBUG_DUMP=1" ] |
| 272 } else { | 272 } else { |
| 273 defines = [ "WEBRTC_APM_DEBUG_DUMP=0" ] | 273 defines = [ "WEBRTC_APM_DEBUG_DUMP=0" ] |
| 274 } | 274 } |
| 275 } | 275 } |
| 276 } | 276 } |
| 277 | 277 |
| 278 if (rtc_build_with_neon) { | 278 if (rtc_build_with_neon) { |
| 279 source_set("audio_processing_neon") { | 279 rtc_source_set("audio_processing_neon") { |
| 280 sources = [ | 280 sources = [ |
| 281 "aec/aec_core_neon.cc", | 281 "aec/aec_core_neon.cc", |
| 282 "aec/aec_rdft_neon.cc", | 282 "aec/aec_rdft_neon.cc", |
| 283 "aecm/aecm_core_neon.cc", | 283 "aecm/aecm_core_neon.cc", |
| 284 "ns/nsx_core_neon.c", | 284 "ns/nsx_core_neon.c", |
| 285 ] | 285 ] |
| 286 | 286 |
| 287 if (current_cpu != "arm64") { | 287 if (current_cpu != "arm64") { |
| 288 # Enable compilation for the NEON instruction set. This is needed | 288 # Enable compilation for the NEON instruction set. This is needed |
| 289 # since //build/config/arm.gni only enables NEON for iOS, not Android. | 289 # since //build/config/arm.gni only enables NEON for iOS, not Android. |
| 290 # This provides the same functionality as webrtc/build/arm_neon.gypi. | 290 # This provides the same functionality as webrtc/build/arm_neon.gypi. |
| 291 configs -= [ "//build/config/compiler:compiler_arm_fpu" ] | 291 suppressed_configs += [ "//build/config/compiler:compiler_arm_fpu" ] |
| 292 cflags = [ "-mfpu=neon" ] | 292 cflags = [ "-mfpu=neon" ] |
| 293 } | 293 } |
| 294 | 294 |
| 295 # Disable LTO on NEON targets due to compiler bug. | 295 # Disable LTO on NEON targets due to compiler bug. |
| 296 # TODO(fdegans): Enable this. See crbug.com/408997. | 296 # TODO(fdegans): Enable this. See crbug.com/408997. |
| 297 if (rtc_use_lto) { | 297 if (rtc_use_lto) { |
| 298 cflags -= [ | 298 cflags -= [ |
| 299 "-flto", | 299 "-flto", |
| 300 "-ffat-lto-objects", | 300 "-ffat-lto-objects", |
| 301 ] | 301 ] |
| 302 } | 302 } |
| 303 | 303 |
| 304 configs += [ "../..:common_config" ] | 304 configs += [ "../..:common_config" ] |
| 305 public_configs = [ "../..:common_inherited_config" ] | 305 public_configs = [ "../..:common_inherited_config" ] |
| 306 | 306 |
| 307 deps = [ | 307 deps = [ |
| 308 "../../common_audio", | 308 "../../common_audio", |
| 309 ] | 309 ] |
| 310 | 310 |
| 311 if (apm_debug_dump) { | 311 if (apm_debug_dump) { |
| 312 defines = [ "WEBRTC_APM_DEBUG_DUMP=1" ] | 312 defines = [ "WEBRTC_APM_DEBUG_DUMP=1" ] |
| 313 } else { | 313 } else { |
| 314 defines = [ "WEBRTC_APM_DEBUG_DUMP=0" ] | 314 defines = [ "WEBRTC_APM_DEBUG_DUMP=0" ] |
| 315 } | 315 } |
| 316 } | 316 } |
| 317 } | 317 } |
| 318 | 318 |
| 319 if (rtc_include_tests) { | 319 if (rtc_include_tests) { |
| 320 executable("audioproc") { | 320 rtc_executable("audioproc") { |
| 321 testonly = true | 321 testonly = true |
| 322 sources = [ | 322 sources = [ |
| 323 "test/process_test.cc", | 323 "test/process_test.cc", |
| 324 ] | 324 ] |
| 325 | 325 |
| 326 configs += [ "../..:common_config" ] | 326 configs += [ "../..:common_config" ] |
| 327 public_configs = [ "../..:common_inherited_config" ] | 327 public_configs = [ "../..:common_inherited_config" ] |
| 328 | 328 |
| 329 deps = [ | 329 deps = [ |
| 330 ":audio_processing", | 330 ":audio_processing", |
| 331 ":audioproc_debug_proto", | 331 ":audioproc_debug_proto", |
| 332 ":audioproc_protobuf_utils", | 332 ":audioproc_protobuf_utils", |
| 333 ":audioproc_test_utils", | 333 ":audioproc_test_utils", |
| 334 "../../system_wrappers", | 334 "../../system_wrappers", |
| 335 "../../system_wrappers:system_wrappers_default", | 335 "../../system_wrappers:system_wrappers_default", |
| 336 "../../test:test_support", | 336 "../../test:test_support", |
| 337 "//build/config/sanitizers:deps", | 337 "//build/config/sanitizers:deps", |
| 338 "//testing/gtest", | 338 "//testing/gtest", |
| 339 "//third_party/gflags:gflags", | 339 "//third_party/gflags:gflags", |
| 340 ] | 340 ] |
| 341 } # audioproc | 341 } # audioproc |
| 342 | 342 |
| 343 executable("unpack_aecdump") { | 343 rtc_executable("unpack_aecdump") { |
| 344 testonly = true | 344 testonly = true |
| 345 sources = [ | 345 sources = [ |
| 346 "test/unpack.cc", | 346 "test/unpack.cc", |
| 347 ] | 347 ] |
| 348 | 348 |
| 349 configs += [ "../..:common_config" ] | 349 configs += [ "../..:common_config" ] |
| 350 public_configs = [ "../..:common_inherited_config" ] | 350 public_configs = [ "../..:common_inherited_config" ] |
| 351 | 351 |
| 352 deps = [ | 352 deps = [ |
| 353 ":audio_processing", | 353 ":audio_processing", |
| 354 ":audioproc_debug_proto", | 354 ":audioproc_debug_proto", |
| 355 ":audioproc_protobuf_utils", | 355 ":audioproc_protobuf_utils", |
| 356 ":audioproc_test_utils", | 356 ":audioproc_test_utils", |
| 357 "../../common_audio", | 357 "../../common_audio", |
| 358 "../../system_wrappers:system_wrappers_default", | 358 "../../system_wrappers:system_wrappers_default", |
| 359 "//build/config/sanitizers:deps", | 359 "//build/config/sanitizers:deps", |
| 360 "//third_party/gflags:gflags", | 360 "//third_party/gflags:gflags", |
| 361 ] | 361 ] |
| 362 } # unpack_aecdump | 362 } # unpack_aecdump |
| 363 | 363 |
| 364 executable("audioproc_f") { | 364 rtc_executable("audioproc_f") { |
| 365 testonly = true | 365 testonly = true |
| 366 sources = [ | 366 sources = [ |
| 367 "test/aec_dump_based_simulator.cc", | 367 "test/aec_dump_based_simulator.cc", |
| 368 "test/aec_dump_based_simulator.h", | 368 "test/aec_dump_based_simulator.h", |
| 369 "test/audio_processing_simulator.cc", | 369 "test/audio_processing_simulator.cc", |
| 370 "test/audio_processing_simulator.h", | 370 "test/audio_processing_simulator.h", |
| 371 "test/audioproc_float.cc", | 371 "test/audioproc_float.cc", |
| 372 "test/wav_based_simulator.cc", | 372 "test/wav_based_simulator.cc", |
| 373 "test/wav_based_simulator.h", | 373 "test/wav_based_simulator.h", |
| 374 ] | 374 ] |
| 375 | 375 |
| 376 configs += [ "../..:common_config" ] | 376 configs += [ "../..:common_config" ] |
| 377 public_configs = [ "../..:common_inherited_config" ] | 377 public_configs = [ "../..:common_inherited_config" ] |
| 378 | 378 |
| 379 deps = [ | 379 deps = [ |
| 380 ":audio_processing", | 380 ":audio_processing", |
| 381 ":audioproc_debug_proto", | 381 ":audioproc_debug_proto", |
| 382 ":audioproc_protobuf_utils", | 382 ":audioproc_protobuf_utils", |
| 383 ":audioproc_test_utils", | 383 ":audioproc_test_utils", |
| 384 "../../system_wrappers", | 384 "../../system_wrappers", |
| 385 "../../system_wrappers:system_wrappers_default", | 385 "../../system_wrappers:system_wrappers_default", |
| 386 "../../test:test_support", | 386 "../../test:test_support", |
| 387 "//build/config/sanitizers:deps", | 387 "//build/config/sanitizers:deps", |
| 388 "//testing/gtest", | 388 "//testing/gtest", |
| 389 "//third_party/gflags:gflags", | 389 "//third_party/gflags:gflags", |
| 390 ] | 390 ] |
| 391 } # audioproc_f | 391 } # audioproc_f |
| 392 | 392 |
| 393 source_set("audioproc_test_utils") { | 393 rtc_source_set("audioproc_test_utils") { |
| 394 testonly = true | 394 testonly = true |
| 395 sources = [ | 395 sources = [ |
| 396 "test/audio_buffer_tools.cc", | 396 "test/audio_buffer_tools.cc", |
| 397 "test/audio_buffer_tools.h", | 397 "test/audio_buffer_tools.h", |
| 398 "test/test_utils.cc", | 398 "test/test_utils.cc", |
| 399 "test/test_utils.h", | 399 "test/test_utils.h", |
| 400 ] | 400 ] |
| 401 | 401 |
| 402 configs += [ "../..:common_config" ] | 402 configs += [ "../..:common_config" ] |
| 403 public_configs = [ "../..:common_inherited_config" ] | 403 public_configs = [ "../..:common_inherited_config" ] |
| 404 | 404 |
| 405 deps = [ | 405 deps = [ |
| 406 "../../base:rtc_base_approved", | 406 "../../base:rtc_base_approved", |
| 407 "../../common_audio", | 407 "../../common_audio", |
| 408 ] | 408 ] |
| 409 } | 409 } |
| 410 | 410 |
| 411 executable("transient_suppression_test") { | 411 rtc_executable("transient_suppression_test") { |
| 412 testonly = true | 412 testonly = true |
| 413 sources = [ | 413 sources = [ |
| 414 "transient/file_utils.cc", | 414 "transient/file_utils.cc", |
| 415 "transient/file_utils.h", | 415 "transient/file_utils.h", |
| 416 "transient/transient_suppression_test.cc", | 416 "transient/transient_suppression_test.cc", |
| 417 ] | 417 ] |
| 418 deps = [ | 418 deps = [ |
| 419 ":audio_processing", | 419 ":audio_processing", |
| 420 "../../system_wrappers:metrics_default", | 420 "../../system_wrappers:metrics_default", |
| 421 "../../test:test_support", | 421 "../../test:test_support", |
| 422 "//testing/gtest", | 422 "//testing/gtest", |
| 423 "//third_party/gflags", | 423 "//third_party/gflags", |
| 424 ] | 424 ] |
| 425 } | 425 } |
| 426 | 426 |
| 427 executable("click_annotate") { | 427 rtc_executable("click_annotate") { |
| 428 testonly = true | 428 testonly = true |
| 429 sources = [ | 429 sources = [ |
| 430 "transient/click_annotate.cc", | 430 "transient/click_annotate.cc", |
| 431 "transient/file_utils.cc", | 431 "transient/file_utils.cc", |
| 432 "transient/file_utils.h", | 432 "transient/file_utils.h", |
| 433 ] | 433 ] |
| 434 deps = [ | 434 deps = [ |
| 435 ":audio_processing", | 435 ":audio_processing", |
| 436 "../../system_wrappers:metrics_default", | 436 "../../system_wrappers:metrics_default", |
| 437 ] | 437 ] |
| 438 } | 438 } |
| 439 | 439 |
| 440 executable("nonlinear_beamformer_test") { | 440 rtc_executable("nonlinear_beamformer_test") { |
| 441 testonly = true | 441 testonly = true |
| 442 sources = [ | 442 sources = [ |
| 443 "beamformer/nonlinear_beamformer_test.cc", | 443 "beamformer/nonlinear_beamformer_test.cc", |
| 444 ] | 444 ] |
| 445 deps = [ | 445 deps = [ |
| 446 ":audio_processing", | 446 ":audio_processing", |
| 447 ":audioproc_test_utils", | 447 ":audioproc_test_utils", |
| 448 "../../system_wrappers:metrics_default", | 448 "../../system_wrappers:metrics_default", |
| 449 "//third_party/gflags", | 449 "//third_party/gflags", |
| 450 ] | 450 ] |
| 451 } | 451 } |
| 452 | 452 |
| 453 if (rtc_enable_intelligibility_enhancer) { | 453 if (rtc_enable_intelligibility_enhancer) { |
| 454 executable("intelligibility_proc") { | 454 rtc_executable("intelligibility_proc") { |
| 455 testonly = true | 455 testonly = true |
| 456 sources = [ | 456 sources = [ |
| 457 "intelligibility/test/intelligibility_proc.cc", | 457 "intelligibility/test/intelligibility_proc.cc", |
| 458 ] | 458 ] |
| 459 deps = [ | 459 deps = [ |
| 460 ":audio_processing", | 460 ":audio_processing", |
| 461 ":audioproc_test_utils", | 461 ":audioproc_test_utils", |
| 462 "../../system_wrappers:metrics_default", | 462 "../../system_wrappers:metrics_default", |
| 463 "../../test:test_support", | 463 "../../test:test_support", |
| 464 "//testing/gtest", | 464 "//testing/gtest", |
| 465 "//third_party/gflags", | 465 "//third_party/gflags", |
| 466 ] | 466 ] |
| 467 } | 467 } |
| 468 } | 468 } |
| 469 | 469 |
| 470 if (rtc_enable_protobuf) { | 470 if (rtc_enable_protobuf) { |
| 471 proto_library("audioproc_unittest_proto") { | 471 proto_library("audioproc_unittest_proto") { |
| 472 sources = [ | 472 sources = [ |
| 473 "test/unittest.proto", | 473 "test/unittest.proto", |
| 474 ] | 474 ] |
| 475 proto_out_dir = "webrtc/modules/audio_processing" | 475 proto_out_dir = "webrtc/modules/audio_processing" |
| 476 } | 476 } |
| 477 | 477 |
| 478 source_set("audioproc_protobuf_utils") { | 478 rtc_source_set("audioproc_protobuf_utils") { |
| 479 sources = [ | 479 sources = [ |
| 480 "test/protobuf_utils.cc", | 480 "test/protobuf_utils.cc", |
| 481 "test/protobuf_utils.h", | 481 "test/protobuf_utils.h", |
| 482 ] | 482 ] |
| 483 | 483 |
| 484 deps = [ | 484 deps = [ |
| 485 ":audioproc_debug_proto", | 485 ":audioproc_debug_proto", |
| 486 ] | 486 ] |
| 487 } | 487 } |
| 488 } | 488 } |
| 489 } | 489 } |
| OLD | NEW |