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
This commit is contained in:
henrik.lundin@webrtc.org
2014-06-05 10:37:13 +00:00
parent eae7924836
commit 2f816bbae7
2 changed files with 21 additions and 16 deletions

View File

@ -337,19 +337,25 @@ class NetEqImpl : public webrtc::NetEq {
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 @@ class NetEqImpl : public webrtc::NetEq {
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