NetEq: Add thread annotation to const scoped_ptrs

Since the objects pointed to are not const, only the pointer to them,
they too must be accessed under lock.

Move the crit_sect to above the variables it is protecting.

R=pbos@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/12679006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6340 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/webrtc/modules/audio_coding/neteq4/neteq_impl.cc b/webrtc/modules/audio_coding/neteq4/neteq_impl.cc
index 38a5456..963a820 100644
--- a/webrtc/modules/audio_coding/neteq4/neteq_impl.cc
+++ b/webrtc/modules/audio_coding/neteq4/neteq_impl.cc
@@ -63,7 +63,8 @@
                      ExpandFactory* expand_factory,
                      PreemptiveExpandFactory* preemptive_expand_factory,
                      bool create_components)
-    : buffer_level_filter_(buffer_level_filter),
+    : crit_sect_(CriticalSectionWrapper::CreateCriticalSection()),
+      buffer_level_filter_(buffer_level_filter),
       decoder_database_(decoder_database),
       delay_manager_(delay_manager),
       delay_peak_detector_(delay_peak_detector),
@@ -89,7 +90,6 @@
       first_packet_(true),
       error_code_(0),
       decoder_error_code_(0),
-      crit_sect_(CriticalSectionWrapper::CreateCriticalSection()),
       decoded_packet_sequence_number_(-1),
       decoded_packet_timestamp_(0) {
   if (fs != 8000 && fs != 16000 && fs != 32000 && fs != 48000) {
diff --git a/webrtc/modules/audio_coding/neteq4/neteq_impl.h b/webrtc/modules/audio_coding/neteq4/neteq_impl.h
index 9b155fe..751de66 100644
--- a/webrtc/modules/audio_coding/neteq4/neteq_impl.h
+++ b/webrtc/modules/audio_coding/neteq4/neteq_impl.h
@@ -337,19 +337,25 @@
   virtual void CreateDecisionLogic(NetEqPlayoutMode mode)
       EXCLUSIVE_LOCKS_REQUIRED(crit_sect_);
 
-  const scoped_ptr<BufferLevelFilter> buffer_level_filter_;
-  const scoped_ptr<DecoderDatabase> decoder_database_;
-  const scoped_ptr<DelayManager> delay_manager_;
-  const scoped_ptr<DelayPeakDetector> delay_peak_detector_;
-  const scoped_ptr<DtmfBuffer> dtmf_buffer_;
-  const scoped_ptr<DtmfToneGenerator> dtmf_tone_generator_;
-  const scoped_ptr<PacketBuffer> packet_buffer_;
-  const scoped_ptr<PayloadSplitter> payload_splitter_;
-  const scoped_ptr<TimestampScaler> timestamp_scaler_;
-  const scoped_ptr<PostDecodeVad> vad_;
-  const scoped_ptr<ExpandFactory> expand_factory_;
-  const scoped_ptr<AccelerateFactory> accelerate_factory_;
-  const scoped_ptr<PreemptiveExpandFactory> preemptive_expand_factory_;
+  const scoped_ptr<CriticalSectionWrapper> crit_sect_;
+  const scoped_ptr<BufferLevelFilter> buffer_level_filter_
+      GUARDED_BY(crit_sect_);
+  const scoped_ptr<DecoderDatabase> decoder_database_ GUARDED_BY(crit_sect_);
+  const scoped_ptr<DelayManager> delay_manager_ GUARDED_BY(crit_sect_);
+  const scoped_ptr<DelayPeakDetector> delay_peak_detector_
+      GUARDED_BY(crit_sect_);
+  const scoped_ptr<DtmfBuffer> dtmf_buffer_ GUARDED_BY(crit_sect_);
+  const scoped_ptr<DtmfToneGenerator> dtmf_tone_generator_
+      GUARDED_BY(crit_sect_);
+  const scoped_ptr<PacketBuffer> packet_buffer_ GUARDED_BY(crit_sect_);
+  const scoped_ptr<PayloadSplitter> payload_splitter_ GUARDED_BY(crit_sect_);
+  const scoped_ptr<TimestampScaler> timestamp_scaler_ GUARDED_BY(crit_sect_);
+  const scoped_ptr<PostDecodeVad> vad_ GUARDED_BY(crit_sect_);
+  const scoped_ptr<ExpandFactory> expand_factory_ GUARDED_BY(crit_sect_);
+  const scoped_ptr<AccelerateFactory> accelerate_factory_
+      GUARDED_BY(crit_sect_);
+  const scoped_ptr<PreemptiveExpandFactory> preemptive_expand_factory_
+      GUARDED_BY(crit_sect_);
 
   scoped_ptr<BackgroundNoise> background_noise_ GUARDED_BY(crit_sect_);
   scoped_ptr<DecisionLogic> decision_logic_ GUARDED_BY(crit_sect_);
@@ -382,7 +388,6 @@
   bool first_packet_ GUARDED_BY(crit_sect_);
   int error_code_ GUARDED_BY(crit_sect_);  // Store last error code.
   int decoder_error_code_ GUARDED_BY(crit_sect_);
-  const scoped_ptr<CriticalSectionWrapper> crit_sect_;
 
   // These values are used by NACK module to estimate time-to-play of
   // a missing packet. Occasionally, NetEq might decide to decode more