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:
parent
eae7924836
commit
2f816bbae7
@ -63,7 +63,8 @@ NetEqImpl::NetEqImpl(int fs,
|
|||||||
ExpandFactory* expand_factory,
|
ExpandFactory* expand_factory,
|
||||||
PreemptiveExpandFactory* preemptive_expand_factory,
|
PreemptiveExpandFactory* preemptive_expand_factory,
|
||||||
bool create_components)
|
bool create_components)
|
||||||
: buffer_level_filter_(buffer_level_filter),
|
: crit_sect_(CriticalSectionWrapper::CreateCriticalSection()),
|
||||||
|
buffer_level_filter_(buffer_level_filter),
|
||||||
decoder_database_(decoder_database),
|
decoder_database_(decoder_database),
|
||||||
delay_manager_(delay_manager),
|
delay_manager_(delay_manager),
|
||||||
delay_peak_detector_(delay_peak_detector),
|
delay_peak_detector_(delay_peak_detector),
|
||||||
@ -89,7 +90,6 @@ NetEqImpl::NetEqImpl(int fs,
|
|||||||
first_packet_(true),
|
first_packet_(true),
|
||||||
error_code_(0),
|
error_code_(0),
|
||||||
decoder_error_code_(0),
|
decoder_error_code_(0),
|
||||||
crit_sect_(CriticalSectionWrapper::CreateCriticalSection()),
|
|
||||||
decoded_packet_sequence_number_(-1),
|
decoded_packet_sequence_number_(-1),
|
||||||
decoded_packet_timestamp_(0) {
|
decoded_packet_timestamp_(0) {
|
||||||
if (fs != 8000 && fs != 16000 && fs != 32000 && fs != 48000) {
|
if (fs != 8000 && fs != 16000 && fs != 32000 && fs != 48000) {
|
||||||
|
@ -337,19 +337,25 @@ class NetEqImpl : public webrtc::NetEq {
|
|||||||
virtual void CreateDecisionLogic(NetEqPlayoutMode mode)
|
virtual void CreateDecisionLogic(NetEqPlayoutMode mode)
|
||||||
EXCLUSIVE_LOCKS_REQUIRED(crit_sect_);
|
EXCLUSIVE_LOCKS_REQUIRED(crit_sect_);
|
||||||
|
|
||||||
const scoped_ptr<BufferLevelFilter> buffer_level_filter_;
|
const scoped_ptr<CriticalSectionWrapper> crit_sect_;
|
||||||
const scoped_ptr<DecoderDatabase> decoder_database_;
|
const scoped_ptr<BufferLevelFilter> buffer_level_filter_
|
||||||
const scoped_ptr<DelayManager> delay_manager_;
|
GUARDED_BY(crit_sect_);
|
||||||
const scoped_ptr<DelayPeakDetector> delay_peak_detector_;
|
const scoped_ptr<DecoderDatabase> decoder_database_ GUARDED_BY(crit_sect_);
|
||||||
const scoped_ptr<DtmfBuffer> dtmf_buffer_;
|
const scoped_ptr<DelayManager> delay_manager_ GUARDED_BY(crit_sect_);
|
||||||
const scoped_ptr<DtmfToneGenerator> dtmf_tone_generator_;
|
const scoped_ptr<DelayPeakDetector> delay_peak_detector_
|
||||||
const scoped_ptr<PacketBuffer> packet_buffer_;
|
GUARDED_BY(crit_sect_);
|
||||||
const scoped_ptr<PayloadSplitter> payload_splitter_;
|
const scoped_ptr<DtmfBuffer> dtmf_buffer_ GUARDED_BY(crit_sect_);
|
||||||
const scoped_ptr<TimestampScaler> timestamp_scaler_;
|
const scoped_ptr<DtmfToneGenerator> dtmf_tone_generator_
|
||||||
const scoped_ptr<PostDecodeVad> vad_;
|
GUARDED_BY(crit_sect_);
|
||||||
const scoped_ptr<ExpandFactory> expand_factory_;
|
const scoped_ptr<PacketBuffer> packet_buffer_ GUARDED_BY(crit_sect_);
|
||||||
const scoped_ptr<AccelerateFactory> accelerate_factory_;
|
const scoped_ptr<PayloadSplitter> payload_splitter_ GUARDED_BY(crit_sect_);
|
||||||
const scoped_ptr<PreemptiveExpandFactory> preemptive_expand_factory_;
|
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<BackgroundNoise> background_noise_ GUARDED_BY(crit_sect_);
|
||||||
scoped_ptr<DecisionLogic> decision_logic_ 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_);
|
bool first_packet_ GUARDED_BY(crit_sect_);
|
||||||
int error_code_ GUARDED_BY(crit_sect_); // Store last error code.
|
int error_code_ GUARDED_BY(crit_sect_); // Store last error code.
|
||||||
int decoder_error_code_ GUARDED_BY(crit_sect_);
|
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
|
// These values are used by NACK module to estimate time-to-play of
|
||||||
// a missing packet. Occasionally, NetEq might decide to decode more
|
// a missing packet. Occasionally, NetEq might decide to decode more
|
||||||
|
Loading…
x
Reference in New Issue
Block a user