OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2011 The WebRTC project authors. All Rights Reserved. | 2 * Copyright 2011 The WebRTC project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
54 audio_source_context_->SignalMediaStreamsUpdate.disconnect(this); | 54 audio_source_context_->SignalMediaStreamsUpdate.disconnect(this); |
55 | 55 |
56 started_ = false; | 56 started_ = false; |
57 ssrc_to_speaking_state_map_.clear(); | 57 ssrc_to_speaking_state_map_.clear(); |
58 current_speaker_ssrc_ = 0; | 58 current_speaker_ssrc_ = 0; |
59 earliest_permitted_switch_time_ = 0; | 59 earliest_permitted_switch_time_ = 0; |
60 } | 60 } |
61 } | 61 } |
62 | 62 |
63 void CurrentSpeakerMonitor::set_min_time_between_switches( | 63 void CurrentSpeakerMonitor::set_min_time_between_switches( |
64 uint32_t min_time_between_switches) { | 64 int min_time_between_switches) { |
65 min_time_between_switches_ = min_time_between_switches; | 65 min_time_between_switches_ = min_time_between_switches; |
66 } | 66 } |
67 | 67 |
68 void CurrentSpeakerMonitor::OnAudioMonitor( | 68 void CurrentSpeakerMonitor::OnAudioMonitor( |
69 AudioSourceContext* audio_source_context, const AudioInfo& info) { | 69 AudioSourceContext* audio_source_context, const AudioInfo& info) { |
70 std::map<uint32_t, int> active_ssrc_to_level_map; | 70 std::map<uint32_t, int> active_ssrc_to_level_map; |
71 cricket::AudioInfo::StreamList::const_iterator stream_list_it; | 71 cricket::AudioInfo::StreamList::const_iterator stream_list_it; |
72 for (stream_list_it = info.active_streams.begin(); | 72 for (stream_list_it = info.active_streams.begin(); |
73 stream_list_it != info.active_streams.end(); ++stream_list_it) { | 73 stream_list_it != info.active_streams.end(); ++stream_list_it) { |
74 uint32_t ssrc = stream_list_it->first; | 74 uint32_t ssrc = stream_list_it->first; |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
156 loudest_speaker_ssrc = state_it->first; | 156 loudest_speaker_ssrc = state_it->first; |
157 max_level = level; | 157 max_level = level; |
158 } else if (level > 0 && level == max_level && is_previous_speaker) { | 158 } else if (level > 0 && level == max_level && is_previous_speaker) { |
159 // Favor continuity of loudest speakers if audio levels are equal. | 159 // Favor continuity of loudest speakers if audio levels are equal. |
160 loudest_speaker_ssrc = state_it->first; | 160 loudest_speaker_ssrc = state_it->first; |
161 } | 161 } |
162 } | 162 } |
163 | 163 |
164 // We avoid over-switching by disabling switching for a period of time after | 164 // We avoid over-switching by disabling switching for a period of time after |
165 // a switch is done. | 165 // a switch is done. |
166 uint32_t now = rtc::Time(); | 166 int64_t now = rtc::Time(); |
167 if (earliest_permitted_switch_time_ <= now && | 167 if (earliest_permitted_switch_time_ <= now && |
168 current_speaker_ssrc_ != loudest_speaker_ssrc) { | 168 current_speaker_ssrc_ != loudest_speaker_ssrc) { |
169 current_speaker_ssrc_ = loudest_speaker_ssrc; | 169 current_speaker_ssrc_ = loudest_speaker_ssrc; |
170 LOG(LS_INFO) << "Current speaker changed to " << current_speaker_ssrc_; | 170 LOG(LS_INFO) << "Current speaker changed to " << current_speaker_ssrc_; |
171 earliest_permitted_switch_time_ = now + min_time_between_switches_; | 171 earliest_permitted_switch_time_ = now + min_time_between_switches_; |
172 SignalUpdate(this, current_speaker_ssrc_); | 172 SignalUpdate(this, current_speaker_ssrc_); |
173 } | 173 } |
174 } | 174 } |
175 | 175 |
176 void CurrentSpeakerMonitor::OnMediaStreamsUpdate( | 176 void CurrentSpeakerMonitor::OnMediaStreamsUpdate( |
(...skipping 15 matching lines...) Expand all Loading... |
192 } | 192 } |
193 | 193 |
194 void CurrentSpeakerMonitor::OnMediaStreamsReset( | 194 void CurrentSpeakerMonitor::OnMediaStreamsReset( |
195 AudioSourceContext* audio_source_context) { | 195 AudioSourceContext* audio_source_context) { |
196 if (audio_source_context == audio_source_context_) { | 196 if (audio_source_context == audio_source_context_) { |
197 ssrc_to_speaking_state_map_.clear(); | 197 ssrc_to_speaking_state_map_.clear(); |
198 } | 198 } |
199 } | 199 } |
200 | 200 |
201 } // namespace cricket | 201 } // namespace cricket |
OLD | NEW |