From 83ffe453ec2f1ec165a0ffc58a1327599505349c Mon Sep 17 00:00:00 2001 From: kwiberg Date: Mon, 29 Aug 2016 14:46:07 -0700 Subject: [PATCH] Fix Chromium clang plugin warnings NOTRY=true BUG=webrtc:163 Review-Url: https://codereview.webrtc.org/2288153002 Cr-Commit-Position: refs/heads/master@{#13964} --- webrtc/modules/audio_processing/BUILD.gn | 5 --- .../audio_processing/aec/echo_cancellation.cc | 3 ++ .../audio_processing/aec/echo_cancellation.h | 3 ++ .../audio_processing/audio_processing_impl.cc | 38 +++++++++++++++++++ .../audio_processing/audio_processing_impl.h | 26 +++++-------- .../audio_processing/echo_cancellation_impl.h | 2 +- .../echo_control_mobile_impl.h | 2 +- .../level_controller/signal_classifier.cc | 6 +++ .../level_controller/signal_classifier.h | 4 +- 9 files changed, 63 insertions(+), 26 deletions(-) diff --git a/webrtc/modules/audio_processing/BUILD.gn b/webrtc/modules/audio_processing/BUILD.gn index 349a797ab1..6730fd597f 100644 --- a/webrtc/modules/audio_processing/BUILD.gn +++ b/webrtc/modules/audio_processing/BUILD.gn @@ -239,11 +239,6 @@ source_set("audio_processing") { # TODO(jschuh): Bug 1348: fix this warning. configs += [ "//build/config/compiler:no_size_t_to_int_warning" ] - if (is_clang) { - # Suppress warnings from the Chromium Clang plugins (bugs.webrtc.org/163). - configs -= [ "//build/config/clang:find_bad_constructs" ] - } - deps += [ "../../base:rtc_base_approved", "../../common_audio", diff --git a/webrtc/modules/audio_processing/aec/echo_cancellation.cc b/webrtc/modules/audio_processing/aec/echo_cancellation.cc index 716da38ab8..c26b1a0fd8 100644 --- a/webrtc/modules/audio_processing/aec/echo_cancellation.cc +++ b/webrtc/modules/audio_processing/aec/echo_cancellation.cc @@ -28,6 +28,9 @@ extern "C" { namespace webrtc { +Aec::Aec() = default; +Aec::~Aec() = default; + // Measured delays [ms] // Device Chrome GTP // MacBook Air 10 diff --git a/webrtc/modules/audio_processing/aec/echo_cancellation.h b/webrtc/modules/audio_processing/aec/echo_cancellation.h index 8e5e52c32b..10471139dc 100644 --- a/webrtc/modules/audio_processing/aec/echo_cancellation.h +++ b/webrtc/modules/audio_processing/aec/echo_cancellation.h @@ -65,6 +65,9 @@ struct AecCore; class ApmDataDumper; typedef struct Aec { + Aec(); + ~Aec(); + std::unique_ptr data_dumper; int delayCtr; diff --git a/webrtc/modules/audio_processing/audio_processing_impl.cc b/webrtc/modules/audio_processing/audio_processing_impl.cc index 011325f8ca..ff475c9314 100644 --- a/webrtc/modules/audio_processing/audio_processing_impl.cc +++ b/webrtc/modules/audio_processing/audio_processing_impl.cc @@ -278,6 +278,20 @@ int AudioProcessingImpl::MaybeInitializeCapture( return MaybeInitialize(processing_config); } +#ifdef WEBRTC_AUDIOPROC_DEBUG_DUMP + +AudioProcessingImpl::ApmDebugDumpThreadState::ApmDebugDumpThreadState() + : event_msg(new audioproc::Event()) {} + +AudioProcessingImpl::ApmDebugDumpThreadState::~ApmDebugDumpThreadState() {} + +AudioProcessingImpl::ApmDebugDumpState::ApmDebugDumpState() + : debug_file(FileWrapper::Create()) {} + +AudioProcessingImpl::ApmDebugDumpState::~ApmDebugDumpState() {} + +#endif // WEBRTC_AUDIOPROC_DEBUG_DUMP + // Calls InitializeLocked() if any of the audio parameters have changed from // their current values (needs to be called while holding the crit_render_lock). int AudioProcessingImpl::MaybeInitialize( @@ -1524,4 +1538,28 @@ int AudioProcessingImpl::WriteConfigMessage(bool forced) { } #endif // WEBRTC_AUDIOPROC_DEBUG_DUMP +AudioProcessingImpl::ApmCaptureState::ApmCaptureState( + bool transient_suppressor_enabled, + const std::vector& array_geometry, + SphericalPointf target_direction) + : aec_system_delay_jumps(-1), + delay_offset_ms(0), + was_stream_delay_set(false), + last_stream_delay_ms(0), + last_aec_system_delay_ms(0), + stream_delay_jumps(-1), + output_will_be_muted(false), + key_pressed(false), + transient_suppressor_enabled(transient_suppressor_enabled), + array_geometry(array_geometry), + target_direction(target_direction), + fwd_proc_format(kSampleRate16kHz), + split_rate(kSampleRate16kHz) {} + +AudioProcessingImpl::ApmCaptureState::~ApmCaptureState() = default; + +AudioProcessingImpl::ApmRenderState::ApmRenderState() = default; + +AudioProcessingImpl::ApmRenderState::~ApmRenderState() = default; + } // namespace webrtc diff --git a/webrtc/modules/audio_processing/audio_processing_impl.h b/webrtc/modules/audio_processing/audio_processing_impl.h index 4b9011dc88..87e2224bbf 100644 --- a/webrtc/modules/audio_processing/audio_processing_impl.h +++ b/webrtc/modules/audio_processing/audio_processing_impl.h @@ -45,7 +45,7 @@ class AudioProcessingImpl : public AudioProcessing { explicit AudioProcessingImpl(const Config& config); // AudioProcessingImpl takes ownership of beamformer. AudioProcessingImpl(const Config& config, NonlinearBeamformer* beamformer); - virtual ~AudioProcessingImpl(); + ~AudioProcessingImpl() override; int Initialize() override; int Initialize(int input_sample_rate_hz, int output_sample_rate_hz, @@ -133,7 +133,8 @@ class AudioProcessingImpl : public AudioProcessing { #ifdef WEBRTC_AUDIOPROC_DEBUG_DUMP // State for the debug dump. struct ApmDebugDumpThreadState { - ApmDebugDumpThreadState() : event_msg(new audioproc::Event()) {} + ApmDebugDumpThreadState(); + ~ApmDebugDumpThreadState(); std::unique_ptr event_msg; // Protobuf message. std::string event_str; // Memory for protobuf serialization. @@ -142,7 +143,8 @@ class AudioProcessingImpl : public AudioProcessing { }; struct ApmDebugDumpState { - ApmDebugDumpState() : debug_file(FileWrapper::Create()) {} + ApmDebugDumpState(); + ~ApmDebugDumpState(); // Number of bytes that can still be written to the log before the maximum // size is reached. A value of <= 0 indicates that no limit is used. int64_t num_bytes_left_for_log_ = -1; @@ -287,20 +289,8 @@ class AudioProcessingImpl : public AudioProcessing { struct ApmCaptureState { ApmCaptureState(bool transient_suppressor_enabled, const std::vector& array_geometry, - SphericalPointf target_direction) - : aec_system_delay_jumps(-1), - delay_offset_ms(0), - was_stream_delay_set(false), - last_stream_delay_ms(0), - last_aec_system_delay_ms(0), - stream_delay_jumps(-1), - output_will_be_muted(false), - key_pressed(false), - transient_suppressor_enabled(transient_suppressor_enabled), - array_geometry(array_geometry), - target_direction(target_direction), - fwd_proc_format(kSampleRate16kHz), - split_rate(kSampleRate16kHz) {} + SphericalPointf target_direction); + ~ApmCaptureState(); int aec_system_delay_jumps; int delay_offset_ms; bool was_stream_delay_set; @@ -342,6 +332,8 @@ class AudioProcessingImpl : public AudioProcessing { } capture_nonlocked_; struct ApmRenderState { + ApmRenderState(); + ~ApmRenderState(); std::unique_ptr render_converter; std::unique_ptr render_audio; } render_ GUARDED_BY(crit_render_); diff --git a/webrtc/modules/audio_processing/echo_cancellation_impl.h b/webrtc/modules/audio_processing/echo_cancellation_impl.h index f67ef7b7da..0f0945f875 100644 --- a/webrtc/modules/audio_processing/echo_cancellation_impl.h +++ b/webrtc/modules/audio_processing/echo_cancellation_impl.h @@ -28,7 +28,7 @@ class EchoCancellationImpl : public EchoCancellation { public: EchoCancellationImpl(rtc::CriticalSection* crit_render, rtc::CriticalSection* crit_capture); - virtual ~EchoCancellationImpl(); + ~EchoCancellationImpl() override; int ProcessRenderAudio(const AudioBuffer* audio); int ProcessCaptureAudio(AudioBuffer* audio, int stream_delay_ms); diff --git a/webrtc/modules/audio_processing/echo_control_mobile_impl.h b/webrtc/modules/audio_processing/echo_control_mobile_impl.h index 97e24075de..791a4d5c42 100644 --- a/webrtc/modules/audio_processing/echo_control_mobile_impl.h +++ b/webrtc/modules/audio_processing/echo_control_mobile_impl.h @@ -29,7 +29,7 @@ class EchoControlMobileImpl : public EchoControlMobile { EchoControlMobileImpl(rtc::CriticalSection* crit_render, rtc::CriticalSection* crit_capture); - virtual ~EchoControlMobileImpl(); + ~EchoControlMobileImpl() override; int ProcessRenderAudio(const AudioBuffer* audio); int ProcessCaptureAudio(AudioBuffer* audio, int stream_delay_ms); diff --git a/webrtc/modules/audio_processing/level_controller/signal_classifier.cc b/webrtc/modules/audio_processing/level_controller/signal_classifier.cc index 4f2d998547..c9a07e754d 100644 --- a/webrtc/modules/audio_processing/level_controller/signal_classifier.cc +++ b/webrtc/modules/audio_processing/level_controller/signal_classifier.cc @@ -93,6 +93,12 @@ webrtc::SignalClassifier::SignalType ClassifySignal( } // namespace +SignalClassifier::FrameExtender::FrameExtender(size_t frame_size, + size_t extended_frame_size) + : x_old_(extended_frame_size - frame_size, 0.f) {} + +SignalClassifier::FrameExtender::~FrameExtender() = default; + void SignalClassifier::FrameExtender::ExtendFrame( rtc::ArrayView x, rtc::ArrayView x_extended) { diff --git a/webrtc/modules/audio_processing/level_controller/signal_classifier.h b/webrtc/modules/audio_processing/level_controller/signal_classifier.h index cfa0fc56b5..2afa724c56 100644 --- a/webrtc/modules/audio_processing/level_controller/signal_classifier.h +++ b/webrtc/modules/audio_processing/level_controller/signal_classifier.h @@ -37,8 +37,8 @@ class SignalClassifier { private: class FrameExtender { public: - FrameExtender(size_t frame_size, size_t extended_frame_size) - : x_old_(extended_frame_size - frame_size, 0.f) {} + FrameExtender(size_t frame_size, size_t extended_frame_size); + ~FrameExtender(); void ExtendFrame(rtc::ArrayView x, rtc::ArrayView x_extended);