webrtc/modules/audio_processing
Markus Handell c89fdd716c Refactor the PlatformThread API.
PlatformThread's API is using old style function pointers, causes
casting, is unintuitive and forces artificial call sequences, and
is additionally possible to misuse in release mode.

Fix this by an API face lift:
1. The class is turned into a handle, which can be empty.
2. The only way of getting a non-empty PlatformThread is by calling
SpawnJoinable or SpawnDetached, clearly conveying the semantics to the
code reader.
3. Handles can be Finalized, which works differently for joinable and
detached threads:
  a) Handles for detached threads are simply closed where applicable.
  b) Joinable threads are joined before handles are closed.
4. The destructor finalizes handles. No explicit call is needed.

Fixed: webrtc:12727
Change-Id: Id00a0464edf4fc9e552b6a1fbb5d2e1280e88811
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/215075
Commit-Queue: Markus Handell <handellm@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33923}
2021-05-05 09:59:07 +00:00
..
aec3 AEC3: Avoid overcompensating for render onsets during dominant nearend 2021-04-20 12:33:02 +00:00
aec_dump Add refined handling of the internal scaling of the audio in APM 2021-03-15 19:12:02 +00:00
aecm Reland "Merge cpu_features build targets into //system_wrappers." 2020-09-06 10:38:23 +00:00
agc Adding initial support for lock-less informing of muting 2021-02-09 12:08:54 +00:00
agc2 AGC2 adaptive digital dry run mode 2021-04-29 16:05:57 +00:00
capture_levels_adjuster Add refined handling of the internal scaling of the audio in APM 2021-03-15 19:12:02 +00:00
echo_detector Format almost everything. 2019-07-08 13:45:15 +00:00
g3doc Adding g3doc for AudioProcessingModule (APM) 2021-04-14 09:40:25 +00:00
include AGC2 config operator= and unit tests update 2021-04-29 16:37:17 +00:00
logging Allow separate dump sets for the data dumper in APM 2021-01-20 16:38:17 +00:00
ns Allowing reduced computations in the noise suppressor when the output is not used 2021-03-16 09:28:42 +00:00
test Add refined handling of the internal scaling of the audio in APM 2021-03-15 19:12:02 +00:00
transient Remove from chromium build targets that are not compatible with it. 2021-02-01 13:46:19 +00:00
utility Rename more death test to *DeathTest 2020-05-26 20:27:34 +00:00
vad Merge OOURA BUILD.gn files. 2020-04-21 09:06:37 +00:00
audio_buffer.cc APM: Replace most usages of AudioFrame with a stream interface 2020-03-16 11:51:47 +00:00
audio_buffer.h APM: Replace most usages of AudioFrame with a stream interface 2020-03-16 11:51:47 +00:00
audio_buffer_unittest.cc Rename more death test to *DeathTest 2020-05-26 20:27:34 +00:00
audio_frame_view_unittest.cc Reland "Simplification and refactoring of the AudioBuffer code" 2019-08-22 10:34:05 +00:00
audio_processing_builder_impl.cc Cleanup of the APM creation 2020-09-02 20:28:49 +00:00
audio_processing_impl.cc AGC2 adaptive digital dry run mode 2021-04-29 16:05:57 +00:00
audio_processing_impl.h Reland "Reduce complexity in the APM pipeline when the output is not used" 2021-03-16 09:33:02 +00:00
audio_processing_impl_locking_unittest.cc Refactor the PlatformThread API. 2021-05-05 09:59:07 +00:00
audio_processing_impl_unittest.cc Replace more instances of rtc::RefCountedObject with make_ref_counted. 2021-04-27 17:01:59 +00:00
audio_processing_performance_unittest.cc Refactor the PlatformThread API. 2021-05-05 09:59:07 +00:00
audio_processing_unittest.cc AGC2 config operator= and unit tests update 2021-04-29 16:37:17 +00:00
BUILD.gn Add refined handling of the internal scaling of the audio in APM 2021-03-15 19:12:02 +00:00
common.h Enabling a safe fall-back functionality for overruns in the runtime settings 2021-03-03 12:06:54 +00:00
config_unittest.cc
debug.proto Add refined handling of the internal scaling of the audio in APM 2021-03-15 19:12:02 +00:00
DEPS
echo_control_mobile_bit_exact_unittest.cc Reland "Simplification and refactoring of the AudioBuffer code" 2019-08-22 10:34:05 +00:00
echo_control_mobile_impl.cc Removing deprecated legacy noise suppressor 2020-01-31 07:14:25 +00:00
echo_control_mobile_impl.h Removing deprecated legacy noise suppressor 2020-01-31 07:14:25 +00:00
echo_control_mobile_unittest.cc Remove unused critical section includes. 2020-07-16 13:52:28 +00:00
gain_control_impl.cc Reland "Replace the ExperimentalAgc config with the new config format" 2020-01-17 10:09:09 +00:00
gain_control_impl.h Reland "Replace the ExperimentalAgc config with the new config format" 2020-01-17 10:09:09 +00:00
gain_control_unittest.cc Reland "Replace the ExperimentalAgc config with the new config format" 2020-01-17 10:09:09 +00:00
gain_controller2.cc AGC2 adaptive digital dry run mode 2021-04-29 16:05:57 +00:00
gain_controller2.h AGC2 adaptive digital dry run mode 2021-04-29 16:05:57 +00:00
gain_controller2_unittest.cc AGC2 adaptive digital dry run mode 2021-04-29 16:05:57 +00:00
high_pass_filter.cc Make the high-pass filter operate in full-band 2019-12-18 16:01:24 +00:00
high_pass_filter.h Reduce for reallocations the pre-amplifier and high-pass filter 2020-01-03 14:10:21 +00:00
high_pass_filter_unittest.cc Make the high-pass filter operate in full-band 2019-12-18 16:01:24 +00:00
level_estimator.cc Remove AudioProcessing::level_estimator() getter 2019-10-11 18:08:17 +00:00
level_estimator.h Remove AudioProcessing::level_estimator() getter 2019-10-11 18:08:17 +00:00
level_estimator_unittest.cc Remove AudioProcessing::level_estimator() getter 2019-10-11 18:08:17 +00:00
optionally_built_submodule_creators.cc Add unittests for APM with submodule creation disabled 2020-04-27 11:47:15 +00:00
optionally_built_submodule_creators.h Add unittests for APM with submodule creation disabled 2020-04-27 11:47:15 +00:00
OWNERS Remove wildcard ownership for build files. 2020-02-19 14:05:46 +00:00
render_queue_item_verifier.h
residual_echo_detector.cc Reland "Simplification and refactoring of the AudioBuffer code" 2019-08-22 10:34:05 +00:00
residual_echo_detector.h
residual_echo_detector_unittest.cc Replace more instances of rtc::RefCountedObject with make_ref_counted. 2021-04-27 17:01:59 +00:00
rms_level.cc Removing all external access to the integer sample data in AudioBuffer 2019-08-20 08:36:47 +00:00
rms_level.h Add directive to make webrtc metrics optional. 2019-12-09 13:55:50 +00:00
rms_level_unittest.cc Removing all external access to the integer sample data in AudioBuffer 2019-08-20 08:36:47 +00:00
splitting_filter.cc Optimizations and refactoring of the APM 3-band split filter 2020-02-24 13:19:14 +00:00
splitting_filter.h Optimizations and refactoring of the APM 3-band split filter 2020-02-24 13:19:14 +00:00
splitting_filter_unittest.cc Reland "Simplification and refactoring of the AudioBuffer code" 2019-08-22 10:34:05 +00:00
three_band_filter_bank.cc Optimizations and refactoring of the APM 3-band split filter 2020-02-24 13:19:14 +00:00
three_band_filter_bank.h Optimizations and refactoring of the APM 3-band split filter 2020-02-24 13:19:14 +00:00
typing_detection.cc
typing_detection.h Reland "Export symbols needed by the Chromium component build (part 1)." 2018-10-11 09:50:21 +00:00
voice_detection.cc APM: Localize/abstract the usage of AudioFrame 2020-03-17 13:55:41 +00:00
voice_detection.h Delete voice_detection() pointer to submodule 2019-10-07 13:06:05 +00:00
voice_detection_unittest.cc Delete voice_detection() pointer to submodule 2019-10-07 13:06:05 +00:00