OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/renderer/media/rtc_peer_connection_handler.h" | 5 #include "content/renderer/media/rtc_peer_connection_handler.h" |
6 | 6 |
7 #include <string.h> | 7 #include <string.h> |
8 | 8 |
9 #include <string> | 9 #include <string> |
10 #include <utility> | 10 #include <utility> |
(...skipping 1353 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1364 TRACE_EVENT0("webrtc", "RTCPeerConnectionHandler::createDTMFSender"); | 1364 TRACE_EVENT0("webrtc", "RTCPeerConnectionHandler::createDTMFSender"); |
1365 DVLOG(1) << "createDTMFSender."; | 1365 DVLOG(1) << "createDTMFSender."; |
1366 | 1366 |
1367 MediaStreamAudioTrack* native_track = MediaStreamAudioTrack::GetTrack(track); | 1367 MediaStreamAudioTrack* native_track = MediaStreamAudioTrack::GetTrack(track); |
1368 if (!native_track || !native_track->is_local_track() || | 1368 if (!native_track || !native_track->is_local_track() || |
1369 track.source().type() != blink::WebMediaStreamSource::TypeAudio) { | 1369 track.source().type() != blink::WebMediaStreamSource::TypeAudio) { |
1370 DLOG(ERROR) << "The DTMF sender requires a local audio track."; | 1370 DLOG(ERROR) << "The DTMF sender requires a local audio track."; |
1371 return nullptr; | 1371 return nullptr; |
1372 } | 1372 } |
1373 | 1373 |
1374 scoped_refptr<webrtc::AudioTrackInterface> audio_track = | 1374 webrtc::AudioTrackInterface* const audio_adapter = |
1375 native_track->GetAudioAdapter(); | 1375 native_track->GetAudioAdapter(); |
| 1376 if (!audio_adapter) { |
| 1377 DLOG(ERROR) << "WebRTC features are not available on this audio track."; |
| 1378 return nullptr; |
| 1379 } |
1376 rtc::scoped_refptr<webrtc::DtmfSenderInterface> sender( | 1380 rtc::scoped_refptr<webrtc::DtmfSenderInterface> sender( |
1377 native_peer_connection_->CreateDtmfSender(audio_track.get())); | 1381 native_peer_connection_->CreateDtmfSender(audio_adapter)); |
1378 if (!sender) { | 1382 if (!sender) { |
1379 DLOG(ERROR) << "Could not create native DTMF sender."; | 1383 DLOG(ERROR) << "Could not create native DTMF sender."; |
1380 return nullptr; | 1384 return nullptr; |
1381 } | 1385 } |
1382 if (peer_connection_tracker_) | 1386 if (peer_connection_tracker_) |
1383 peer_connection_tracker_->TrackCreateDTMFSender(this, track); | 1387 peer_connection_tracker_->TrackCreateDTMFSender(this, track); |
1384 | 1388 |
1385 return new RtcDtmfSenderHandler(sender); | 1389 return new RtcDtmfSenderHandler(sender); |
1386 } | 1390 } |
1387 | 1391 |
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1671 } | 1675 } |
1672 | 1676 |
1673 void RTCPeerConnectionHandler::ResetUMAStats() { | 1677 void RTCPeerConnectionHandler::ResetUMAStats() { |
1674 DCHECK(thread_checker_.CalledOnValidThread()); | 1678 DCHECK(thread_checker_.CalledOnValidThread()); |
1675 num_local_candidates_ipv6_ = 0; | 1679 num_local_candidates_ipv6_ = 0; |
1676 num_local_candidates_ipv4_ = 0; | 1680 num_local_candidates_ipv4_ = 0; |
1677 ice_connection_checking_start_ = base::TimeTicks(); | 1681 ice_connection_checking_start_ = base::TimeTicks(); |
1678 memset(ice_state_seen_, 0, sizeof(ice_state_seen_)); | 1682 memset(ice_state_seen_, 0, sizeof(ice_state_seen_)); |
1679 } | 1683 } |
1680 } // namespace content | 1684 } // namespace content |
OLD | NEW |