Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(20)

Side by Side Diff: webrtc/modules/rtp_rtcp/source/rtp_sender_audio.cc

Issue 2365873002: Make RtpSenderAudio not inherit from DtmfQueue (Closed)
Patch Set: not inline Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « webrtc/modules/rtp_rtcp/source/rtp_sender_audio.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2012 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 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 int8_t dtmf_payload_type; 162 int8_t dtmf_payload_type;
163 uint16_t packet_size_samples; 163 uint16_t packet_size_samples;
164 { 164 {
165 rtc::CritScope cs(&send_audio_critsect_); 165 rtc::CritScope cs(&send_audio_critsect_);
166 audio_level_dbov = audio_level_dbov_; 166 audio_level_dbov = audio_level_dbov_;
167 dtmf_payload_type = dtmf_payload_type_; 167 dtmf_payload_type = dtmf_payload_type_;
168 packet_size_samples = packet_size_samples_; 168 packet_size_samples = packet_size_samples_;
169 } 169 }
170 170
171 // Check if we have pending DTMFs to send 171 // Check if we have pending DTMFs to send
172 if (!dtmf_event_is_on_ && PendingDTMF()) { 172 if (!dtmf_event_is_on_ && dtmf_queue_.PendingDTMF()) {
173 int64_t delaySinceLastDTMF = 173 int64_t delaySinceLastDTMF =
174 clock_->TimeInMilliseconds() - dtmf_time_last_sent_; 174 clock_->TimeInMilliseconds() - dtmf_time_last_sent_;
175 175
176 if (delaySinceLastDTMF > 100) { 176 if (delaySinceLastDTMF > 100) {
177 // New tone to play 177 // New tone to play
178 dtmf_timestamp_ = rtp_timestamp; 178 dtmf_timestamp_ = rtp_timestamp;
179 if (NextDTMF(&key, &dtmf_length_ms, &dtmf_level_) >= 0) { 179 if (dtmf_queue_.NextDTMF(&key, &dtmf_length_ms, &dtmf_level_) >= 0) {
180 dtmf_event_first_packet_sent_ = false; 180 dtmf_event_first_packet_sent_ = false;
181 dtmf_key_ = key; 181 dtmf_key_ = key;
182 dtmf_length_samples_ = (kDtmfFrequencyHz / 1000) * dtmf_length_ms; 182 dtmf_length_samples_ = (kDtmfFrequencyHz / 1000) * dtmf_length_ms;
183 dtmf_event_is_on_ = true; 183 dtmf_event_is_on_ = true;
184 } 184 }
185 } 185 }
186 } 186 }
187 187
188 // A source MAY send events and coded audio packets for the same time 188 // A source MAY send events and coded audio packets for the same time
189 // but we don't support it 189 // but we don't support it
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
303 int32_t RTPSenderAudio::SendTelephoneEvent(uint8_t key, 303 int32_t RTPSenderAudio::SendTelephoneEvent(uint8_t key,
304 uint16_t time_ms, 304 uint16_t time_ms,
305 uint8_t level) { 305 uint8_t level) {
306 { 306 {
307 rtc::CritScope lock(&send_audio_critsect_); 307 rtc::CritScope lock(&send_audio_critsect_);
308 if (dtmf_payload_type_ < 0) { 308 if (dtmf_payload_type_ < 0) {
309 // TelephoneEvent payloadtype not configured 309 // TelephoneEvent payloadtype not configured
310 return -1; 310 return -1;
311 } 311 }
312 } 312 }
313 return AddDTMF(key, time_ms, level); 313 return dtmf_queue_.AddDTMF(key, time_ms, level);
314 } 314 }
315 315
316 bool RTPSenderAudio::SendTelephoneEventPacket(bool ended, 316 bool RTPSenderAudio::SendTelephoneEventPacket(bool ended,
317 int8_t dtmf_payload_type, 317 int8_t dtmf_payload_type,
318 uint32_t dtmf_timestamp, 318 uint32_t dtmf_timestamp,
319 uint16_t duration, 319 uint16_t duration,
320 bool marker_bit) { 320 bool marker_bit) {
321 uint8_t send_count = 1; 321 uint8_t send_count = 1;
322 bool result = true; 322 bool result = true;
323 323
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
365 TRACE_DISABLED_BY_DEFAULT("webrtc_rtp"), "Audio::SendTelephoneEvent", 365 TRACE_DISABLED_BY_DEFAULT("webrtc_rtp"), "Audio::SendTelephoneEvent",
366 "timestamp", packet->Timestamp(), "seqnum", packet->SequenceNumber()); 366 "timestamp", packet->Timestamp(), "seqnum", packet->SequenceNumber());
367 result = rtp_sender_->SendToNetwork(std::move(packet), kAllowRetransmission, 367 result = rtp_sender_->SendToNetwork(std::move(packet), kAllowRetransmission,
368 RtpPacketSender::kHighPriority); 368 RtpPacketSender::kHighPriority);
369 send_count--; 369 send_count--;
370 } while (send_count > 0 && result); 370 } while (send_count > 0 && result);
371 371
372 return result; 372 return result;
373 } 373 }
374 } // namespace webrtc 374 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/modules/rtp_rtcp/source/rtp_sender_audio.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698