| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 #include "content/renderer/media/peer_connection_tracker.h" | 4 #include "content/renderer/media/peer_connection_tracker.h" |
| 5 | 5 |
| 6 #include "base/strings/utf_string_conversions.h" | 6 #include "base/strings/utf_string_conversions.h" |
| 7 #include "content/common/media/peer_connection_tracker_messages.h" | 7 #include "content/common/media/peer_connection_tracker_messages.h" |
| 8 #include "content/renderer/media/rtc_media_constraints.h" | 8 #include "content/renderer/media/rtc_media_constraints.h" |
| 9 #include "content/renderer/media/rtc_peer_connection_handler.h" | 9 #include "content/renderer/media/rtc_peer_connection_handler.h" |
| 10 #include "content/renderer/render_thread_impl.h" | 10 #include "content/renderer/render_thread_impl.h" |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 57 if (i != optional.size() - 1) | 57 if (i != optional.size() - 1) |
| 58 result += ", "; | 58 result += ", "; |
| 59 } | 59 } |
| 60 result += "}"; | 60 result += "}"; |
| 61 } | 61 } |
| 62 return result; | 62 return result; |
| 63 } | 63 } |
| 64 | 64 |
| 65 static string SerializeMediaStreamComponent( | 65 static string SerializeMediaStreamComponent( |
| 66 const blink::WebMediaStreamTrack component) { | 66 const blink::WebMediaStreamTrack component) { |
| 67 string id = UTF16ToUTF8(component.source().id()); | 67 string id = base::UTF16ToUTF8(component.source().id()); |
| 68 return id; | 68 return id; |
| 69 } | 69 } |
| 70 | 70 |
| 71 static string SerializeMediaDescriptor( | 71 static string SerializeMediaDescriptor( |
| 72 const blink::WebMediaStream& stream) { | 72 const blink::WebMediaStream& stream) { |
| 73 string label = UTF16ToUTF8(stream.id()); | 73 string label = base::UTF16ToUTF8(stream.id()); |
| 74 string result = "label: " + label; | 74 string result = "label: " + label; |
| 75 blink::WebVector<blink::WebMediaStreamTrack> tracks; | 75 blink::WebVector<blink::WebMediaStreamTrack> tracks; |
| 76 stream.audioTracks(tracks); | 76 stream.audioTracks(tracks); |
| 77 if (!tracks.isEmpty()) { | 77 if (!tracks.isEmpty()) { |
| 78 result += ", audio: ["; | 78 result += ", audio: ["; |
| 79 for (size_t i = 0; i < tracks.size(); ++i) { | 79 for (size_t i = 0; i < tracks.size(); ++i) { |
| 80 result += SerializeMediaStreamComponent(tracks[i]); | 80 result += SerializeMediaStreamComponent(tracks[i]); |
| 81 if (i != tracks.size() - 1) | 81 if (i != tracks.size() - 1) |
| 82 result += ", "; | 82 result += ", "; |
| 83 } | 83 } |
| (...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 299 const RTCMediaConstraints& constraints) { | 299 const RTCMediaConstraints& constraints) { |
| 300 SendPeerConnectionUpdate( | 300 SendPeerConnectionUpdate( |
| 301 pc_handler, "createAnswer", | 301 pc_handler, "createAnswer", |
| 302 "constraints: {" + SerializeMediaConstraints(constraints) + "}"); | 302 "constraints: {" + SerializeMediaConstraints(constraints) + "}"); |
| 303 } | 303 } |
| 304 | 304 |
| 305 void PeerConnectionTracker::TrackSetSessionDescription( | 305 void PeerConnectionTracker::TrackSetSessionDescription( |
| 306 RTCPeerConnectionHandler* pc_handler, | 306 RTCPeerConnectionHandler* pc_handler, |
| 307 const blink::WebRTCSessionDescription& desc, | 307 const blink::WebRTCSessionDescription& desc, |
| 308 Source source) { | 308 Source source) { |
| 309 string sdp = UTF16ToUTF8(desc.sdp()); | 309 string sdp = base::UTF16ToUTF8(desc.sdp()); |
| 310 string type = UTF16ToUTF8(desc.type()); | 310 string type = base::UTF16ToUTF8(desc.type()); |
| 311 | 311 |
| 312 string value = "type: " + type + ", sdp: " + sdp; | 312 string value = "type: " + type + ", sdp: " + sdp; |
| 313 SendPeerConnectionUpdate( | 313 SendPeerConnectionUpdate( |
| 314 pc_handler, | 314 pc_handler, |
| 315 source == SOURCE_LOCAL ? "setLocalDescription" : "setRemoteDescription", | 315 source == SOURCE_LOCAL ? "setLocalDescription" : "setRemoteDescription", |
| 316 value); | 316 value); |
| 317 } | 317 } |
| 318 | 318 |
| 319 void PeerConnectionTracker::TrackUpdateIce( | 319 void PeerConnectionTracker::TrackUpdateIce( |
| 320 RTCPeerConnectionHandler* pc_handler, | 320 RTCPeerConnectionHandler* pc_handler, |
| 321 const std::vector<webrtc::PeerConnectionInterface::IceServer>& servers, | 321 const std::vector<webrtc::PeerConnectionInterface::IceServer>& servers, |
| 322 const RTCMediaConstraints& options) { | 322 const RTCMediaConstraints& options) { |
| 323 string servers_string = "servers: " + SerializeServers(servers); | 323 string servers_string = "servers: " + SerializeServers(servers); |
| 324 string constraints = | 324 string constraints = |
| 325 "constraints: {" + SerializeMediaConstraints(options) + "}"; | 325 "constraints: {" + SerializeMediaConstraints(options) + "}"; |
| 326 | 326 |
| 327 SendPeerConnectionUpdate( | 327 SendPeerConnectionUpdate( |
| 328 pc_handler, "updateIce", servers_string + ", " + constraints); | 328 pc_handler, "updateIce", servers_string + ", " + constraints); |
| 329 } | 329 } |
| 330 | 330 |
| 331 void PeerConnectionTracker::TrackAddIceCandidate( | 331 void PeerConnectionTracker::TrackAddIceCandidate( |
| 332 RTCPeerConnectionHandler* pc_handler, | 332 RTCPeerConnectionHandler* pc_handler, |
| 333 const blink::WebRTCICECandidate& candidate, | 333 const blink::WebRTCICECandidate& candidate, |
| 334 Source source) { | 334 Source source) { |
| 335 string value = "mid: " + UTF16ToUTF8(candidate.sdpMid()) + ", " + | 335 string value = "mid: " + base::UTF16ToUTF8(candidate.sdpMid()) + ", " + |
| 336 "candidate: " + UTF16ToUTF8(candidate.candidate()); | 336 "candidate: " + base::UTF16ToUTF8(candidate.candidate()); |
| 337 SendPeerConnectionUpdate( | 337 SendPeerConnectionUpdate( |
| 338 pc_handler, | 338 pc_handler, |
| 339 source == SOURCE_LOCAL ? "onIceCandidate" : "addIceCandidate", value); | 339 source == SOURCE_LOCAL ? "onIceCandidate" : "addIceCandidate", value); |
| 340 } | 340 } |
| 341 | 341 |
| 342 void PeerConnectionTracker::TrackAddStream( | 342 void PeerConnectionTracker::TrackAddStream( |
| 343 RTCPeerConnectionHandler* pc_handler, | 343 RTCPeerConnectionHandler* pc_handler, |
| 344 const blink::WebMediaStream& stream, | 344 const blink::WebMediaStream& stream, |
| 345 Source source){ | 345 Source source){ |
| 346 SendPeerConnectionUpdate( | 346 SendPeerConnectionUpdate( |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 424 | 424 |
| 425 void PeerConnectionTracker::TrackOnRenegotiationNeeded( | 425 void PeerConnectionTracker::TrackOnRenegotiationNeeded( |
| 426 RTCPeerConnectionHandler* pc_handler) { | 426 RTCPeerConnectionHandler* pc_handler) { |
| 427 SendPeerConnectionUpdate(pc_handler, "onRenegotiationNeeded", std::string()); | 427 SendPeerConnectionUpdate(pc_handler, "onRenegotiationNeeded", std::string()); |
| 428 } | 428 } |
| 429 | 429 |
| 430 void PeerConnectionTracker::TrackCreateDTMFSender( | 430 void PeerConnectionTracker::TrackCreateDTMFSender( |
| 431 RTCPeerConnectionHandler* pc_handler, | 431 RTCPeerConnectionHandler* pc_handler, |
| 432 const blink::WebMediaStreamTrack& track) { | 432 const blink::WebMediaStreamTrack& track) { |
| 433 SendPeerConnectionUpdate(pc_handler, "createDTMFSender", | 433 SendPeerConnectionUpdate(pc_handler, "createDTMFSender", |
| 434 UTF16ToUTF8(track.id())); | 434 base::UTF16ToUTF8(track.id())); |
| 435 } | 435 } |
| 436 | 436 |
| 437 int PeerConnectionTracker::GetNextLocalID() { | 437 int PeerConnectionTracker::GetNextLocalID() { |
| 438 return next_lid_++; | 438 return next_lid_++; |
| 439 } | 439 } |
| 440 | 440 |
| 441 void PeerConnectionTracker::SendPeerConnectionUpdate( | 441 void PeerConnectionTracker::SendPeerConnectionUpdate( |
| 442 RTCPeerConnectionHandler* pc_handler, | 442 RTCPeerConnectionHandler* pc_handler, |
| 443 const std::string& type, | 443 const std::string& type, |
| 444 const std::string& value) { | 444 const std::string& value) { |
| 445 if (peer_connection_id_map_.find(pc_handler) == peer_connection_id_map_.end()) | 445 if (peer_connection_id_map_.find(pc_handler) == peer_connection_id_map_.end()) |
| 446 return; | 446 return; |
| 447 | 447 |
| 448 RenderThreadImpl::current()->Send( | 448 RenderThreadImpl::current()->Send( |
| 449 new PeerConnectionTrackerHost_UpdatePeerConnection( | 449 new PeerConnectionTrackerHost_UpdatePeerConnection( |
| 450 peer_connection_id_map_[pc_handler], type, value)); | 450 peer_connection_id_map_[pc_handler], type, value)); |
| 451 } | 451 } |
| 452 | 452 |
| 453 } // namespace content | 453 } // namespace content |
| OLD | NEW |