Thread annotations for vie_encoder.cc/.h

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6638 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
stefan@webrtc.org 2014-07-09 14:46:31 +00:00
parent e7771d07c8
commit 7af12be781
2 changed files with 32 additions and 26 deletions

View File

@ -553,6 +553,8 @@ void ViEEncoder::DeliverFrame(int id,
if (vcm_.SendCodec() == webrtc::kVideoCodecVP8) { if (vcm_.SendCodec() == webrtc::kVideoCodecVP8) {
webrtc::CodecSpecificInfo codec_specific_info; webrtc::CodecSpecificInfo codec_specific_info;
codec_specific_info.codecType = webrtc::kVideoCodecVP8; codec_specific_info.codecType = webrtc::kVideoCodecVP8;
{
CriticalSectionScoped cs(data_cs_.get());
codec_specific_info.codecSpecific.VP8.hasReceivedRPSI = codec_specific_info.codecSpecific.VP8.hasReceivedRPSI =
has_received_rpsi_; has_received_rpsi_;
codec_specific_info.codecSpecific.VP8.hasReceivedSLI = codec_specific_info.codecSpecific.VP8.hasReceivedSLI =
@ -563,6 +565,7 @@ void ViEEncoder::DeliverFrame(int id,
picture_id_sli_; picture_id_sli_;
has_received_sli_ = false; has_received_sli_ = false;
has_received_rpsi_ = false; has_received_rpsi_ = false;
}
vcm_.AddVideoFrame(*decimated_frame, vpm_.ContentMetrics(), vcm_.AddVideoFrame(*decimated_frame, vpm_.ContentMetrics(),
&codec_specific_info); &codec_specific_info);
@ -744,12 +747,14 @@ int32_t ViEEncoder::RegisterCodecObserver(ViEEncoderObserver* observer) {
void ViEEncoder::OnReceivedSLI(uint32_t /*ssrc*/, void ViEEncoder::OnReceivedSLI(uint32_t /*ssrc*/,
uint8_t picture_id) { uint8_t picture_id) {
CriticalSectionScoped cs(data_cs_.get());
picture_id_sli_ = picture_id; picture_id_sli_ = picture_id;
has_received_sli_ = true; has_received_sli_ = true;
} }
void ViEEncoder::OnReceivedRPSI(uint32_t /*ssrc*/, void ViEEncoder::OnReceivedRPSI(uint32_t /*ssrc*/,
uint64_t picture_id) { uint64_t picture_id) {
CriticalSectionScoped cs(data_cs_.get());
picture_id_rpsi_ = picture_id; picture_id_rpsi_ = picture_id;
has_received_rpsi_ = true; has_received_rpsi_ = true;
} }

View File

@ -189,7 +189,7 @@ class ViEEncoder
int64_t capture_time_ms, bool retransmission); int64_t capture_time_ms, bool retransmission);
int TimeToSendPadding(int bytes); int TimeToSendPadding(int bytes);
private: private:
bool EncoderPaused() const; bool EncoderPaused() const EXCLUSIVE_LOCKS_REQUIRED(data_cs_);
int32_t engine_id_; int32_t engine_id_;
const int channel_id_; const int channel_id_;
@ -206,32 +206,33 @@ class ViEEncoder
BitrateController* bitrate_controller_; BitrateController* bitrate_controller_;
int64_t time_of_last_incoming_frame_ms_; int64_t time_of_last_incoming_frame_ms_ GUARDED_BY(data_cs_);
bool send_padding_; bool send_padding_ GUARDED_BY(data_cs_);
int min_transmit_bitrate_kbps_ GUARDED_BY(data_cs_); int min_transmit_bitrate_kbps_ GUARDED_BY(data_cs_);
int target_delay_ms_; int target_delay_ms_ GUARDED_BY(data_cs_);
bool network_is_transmitting_; bool network_is_transmitting_ GUARDED_BY(data_cs_);
bool encoder_paused_; bool encoder_paused_ GUARDED_BY(data_cs_);
bool encoder_paused_and_dropped_frame_; bool encoder_paused_and_dropped_frame_ GUARDED_BY(data_cs_);
std::map<unsigned int, int64_t> time_last_intra_request_ms_; std::map<unsigned int, int64_t> time_last_intra_request_ms_
GUARDED_BY(data_cs_);
bool fec_enabled_; bool fec_enabled_;
bool nack_enabled_; bool nack_enabled_;
ViEEncoderObserver* codec_observer_ GUARDED_BY(callback_cs_); ViEEncoderObserver* codec_observer_ GUARDED_BY(callback_cs_);
ViEEffectFilter* effect_filter_; ViEEffectFilter* effect_filter_ GUARDED_BY(callback_cs_);
ProcessThread& module_process_thread_; ProcessThread& module_process_thread_;
bool has_received_sli_; bool has_received_sli_ GUARDED_BY(data_cs_);
uint8_t picture_id_sli_; uint8_t picture_id_sli_ GUARDED_BY(data_cs_);
bool has_received_rpsi_; bool has_received_rpsi_ GUARDED_BY(data_cs_);
uint64_t picture_id_rpsi_; uint64_t picture_id_rpsi_ GUARDED_BY(data_cs_);
std::map<unsigned int, int> ssrc_streams_; std::map<unsigned int, int> ssrc_streams_ GUARDED_BY(data_cs_);
// Quality modes callback // Quality modes callback
QMVideoSettingsCallback* qm_callback_; QMVideoSettingsCallback* qm_callback_;
bool video_suspended_; bool video_suspended_ GUARDED_BY(data_cs_);
I420FrameCallback* pre_encode_callback_; I420FrameCallback* pre_encode_callback_ GUARDED_BY(callback_cs_);
}; };
} // namespace webrtc } // namespace webrtc