实例介绍
基于最新webrtc人工抽离出来的aec demo。 与平台抽离,可直接在Linux下编译。 mkdir build cd build cmake ../src; make -j; only aec: ./bin/demo <mic_signal.pcm> <ref_signal.pcm> <aec_output.pcm> aec + aes + cng(comfort noise generate): ./bin/echo_remover_demo <mic_signal.pcm> <ref_signal.pcm> <aec_output.pcm> 转载请注明出处: https://bl
【实例截图】
【核心代码】
webrtc_aec
├── PaxHeader
│ └── webrtc_aec
└── webrtc_aec
├── PaxHeader
│ ├── README.md
│ ├── src
│ └── third_party
├── README.md
├── src
│ ├── CMakeLists.txt
│ ├── PaxHeader
│ │ ├── CMakeLists.txt
│ │ ├── absl
│ │ ├── api
│ │ ├── arch.h
│ │ ├── array_view.h
│ │ ├── checks.cc
│ │ ├── checks.h
│ │ ├── common_audio
│ │ ├── common_types.h
│ │ ├── deprecation.h
│ │ ├── gmock
│ │ ├── gtest
│ │ ├── inline.h
│ │ ├── modules
│ │ ├── optional.h
│ │ ├── rtc_base
│ │ ├── safe_compare.h
│ │ ├── safe_conversions.h
│ │ ├── safe_conversions_impl.h
│ │ ├── safe_minmax.h
│ │ ├── string_builder.cc
│ │ ├── string_builder.h
│ │ ├── stringutils.cc
│ │ ├── stringutils.h
│ │ ├── system_wrappers
│ │ ├── test
│ │ ├── type_traits.h
│ │ ├── typedefs.h
│ │ ├── unused.h
│ │ ├── video_bitrate_allocation.cc
│ │ └── video_bitrate_allocation.h
│ ├── absl
│ │ ├── PaxHeader
│ │ │ ├── base
│ │ │ ├── memory
│ │ │ ├── meta
│ │ │ ├── types
│ │ │ └── utility
│ │ ├── base
│ │ │ ├── PaxHeader
│ │ │ │ ├── attributes.h
│ │ │ │ ├── config.h
│ │ │ │ ├── internal
│ │ │ │ ├── macros.h
│ │ │ │ ├── optimization.h
│ │ │ │ ├── policy_checks.h
│ │ │ │ └── port.h
│ │ │ ├── attributes.h
│ │ │ ├── config.h
│ │ │ ├── internal
│ │ │ │ ├── PaxHeader
│ │ │ │ │ ├── identity.h
│ │ │ │ │ ├── inline_variable.h
│ │ │ │ │ └── invoke.h
│ │ │ │ ├── identity.h
│ │ │ │ ├── inline_variable.h
│ │ │ │ └── invoke.h
│ │ │ ├── macros.h
│ │ │ ├── optimization.h
│ │ │ ├── policy_checks.h
│ │ │ └── port.h
│ │ ├── memory
│ │ │ ├── PaxHeader
│ │ │ │ └── memory.h
│ │ │ └── memory.h
│ │ ├── meta
│ │ │ ├── PaxHeader
│ │ │ │ └── type_traits.h
│ │ │ └── type_traits.h
│ │ ├── types
│ │ │ ├── PaxHeader
│ │ │ │ ├── bad_optional_access.h
│ │ │ │ └── optional.h
│ │ │ ├── bad_optional_access.h
│ │ │ └── optional.h
│ │ └── utility
│ │ ├── PaxHeader
│ │ │ └── utility.h
│ │ └── utility.h
│ ├── api
│ │ ├── CMakeLists.txt
│ │ ├── PaxHeader
│ │ │ ├── CMakeLists.txt
│ │ │ ├── array_view.h
│ │ │ └── audio
│ │ ├── array_view.h
│ │ └── audio
│ │ ├── CMakeLists.txt
│ │ ├── PaxHeader
│ │ │ ├── CMakeLists.txt
│ │ │ ├── audio_frame.cc
│ │ │ ├── audio_frame.h
│ │ │ ├── echo_canceller3_config.cc
│ │ │ ├── echo_canceller3_config.h
│ │ │ └── echo_control.h
│ │ ├── audio_frame.cc
│ │ ├── audio_frame.h
│ │ ├── echo_canceller3_config.cc
│ │ ├── echo_canceller3_config.h
│ │ └── echo_control.h
│ ├── arch.h
│ ├── array_view.h
│ ├── checks.cc
│ ├── checks.h
│ ├── common_audio
│ │ ├── CMakeLists.txt
│ │ ├── PaxHeader
│ │ │ ├── CMakeLists.txt
│ │ │ ├── audio_util.cc
│ │ │ ├── channel_buffer.cc
│ │ │ ├── channel_buffer.h
│ │ │ ├── include
│ │ │ ├── resampler
│ │ │ ├── ring_buffer.c
│ │ │ ├── ring_buffer.h
│ │ │ ├── signal_processing
│ │ │ ├── sparse_fir_filter.cc
│ │ │ ├── sparse_fir_filter.h
│ │ │ ├── wav_file.cc
│ │ │ ├── wav_file.h
│ │ │ ├── wav_header.cc
│ │ │ └── wav_header.h
│ │ ├── audio_util.cc
│ │ ├── channel_buffer.cc
│ │ ├── channel_buffer.h
│ │ ├── include
│ │ │ ├── PaxHeader
│ │ │ │ └── audio_util.h
│ │ │ └── audio_util.h
│ │ ├── resampler
│ │ │ ├── PaxHeader
│ │ │ │ ├── push_sinc_resampler.cc
│ │ │ │ ├── push_sinc_resampler.h
│ │ │ │ ├── sinc_resampler.cc
│ │ │ │ ├── sinc_resampler.h
│ │ │ │ └── sinc_resampler_sse.cc
│ │ │ ├── push_sinc_resampler.cc
│ │ │ ├── push_sinc_resampler.h
│ │ │ ├── sinc_resampler.cc
│ │ │ ├── sinc_resampler.h
│ │ │ └── sinc_resampler_sse.cc
│ │ ├── ring_buffer.c
│ │ ├── ring_buffer.h
│ │ ├── signal_processing
│ │ │ ├── PaxHeader
│ │ │ │ ├── dot_product_with_scale.cc
│ │ │ │ ├── dot_product_with_scale.h
│ │ │ │ ├── include
│ │ │ │ └── splitting_filter.c
│ │ │ ├── dot_product_with_scale.cc
│ │ │ ├── dot_product_with_scale.h
│ │ │ ├── include
│ │ │ │ ├── PaxHeader
│ │ │ │ │ ├── signal_processing_library.h
│ │ │ │ │ └── spl_inl.h
│ │ │ │ ├── signal_processing_library.h
│ │ │ │ └── spl_inl.h
│ │ │ └── splitting_filter.c
│ │ ├── sparse_fir_filter.cc
│ │ ├── sparse_fir_filter.h
│ │ ├── wav_file.cc
│ │ ├── wav_file.h
│ │ ├── wav_header.cc
│ │ └── wav_header.h
│ ├── common_types.h
│ ├── deprecation.h
│ ├── gmock
│ │ ├── PaxHeader
│ │ │ ├── gmock-actions.h
│ │ │ ├── gmock-cardinalities.h
│ │ │ ├── gmock-function-mocker.h
│ │ │ ├── gmock-generated-actions.h
│ │ │ ├── gmock-generated-actions.h.pump
│ │ │ ├── gmock-generated-function-mockers.h
│ │ │ ├── gmock-generated-function-mockers.h.pump
│ │ │ ├── gmock-generated-matchers.h
│ │ │ ├── gmock-generated-matchers.h.pump
│ │ │ ├── gmock-matchers.h
│ │ │ ├── gmock-more-actions.h
│ │ │ ├── gmock-more-matchers.h
│ │ │ ├── gmock-nice-strict.h
│ │ │ ├── gmock-spec-builders.h
│ │ │ ├── gmock.h
│ │ │ └── internal
│ │ ├── gmock-actions.h
│ │ ├── gmock-cardinalities.h
│ │ ├── gmock-function-mocker.h
│ │ ├── gmock-generated-actions.h
│ │ ├── gmock-generated-actions.h.pump
│ │ ├── gmock-generated-function-mockers.h
│ │ ├── gmock-generated-function-mockers.h.pump
│ │ ├── gmock-generated-matchers.h
│ │ ├── gmock-generated-matchers.h.pump
│ │ ├── gmock-matchers.h
│ │ ├── gmock-more-actions.h
│ │ ├── gmock-more-matchers.h
│ │ ├── gmock-nice-strict.h
│ │ ├── gmock-spec-builders.h
│ │ ├── gmock.h
│ │ └── internal
│ │ ├── PaxHeader
│ │ │ ├── custom
│ │ │ ├── gmock-internal-utils.h
│ │ │ ├── gmock-port.h
│ │ │ └── gmock-pp.h
│ │ ├── custom
│ │ │ ├── PaxHeader
│ │ │ │ ├── README.md
│ │ │ │ ├── gmock-generated-actions.h
│ │ │ │ ├── gmock-generated-actions.h.pump
│ │ │ │ ├── gmock-matchers.h
│ │ │ │ └── gmock-port.h
│ │ │ ├── README.md
│ │ │ ├── gmock-generated-actions.h
│ │ │ ├── gmock-generated-actions.h.pump
│ │ │ ├── gmock-matchers.h
│ │ │ └── gmock-port.h
│ │ ├── gmock-internal-utils.h
│ │ ├── gmock-port.h
│ │ └── gmock-pp.h
│ ├── gtest
│ │ ├── PaxHeader
│ │ │ ├── gtest-death-test.h
│ │ │ ├── gtest-matchers.h
│ │ │ ├── gtest-message.h
│ │ │ ├── gtest-param-test.h
│ │ │ ├── gtest-printers.h
│ │ │ ├── gtest-spi.h
│ │ │ ├── gtest-test-part.h
│ │ │ ├── gtest-typed-test.h
│ │ │ ├── gtest.h
│ │ │ ├── gtest_pred_impl.h
│ │ │ ├── gtest_prod.h
│ │ │ └── internal
│ │ ├── gtest-death-test.h
│ │ ├── gtest-matchers.h
│ │ ├── gtest-message.h
│ │ ├── gtest-param-test.h
│ │ ├── gtest-printers.h
│ │ ├── gtest-spi.h
│ │ ├── gtest-test-part.h
│ │ ├── gtest-typed-test.h
│ │ ├── gtest.h
│ │ ├── gtest_pred_impl.h
│ │ ├── gtest_prod.h
│ │ └── internal
│ │ ├── PaxHeader
│ │ │ ├── custom
│ │ │ ├── gtest-death-test-internal.h
│ │ │ ├── gtest-filepath.h
│ │ │ ├── gtest-internal.h
│ │ │ ├── gtest-param-util.h
│ │ │ ├── gtest-port-arch.h
│ │ │ ├── gtest-port.h
│ │ │ ├── gtest-string.h
│ │ │ ├── gtest-type-util.h
│ │ │ └── gtest-type-util.h.pump
│ │ ├── custom
│ │ │ ├── PaxHeader
│ │ │ │ ├── README.md
│ │ │ │ ├── gtest-port.h
│ │ │ │ ├── gtest-printers.h
│ │ │ │ └── gtest.h
│ │ │ ├── README.md
│ │ │ ├── gtest-port.h
│ │ │ ├── gtest-printers.h
│ │ │ └── gtest.h
│ │ ├── gtest-death-test-internal.h
│ │ ├── gtest-filepath.h
│ │ ├── gtest-internal.h
│ │ ├── gtest-param-util.h
│ │ ├── gtest-port-arch.h
│ │ ├── gtest-port.h
│ │ ├── gtest-string.h
│ │ ├── gtest-type-util.h
│ │ └── gtest-type-util.h.pump
│ ├── inline.h
│ ├── modules
│ │ ├── CMakeLists.txt
│ │ ├── PaxHeader
│ │ │ ├── CMakeLists.txt
│ │ │ └── audio_processing
│ │ └── audio_processing
│ │ ├── CMakeLists.txt
│ │ ├── PaxHeader
│ │ │ ├── CMakeLists.txt
│ │ │ ├── aec3
│ │ │ ├── audio_buffer.cc
│ │ │ ├── audio_buffer.h
│ │ │ ├── beamformer
│ │ │ ├── common.h
│ │ │ ├── include
│ │ │ ├── logging
│ │ │ ├── splitting_filter.cc
│ │ │ ├── splitting_filter.h
│ │ │ ├── test
│ │ │ ├── three_band_filter_bank.cc
│ │ │ ├── three_band_filter_bank.h
│ │ │ └── utility
│ │ ├── aec3
│ │ │ ├── CMakeLists.txt
│ │ │ ├── PaxHeader
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── adaptive_fir_filter.cc
│ │ │ │ ├── adaptive_fir_filter.h
│ │ │ │ ├── aec3_common.cc
│ │ │ │ ├── aec3_common.h
│ │ │ │ ├── aec3_fft.cc
│ │ │ │ ├── aec3_fft.h
│ │ │ │ ├── aec_state.cc
│ │ │ │ ├── aec_state.h
│ │ │ │ ├── block_framer.cc
│ │ │ │ ├── block_framer.h
│ │ │ │ ├── block_processor.cc
│ │ │ │ ├── block_processor.h
│ │ │ │ ├── block_processor_metrics.cc
│ │ │ │ ├── block_processor_metrics.h
│ │ │ │ ├── cascaded_biquad_filter.cc
│ │ │ │ ├── cascaded_biquad_filter.h
│ │ │ │ ├── coherence_gain.cc
│ │ │ │ ├── coherence_gain.h
│ │ │ │ ├── comfort_noise_generator.cc
│ │ │ │ ├── comfort_noise_generator.h
│ │ │ │ ├── decimator.cc
│ │ │ │ ├── decimator.h
│ │ │ │ ├── delay_estimate.h
│ │ │ │ ├── downsampled_render_buffer.cc
│ │ │ │ ├── downsampled_render_buffer.h
│ │ │ │ ├── echo_audibility.cc
│ │ │ │ ├── echo_audibility.h
│ │ │ │ ├── echo_canceller3.cc
│ │ │ │ ├── echo_canceller3.h
│ │ │ │ ├── echo_path_delay_estimator.cc
│ │ │ │ ├── echo_path_delay_estimator.h
│ │ │ │ ├── echo_path_variability.cc
│ │ │ │ ├── echo_path_variability.h
│ │ │ │ ├── echo_remover.cc
│ │ │ │ ├── echo_remover.h
│ │ │ │ ├── echo_remover_metrics.cc
│ │ │ │ ├── echo_remover_metrics.h
│ │ │ │ ├── erl_estimator.cc
│ │ │ │ ├── erl_estimator.h
│ │ │ │ ├── erle_estimator.cc
│ │ │ │ ├── erle_estimator.h
│ │ │ │ ├── fft_buffer.cc
│ │ │ │ ├── fft_buffer.h
│ │ │ │ ├── fft_data.h
│ │ │ │ ├── filter_analyzer.cc
│ │ │ │ ├── filter_analyzer.h
│ │ │ │ ├── frame_blocker.cc
│ │ │ │ ├── frame_blocker.h
│ │ │ │ ├── main_filter_update_gain.cc
│ │ │ │ ├── main_filter_update_gain.h
│ │ │ │ ├── matched_filter.cc
│ │ │ │ ├── matched_filter.h
│ │ │ │ ├── matched_filter_lag_aggregator.cc
│ │ │ │ ├── matched_filter_lag_aggregator.h
│ │ │ │ ├── matrix_buffer.cc
│ │ │ │ ├── matrix_buffer.h
│ │ │ │ ├── mock
│ │ │ │ ├── moving_average.cc
│ │ │ │ ├── moving_average.h
│ │ │ │ ├── render_buffer.cc
│ │ │ │ ├── render_buffer.h
│ │ │ │ ├── render_delay_buffer.cc
│ │ │ │ ├── render_delay_buffer.h
│ │ │ │ ├── render_delay_controller.cc
│ │ │ │ ├── render_delay_controller.h
│ │ │ │ ├── render_delay_controller_metrics.cc
│ │ │ │ ├── render_delay_controller_metrics.h
│ │ │ │ ├── render_signal_analyzer.cc
│ │ │ │ ├── render_signal_analyzer.h
│ │ │ │ ├── residual_echo_estimator.cc
│ │ │ │ ├── residual_echo_estimator.h
│ │ │ │ ├── reverb_model.cc
│ │ │ │ ├── reverb_model.h
│ │ │ │ ├── reverb_model_fallback.cc
│ │ │ │ ├── reverb_model_fallback.h
│ │ │ │ ├── shadow_filter_update_gain.cc
│ │ │ │ ├── shadow_filter_update_gain.h
│ │ │ │ ├── skew_estimator.cc
│ │ │ │ ├── skew_estimator.h
│ │ │ │ ├── stationarity_estimator.cc
│ │ │ │ ├── stationarity_estimator.h
│ │ │ │ ├── subtractor.cc
│ │ │ │ ├── subtractor.h
│ │ │ │ ├── subtractor_output.h
│ │ │ │ ├── suppression_filter.cc
│ │ │ │ ├── suppression_filter.h
│ │ │ │ ├── suppression_gain.cc
│ │ │ │ ├── suppression_gain.h
│ │ │ │ ├── suppression_gain_limiter.cc
│ │ │ │ ├── suppression_gain_limiter.h
│ │ │ │ ├── vector_buffer.cc
│ │ │ │ ├── vector_buffer.h
│ │ │ │ └── vector_math.h
│ │ │ ├── adaptive_fir_filter.cc
│ │ │ ├── adaptive_fir_filter.h
│ │ │ ├── aec3_common.cc
│ │ │ ├── aec3_common.h
│ │ │ ├── aec3_fft.cc
│ │ │ ├── aec3_fft.h
│ │ │ ├── aec_state.cc
│ │ │ ├── aec_state.h
│ │ │ ├── block_framer.cc
│ │ │ ├── block_framer.h
│ │ │ ├── block_processor.cc
│ │ │ ├── block_processor.h
│ │ │ ├── block_processor_metrics.cc
│ │ │ ├── block_processor_metrics.h
│ │ │ ├── cascaded_biquad_filter.cc
│ │ │ ├── cascaded_biquad_filter.h
│ │ │ ├── coherence_gain.cc
│ │ │ ├── coherence_gain.h
│ │ │ ├── comfort_noise_generator.cc
│ │ │ ├── comfort_noise_generator.h
│ │ │ ├── decimator.cc
│ │ │ ├── decimator.h
│ │ │ ├── delay_estimate.h
│ │ │ ├── downsampled_render_buffer.cc
│ │ │ ├── downsampled_render_buffer.h
│ │ │ ├── echo_audibility.cc
│ │ │ ├── echo_audibility.h
│ │ │ ├── echo_canceller3.cc
│ │ │ ├── echo_canceller3.h
│ │ │ ├── echo_path_delay_estimator.cc
│ │ │ ├── echo_path_delay_estimator.h
│ │ │ ├── echo_path_variability.cc
│ │ │ ├── echo_path_variability.h
│ │ │ ├── echo_remover.cc
│ │ │ ├── echo_remover.h
│ │ │ ├── echo_remover_metrics.cc
│ │ │ ├── echo_remover_metrics.h
│ │ │ ├── erl_estimator.cc
│ │ │ ├── erl_estimator.h
│ │ │ ├── erle_estimator.cc
│ │ │ ├── erle_estimator.h
│ │ │ ├── fft_buffer.cc
│ │ │ ├── fft_buffer.h
│ │ │ ├── fft_data.h
│ │ │ ├── filter_analyzer.cc
│ │ │ ├── filter_analyzer.h
│ │ │ ├── frame_blocker.cc
│ │ │ ├── frame_blocker.h
│ │ │ ├── main_filter_update_gain.cc
│ │ │ ├── main_filter_update_gain.h
│ │ │ ├── matched_filter.cc
│ │ │ ├── matched_filter.h
│ │ │ ├── matched_filter_lag_aggregator.cc
│ │ │ ├── matched_filter_lag_aggregator.h
│ │ │ ├── matrix_buffer.cc
│ │ │ ├── matrix_buffer.h
│ │ │ ├── mock
│ │ │ │ ├── PaxHeader
│ │ │ │ │ └── mock_block_processor.h
│ │ │ │ └── mock_block_processor.h
│ │ │ ├── moving_average.cc
│ │ │ ├── moving_average.h
│ │ │ ├── render_buffer.cc
│ │ │ ├── render_buffer.h
│ │ │ ├── render_delay_buffer.cc
│ │ │ ├── render_delay_buffer.h
│ │ │ ├── render_delay_controller.cc
│ │ │ ├── render_delay_controller.h
│ │ │ ├── render_delay_controller_metrics.cc
│ │ │ ├── render_delay_controller_metrics.h
│ │ │ ├── render_signal_analyzer.cc
│ │ │ ├── render_signal_analyzer.h
│ │ │ ├── residual_echo_estimator.cc
│ │ │ ├── residual_echo_estimator.h
│ │ │ ├── reverb_model.cc
│ │ │ ├── reverb_model.h
│ │ │ ├── reverb_model_fallback.cc
│ │ │ ├── reverb_model_fallback.h
│ │ │ ├── shadow_filter_update_gain.cc
│ │ │ ├── shadow_filter_update_gain.h
│ │ │ ├── skew_estimator.cc
│ │ │ ├── skew_estimator.h
│ │ │ ├── stationarity_estimator.cc
│ │ │ ├── stationarity_estimator.h
│ │ │ ├── subtractor.cc
│ │ │ ├── subtractor.h
│ │ │ ├── subtractor_output.h
│ │ │ ├── suppression_filter.cc
│ │ │ ├── suppression_filter.h
│ │ │ ├── suppression_gain.cc
│ │ │ ├── suppression_gain.h
│ │ │ ├── suppression_gain_limiter.cc
│ │ │ ├── suppression_gain_limiter.h
│ │ │ ├── vector_buffer.cc
│ │ │ ├── vector_buffer.h
│ │ │ └── vector_math.h
│ │ ├── audio_buffer.cc
│ │ ├── audio_buffer.h
│ │ ├── beamformer
│ │ │ ├── PaxHeader
│ │ │ │ ├── array_util.cc
│ │ │ │ └── array_util.h
│ │ │ ├── array_util.cc
│ │ │ └── array_util.h
│ │ ├── common.h
│ │ ├── include
│ │ │ ├── PaxHeader
│ │ │ │ ├── audio_frame_view.h
│ │ │ │ ├── audio_generator.h
│ │ │ │ ├── audio_processing.cc
│ │ │ │ ├── audio_processing.h
│ │ │ │ ├── audio_processing_statistics.cc
│ │ │ │ ├── audio_processing_statistics.h
│ │ │ │ ├── config.cc
│ │ │ │ └── config.h
│ │ │ ├── audio_frame_view.h
│ │ │ ├── audio_generator.h
│ │ │ ├── audio_processing.cc
│ │ │ ├── audio_processing.h
│ │ │ ├── audio_processing_statistics.cc
│ │ │ ├── audio_processing_statistics.h
│ │ │ ├── config.cc
│ │ │ └── config.h
│ │ ├── logging
│ │ │ ├── CMakeLists.txt
│ │ │ ├── PaxHeader
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── apm_data_dumper.cc
│ │ │ │ └── apm_data_dumper.h
│ │ │ ├── apm_data_dumper.cc
│ │ │ └── apm_data_dumper.h
│ │ ├── splitting_filter.cc
│ │ ├── splitting_filter.h
│ │ ├── test
│ │ │ ├── PaxHeader
│ │ │ │ ├── echo_canceller_test_tools.cc
│ │ │ │ └── echo_canceller_test_tools.h
│ │ │ ├── echo_canceller_test_tools.cc
│ │ │ └── echo_canceller_test_tools.h
│ │ ├── three_band_filter_bank.cc
│ │ ├── three_band_filter_bank.h
│ │ └── utility
│ │ ├── PaxHeader
│ │ │ ├── ooura_fft.cc
│ │ │ ├── ooura_fft.h
│ │ │ ├── ooura_fft_sse2.cc
│ │ │ ├── ooura_fft_tables_common.h
│ │ │ └── ooura_fft_tables_neon_sse2.h
│ │ ├── ooura_fft.cc
│ │ ├── ooura_fft.h
│ │ ├── ooura_fft_sse2.cc
│ │ ├── ooura_fft_tables_common.h
│ │ └── ooura_fft_tables_neon_sse2.h
│ ├── optional.h
│ ├── rtc_base
│ │ ├── CMakeLists.txt
│ │ ├── PaxHeader
│ │ │ ├── CMakeLists.txt
│ │ │ ├── arraysize.h
│ │ │ ├── atomicops.h
│ │ │ ├── checks.cc
│ │ │ ├── checks.h
│ │ │ ├── compile_assert_c.h
│ │ │ ├── constructormagic.h
│ │ │ ├── criticalsection.cc
│ │ │ ├── criticalsection.h
│ │ │ ├── deprecation.h
│ │ │ ├── event.cc
│ │ │ ├── event.h
│ │ │ ├── gtest_prod_util.h
│ │ │ ├── logging.cc
│ │ │ ├── logging.h
│ │ │ ├── logging_mac.cc
│ │ │ ├── memory
│ │ │ ├── numerics
│ │ │ ├── platform_file.cc
│ │ │ ├── platform_file.h
│ │ │ ├── platform_thread.cc
│ │ │ ├── platform_thread.h
│ │ │ ├── platform_thread_types.cc
│ │ │ ├── platform_thread_types.h
│ │ │ ├── race_checker.cc
│ │ │ ├── race_checker.h
│ │ │ ├── random.cc
│ │ │ ├── random.h
│ │ │ ├── refcount.h
│ │ │ ├── scoped_ref_ptr.h
│ │ │ ├── stringencode.cc
│ │ │ ├── stringencode.h
│ │ │ ├── strings
│ │ │ ├── stringutils.cc
│ │ │ ├── stringutils.h
│ │ │ ├── swap_queue.h
│ │ │ ├── system
│ │ │ ├── thread_annotations.h
│ │ │ ├── thread_checker.h
│ │ │ ├── thread_checker_impl.cc
│ │ │ ├── thread_checker_impl.h
│ │ │ ├── timeutils.cc
│ │ │ ├── timeutils.h
│ │ │ └── type_traits.h
│ │ ├── arraysize.h
│ │ ├── atomicops.h
│ │ ├── checks.cc
│ │ ├── checks.h
│ │ ├── compile_assert_c.h
│ │ ├── constructormagic.h
│ │ ├── criticalsection.cc
│ │ ├── criticalsection.h
│ │ ├── deprecation.h
│ │ ├── event.cc
│ │ ├── event.h
│ │ ├── gtest_prod_util.h
│ │ ├── logging.cc
│ │ ├── logging.h
│ │ ├── logging_mac.cc
│ │ ├── memory
│ │ │ ├── PaxHeader
│ │ │ │ ├── aligned_malloc.cc
│ │ │ │ └── aligned_malloc.h
│ │ │ ├── aligned_malloc.cc
│ │ │ └── aligned_malloc.h
│ │ ├── numerics
│ │ │ ├── PaxHeader
│ │ │ │ ├── safe_compare.h
│ │ │ │ ├── safe_conversions.h
│ │ │ │ ├── safe_conversions_impl.h
│ │ │ │ └── safe_minmax.h
│ │ │ ├── safe_compare.h
│ │ │ ├── safe_conversions.h
│ │ │ ├── safe_conversions_impl.h
│ │ │ └── safe_minmax.h
│ │ ├── platform_file.cc
│ │ ├── platform_file.h
│ │ ├── platform_thread.cc
│ │ ├── platform_thread.h
│ │ ├── platform_thread_types.cc
│ │ ├── platform_thread_types.h
│ │ ├── race_checker.cc
│ │ ├── race_checker.h
│ │ ├── random.cc
│ │ ├── random.h
│ │ ├── refcount.h
│ │ ├── scoped_ref_ptr.h
│ │ ├── stringencode.cc
│ │ ├── stringencode.h
│ │ ├── strings
│ │ │ ├── PaxHeader
│ │ │ │ ├── string_builder.cc
│ │ │ │ └── string_builder.h
│ │ │ ├── string_builder.cc
│ │ │ └── string_builder.h
│ │ ├── stringutils.cc
│ │ ├── stringutils.h
│ │ ├── swap_queue.h
│ │ ├── system
│ │ │ ├── PaxHeader
│ │ │ │ └── inline.h
│ │ │ └── inline.h
│ │ ├── thread_annotations.h
│ │ ├── thread_checker.h
│ │ ├── thread_checker_impl.cc
│ │ ├── thread_checker_impl.h
│ │ ├── timeutils.cc
│ │ ├── timeutils.h
│ │ └── type_traits.h
│ ├── safe_compare.h
│ ├── safe_conversions.h
│ ├── safe_conversions_impl.h
│ ├── safe_minmax.h
│ ├── string_builder.cc
│ ├── string_builder.h
│ ├── stringutils.cc
│ ├── stringutils.h
│ ├── system_wrappers
│ │ ├── CMakeLists.txt
│ │ ├── PaxHeader
│ │ │ ├── CMakeLists.txt
│ │ │ ├── cpu_info.cc
│ │ │ ├── include
│ │ │ └── source
│ │ ├── cpu_info.cc
│ │ ├── include
│ │ │ ├── PaxHeader
│ │ │ │ ├── cpu_features_wrapper.h
│ │ │ │ ├── field_trial.h
│ │ │ │ ├── field_trial_default.h
│ │ │ │ ├── metrics.h
│ │ │ │ └── metrics_default.h
│ │ │ ├── cpu_features_wrapper.h
│ │ │ ├── field_trial.h
│ │ │ ├── field_trial_default.h
│ │ │ ├── metrics.h
│ │ │ └── metrics_default.h
│ │ └── source
│ │ ├── PaxHeader
│ │ │ ├── cpu_features.cc
│ │ │ ├── cpu_features_android.c
│ │ │ ├── cpu_features_linux.c
│ │ │ ├── field_trial_default.cc
│ │ │ └── metrics_default.cc
│ │ ├── cpu_features.cc
│ │ ├── cpu_features_android.c
│ │ ├── cpu_features_linux.c
│ │ ├── field_trial_default.cc
│ │ └── metrics_default.cc
│ ├── test
│ │ ├── CMakeLists.txt
│ │ ├── PaxHeader
│ │ │ ├── CMakeLists.txt
│ │ │ ├── demo.cc
│ │ │ ├── echo_canceller3_unittest.cc
│ │ │ ├── echo_remover_demo.cc
│ │ │ ├── echo_remover_unittest.cc
│ │ │ └── test.cc
│ │ ├── demo.cc
│ │ ├── echo_canceller3_unittest.cc
│ │ ├── echo_remover_demo.cc
│ │ ├── echo_remover_unittest.cc
│ │ └── test.cc
│ ├── type_traits.h
│ ├── typedefs.h
│ ├── unused.h
│ ├── video_bitrate_allocation.cc
│ └── video_bitrate_allocation.h
└── third_party
├── PaxHeader
│ └── lib
└── lib
├── PaxHeader
│ ├── libabsl_algorithm.a
│ ├── libabsl_any.a
│ ├── libabsl_bad_any_cast.a
│ ├── libabsl_bad_any_cast_impl.a
│ ├── libabsl_bad_optional_access.a
│ ├── libabsl_bad_variant_access.a
│ ├── libabsl_base.a
│ ├── libabsl_city.a
│ ├── libabsl_civil_time.a
│ ├── libabsl_container.a
│ ├── libabsl_debugging.a
│ ├── libabsl_debugging_internal.a
│ ├── libabsl_demangle_internal.a
│ ├── libabsl_dynamic_annotations.a
│ ├── libabsl_examine_stack.a
│ ├── libabsl_failure_signal_handler.a
│ ├── libabsl_flags.a
│ ├── libabsl_flags_config.a
│ ├── libabsl_flags_handle.a
│ ├── libabsl_flags_internal.a
│ ├── libabsl_flags_marshalling.a
│ ├── libabsl_flags_parse.a
│ ├── libabsl_flags_registry.a
│ ├── libabsl_flags_usage.a
│ ├── libabsl_flags_usage_internal.a
│ ├── libabsl_graphcycles_internal.a
│ ├── libabsl_hash.a
│ ├── libabsl_hashtablez_sampler.a
│ ├── libabsl_int128.a
│ ├── libabsl_leak_check.a
│ ├── libabsl_leak_check_disable.a
│ ├── libabsl_log_severity.a
│ ├── libabsl_malloc_internal.a
│ ├── libabsl_memory.a
│ ├── libabsl_meta.a
│ ├── libabsl_numeric.a
│ ├── libabsl_optional.a
│ ├── libabsl_raw_hash_set.a
│ ├── libabsl_scoped_set_env.a
│ ├── libabsl_span.a
│ ├── libabsl_spinlock_wait.a
│ ├── libabsl_stack_consumption.a
│ ├── libabsl_stacktrace.a
│ ├── libabsl_str_format_internal.a
│ ├── libabsl_strings.a
│ ├── libabsl_strings_internal.a
│ ├── libabsl_symbolize.a
│ ├── libabsl_synchronization.a
│ ├── libabsl_throw_delegate.a
│ ├── libabsl_time.a
│ ├── libabsl_time_zone.a
│ ├── libabsl_utility.a
│ ├── libabsl_variant.a
│ ├── libgmock.a
│ ├── libgmock_main.a
│ ├── libgtest.a
│ ├── libgtest_main.a
│ └── libtest_instance_tracker_lib.a
├── libabsl_algorithm.a
├── libabsl_any.a
├── libabsl_bad_any_cast.a
├── libabsl_bad_any_cast_impl.a
├── libabsl_bad_optional_access.a
├── libabsl_bad_variant_access.a
├── libabsl_base.a
├── libabsl_city.a
├── libabsl_civil_time.a
├── libabsl_container.a
├── libabsl_debugging.a
├── libabsl_debugging_internal.a
├── libabsl_demangle_internal.a
├── libabsl_dynamic_annotations.a
├── libabsl_examine_stack.a
├── libabsl_failure_signal_handler.a
├── libabsl_flags.a
├── libabsl_flags_config.a
├── libabsl_flags_handle.a
├── libabsl_flags_internal.a
├── libabsl_flags_marshalling.a
├── libabsl_flags_parse.a
├── libabsl_flags_registry.a
├── libabsl_flags_usage.a
├── libabsl_flags_usage_internal.a
├── libabsl_graphcycles_internal.a
├── libabsl_hash.a
├── libabsl_hashtablez_sampler.a
├── libabsl_int128.a
├── libabsl_leak_check.a
├── libabsl_leak_check_disable.a
├── libabsl_log_severity.a
├── libabsl_malloc_internal.a
├── libabsl_memory.a
├── libabsl_meta.a
├── libabsl_numeric.a
├── libabsl_optional.a
├── libabsl_raw_hash_set.a
├── libabsl_scoped_set_env.a
├── libabsl_span.a
├── libabsl_spinlock_wait.a
├── libabsl_stack_consumption.a
├── libabsl_stacktrace.a
├── libabsl_str_format_internal.a
├── libabsl_strings.a
├── libabsl_strings_internal.a
├── libabsl_symbolize.a
├── libabsl_synchronization.a
├── libabsl_throw_delegate.a
├── libabsl_time.a
├── libabsl_time_zone.a
├── libabsl_utility.a
├── libabsl_variant.a
├── libgmock.a
├── libgmock_main.a
├── libgtest.a
├── libgtest_main.a
└── libtest_instance_tracker_lib.a
85 directories, 768 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论