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> | 7 #include <string> |
8 #include <utility> | 8 #include <utility> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 622 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
633 return true; | 633 return true; |
634 } | 634 } |
635 | 635 |
636 bool RTCPeerConnectionHandler::addICECandidate( | 636 bool RTCPeerConnectionHandler::addICECandidate( |
637 const blink::WebRTCICECandidate& candidate) { | 637 const blink::WebRTCICECandidate& candidate) { |
638 scoped_ptr<webrtc::IceCandidateInterface> native_candidate( | 638 scoped_ptr<webrtc::IceCandidateInterface> native_candidate( |
639 dependency_factory_->CreateIceCandidate( | 639 dependency_factory_->CreateIceCandidate( |
640 base::UTF16ToUTF8(candidate.sdpMid()), | 640 base::UTF16ToUTF8(candidate.sdpMid()), |
641 candidate.sdpMLineIndex(), | 641 candidate.sdpMLineIndex(), |
642 base::UTF16ToUTF8(candidate.candidate()))); | 642 base::UTF16ToUTF8(candidate.candidate()))); |
643 if (!native_candidate) { | 643 bool return_value = false; |
| 644 |
| 645 if (native_candidate) { |
| 646 return_value = |
| 647 native_peer_connection_->AddIceCandidate(native_candidate.get()); |
| 648 LOG_IF(ERROR, !return_value) << "Error processing ICE candidate."; |
| 649 } else { |
644 LOG(ERROR) << "Could not create native ICE candidate."; | 650 LOG(ERROR) << "Could not create native ICE candidate."; |
645 return false; | |
646 } | 651 } |
647 | 652 |
648 bool return_value = | 653 if (peer_connection_tracker_) { |
649 native_peer_connection_->AddIceCandidate(native_candidate.get()); | |
650 LOG_IF(ERROR, !return_value) << "Error processing ICE candidate."; | |
651 | |
652 if (peer_connection_tracker_) | |
653 peer_connection_tracker_->TrackAddIceCandidate( | 654 peer_connection_tracker_->TrackAddIceCandidate( |
654 this, candidate, PeerConnectionTracker::SOURCE_REMOTE); | 655 this, candidate, PeerConnectionTracker::SOURCE_REMOTE, return_value); |
655 | 656 } |
656 return return_value; | 657 return return_value; |
657 } | 658 } |
658 | 659 |
659 void RTCPeerConnectionHandler::OnaddICECandidateResult( | 660 void RTCPeerConnectionHandler::OnaddICECandidateResult( |
660 const blink::WebRTCVoidRequest& webkit_request, bool result) { | 661 const blink::WebRTCVoidRequest& webkit_request, bool result) { |
661 if (!result) { | 662 if (!result) { |
662 // We don't have the actual error code from the libjingle, so for now | 663 // We don't have the actual error code from the libjingle, so for now |
663 // using a generic error string. | 664 // using a generic error string. |
664 return webkit_request.requestFailed( | 665 return webkit_request.requestFailed( |
665 base::UTF8ToUTF16("Error processing ICE candidate")); | 666 base::UTF8ToUTF16("Error processing ICE candidate")); |
(...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
955 if (!candidate->ToString(&sdp)) { | 956 if (!candidate->ToString(&sdp)) { |
956 NOTREACHED() << "OnIceCandidate: Could not get SDP string."; | 957 NOTREACHED() << "OnIceCandidate: Could not get SDP string."; |
957 return; | 958 return; |
958 } | 959 } |
959 blink::WebRTCICECandidate web_candidate; | 960 blink::WebRTCICECandidate web_candidate; |
960 web_candidate.initialize(base::UTF8ToUTF16(sdp), | 961 web_candidate.initialize(base::UTF8ToUTF16(sdp), |
961 base::UTF8ToUTF16(candidate->sdp_mid()), | 962 base::UTF8ToUTF16(candidate->sdp_mid()), |
962 candidate->sdp_mline_index()); | 963 candidate->sdp_mline_index()); |
963 if (peer_connection_tracker_) | 964 if (peer_connection_tracker_) |
964 peer_connection_tracker_->TrackAddIceCandidate( | 965 peer_connection_tracker_->TrackAddIceCandidate( |
965 this, web_candidate, PeerConnectionTracker::SOURCE_LOCAL); | 966 this, web_candidate, PeerConnectionTracker::SOURCE_LOCAL, true); |
966 | 967 |
967 client_->didGenerateICECandidate(web_candidate); | 968 client_->didGenerateICECandidate(web_candidate); |
968 } | 969 } |
969 | 970 |
970 void RTCPeerConnectionHandler::OnDataChannel( | 971 void RTCPeerConnectionHandler::OnDataChannel( |
971 webrtc::DataChannelInterface* data_channel) { | 972 webrtc::DataChannelInterface* data_channel) { |
972 if (peer_connection_tracker_) | 973 if (peer_connection_tracker_) |
973 peer_connection_tracker_->TrackCreateDataChannel( | 974 peer_connection_tracker_->TrackCreateDataChannel( |
974 this, data_channel, PeerConnectionTracker::SOURCE_REMOTE); | 975 this, data_channel, PeerConnectionTracker::SOURCE_REMOTE); |
975 | 976 |
(...skipping 21 matching lines...) Expand all Loading... |
997 webrtc::SessionDescriptionInterface* native_desc = | 998 webrtc::SessionDescriptionInterface* native_desc = |
998 dependency_factory_->CreateSessionDescription(type, sdp, error); | 999 dependency_factory_->CreateSessionDescription(type, sdp, error); |
999 | 1000 |
1000 LOG_IF(ERROR, !native_desc) << "Failed to create native session description." | 1001 LOG_IF(ERROR, !native_desc) << "Failed to create native session description." |
1001 << " Type: " << type << " SDP: " << sdp; | 1002 << " Type: " << type << " SDP: " << sdp; |
1002 | 1003 |
1003 return native_desc; | 1004 return native_desc; |
1004 } | 1005 } |
1005 | 1006 |
1006 } // namespace content | 1007 } // namespace content |
OLD | NEW |