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

Side by Side Diff: content/renderer/media/rtc_peer_connection_handler.cc

Issue 12207107: Update libjingle 273:277. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 7 years, 10 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 | Annotate | Revision Log
OLDNEW
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 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
99 } 99 }
100 100
101 description.initialize(UTF8ToUTF16(native_desc->type()), UTF8ToUTF16(sdp)); 101 description.initialize(UTF8ToUTF16(native_desc->type()), UTF8ToUTF16(sdp));
102 return description; 102 return description;
103 } 103 }
104 104
105 // Converter functions from WebKit types to libjingle types. 105 // Converter functions from WebKit types to libjingle types.
106 106
107 static void GetNativeIceServers( 107 static void GetNativeIceServers(
108 const WebKit::WebRTCConfiguration& server_configuration, 108 const WebKit::WebRTCConfiguration& server_configuration,
109 webrtc::JsepInterface::IceServers* servers) { 109 webrtc::PeerConnectionInterface::IceServers* servers) {
110 if (server_configuration.isNull() || !servers) 110 if (server_configuration.isNull() || !servers)
111 return; 111 return;
112 for (size_t i = 0; i < server_configuration.numberOfServers(); ++i) { 112 for (size_t i = 0; i < server_configuration.numberOfServers(); ++i) {
113 webrtc::JsepInterface::IceServer server; 113 webrtc::PeerConnectionInterface::IceServer server;
114 const WebKit::WebRTCICEServer& webkit_server = 114 const WebKit::WebRTCICEServer& webkit_server =
115 server_configuration.server(i); 115 server_configuration.server(i);
116 server.password = UTF16ToUTF8(webkit_server.credential()); 116 server.password = UTF16ToUTF8(webkit_server.credential());
117 server.uri = webkit_server.uri().spec(); 117 server.uri = webkit_server.uri().spec();
118 servers->push_back(server); 118 servers->push_back(server);
119 } 119 }
120 } 120 }
121 121
122 class SessionDescriptionRequestTracker { 122 class SessionDescriptionRequestTracker {
123 public: 123 public:
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
328 } 328 }
329 329
330 bool RTCPeerConnectionHandler::initialize( 330 bool RTCPeerConnectionHandler::initialize(
331 const WebKit::WebRTCConfiguration& server_configuration, 331 const WebKit::WebRTCConfiguration& server_configuration,
332 const WebKit::WebMediaConstraints& options) { 332 const WebKit::WebMediaConstraints& options) {
333 DCHECK(frame_); 333 DCHECK(frame_);
334 334
335 peer_connection_tracker_ = 335 peer_connection_tracker_ =
336 RenderThreadImpl::current()->peer_connection_tracker(); 336 RenderThreadImpl::current()->peer_connection_tracker();
337 337
338 webrtc::JsepInterface::IceServers servers; 338 webrtc::PeerConnectionInterface::IceServers servers;
339 GetNativeIceServers(server_configuration, &servers); 339 GetNativeIceServers(server_configuration, &servers);
340 340
341 RTCMediaConstraints constraints(options); 341 RTCMediaConstraints constraints(options);
342 native_peer_connection_ = 342 native_peer_connection_ =
343 dependency_factory_->CreatePeerConnection( 343 dependency_factory_->CreatePeerConnection(
344 servers, &constraints, frame_, this); 344 servers, &constraints, frame_, this);
345 if (!native_peer_connection_) { 345 if (!native_peer_connection_) {
346 LOG(ERROR) << "Failed to initialize native PeerConnection."; 346 LOG(ERROR) << "Failed to initialize native PeerConnection.";
347 return false; 347 return false;
348 } 348 }
349 if (peer_connection_tracker_) 349 if (peer_connection_tracker_)
350 peer_connection_tracker_->RegisterPeerConnection( 350 peer_connection_tracker_->RegisterPeerConnection(
351 this, servers, constraints, frame_); 351 this, servers, constraints, frame_);
352 352
353 return true; 353 return true;
354 } 354 }
355 355
356 bool RTCPeerConnectionHandler::InitializeForTest( 356 bool RTCPeerConnectionHandler::InitializeForTest(
357 const WebKit::WebRTCConfiguration& server_configuration, 357 const WebKit::WebRTCConfiguration& server_configuration,
358 const WebKit::WebMediaConstraints& options, 358 const WebKit::WebMediaConstraints& options,
359 PeerConnectionTracker* peer_connection_tracker) { 359 PeerConnectionTracker* peer_connection_tracker) {
360 webrtc::JsepInterface::IceServers servers; 360 webrtc::PeerConnectionInterface::IceServers servers;
361 GetNativeIceServers(server_configuration, &servers); 361 GetNativeIceServers(server_configuration, &servers);
362 362
363 RTCMediaConstraints constraints(options); 363 RTCMediaConstraints constraints(options);
364 native_peer_connection_ = 364 native_peer_connection_ =
365 dependency_factory_->CreatePeerConnection( 365 dependency_factory_->CreatePeerConnection(
366 servers, &constraints, NULL, this); 366 servers, &constraints, NULL, this);
367 if (!native_peer_connection_) { 367 if (!native_peer_connection_) {
368 LOG(ERROR) << "Failed to initialize native PeerConnection."; 368 LOG(ERROR) << "Failed to initialize native PeerConnection.";
369 return false; 369 return false;
370 } 370 }
(...skipping 23 matching lines...) Expand all
394 RTCMediaConstraints constraints(options); 394 RTCMediaConstraints constraints(options);
395 native_peer_connection_->CreateAnswer(description_request, &constraints); 395 native_peer_connection_->CreateAnswer(description_request, &constraints);
396 396
397 if (peer_connection_tracker_) 397 if (peer_connection_tracker_)
398 peer_connection_tracker_->TrackCreateAnswer(this, constraints); 398 peer_connection_tracker_->TrackCreateAnswer(this, constraints);
399 } 399 }
400 400
401 void RTCPeerConnectionHandler::setLocalDescription( 401 void RTCPeerConnectionHandler::setLocalDescription(
402 const WebKit::WebRTCVoidRequest& request, 402 const WebKit::WebRTCVoidRequest& request,
403 const WebKit::WebRTCSessionDescription& description) { 403 const WebKit::WebRTCSessionDescription& description) {
404 webrtc::SdpParseError error;
404 webrtc::SessionDescriptionInterface* native_desc = 405 webrtc::SessionDescriptionInterface* native_desc =
405 CreateNativeSessionDescription(description); 406 CreateNativeSessionDescription(description, &error);
406 if (!native_desc) { 407 if (!native_desc) {
407 const char kReason[] = "Failed to parse SessionDescription."; 408 std::string reason_str = "Failed to parse SessionDescription. ";
408 LOG(ERROR) << kReason; 409 reason_str.append(error.line);
409 WebKit::WebString reason(kReason); 410 reason_str.append(" ");
410 request.requestFailed(reason); 411 reason_str.append(error.description);
412 LOG(ERROR) << reason_str;
413 request.requestFailed(WebKit::WebString::fromUTF8(reason_str));
411 return; 414 return;
412 } 415 }
413 if (peer_connection_tracker_) 416 if (peer_connection_tracker_)
414 peer_connection_tracker_->TrackSetSessionDescription( 417 peer_connection_tracker_->TrackSetSessionDescription(
415 this, native_desc, PeerConnectionTracker::SOURCE_LOCAL); 418 this, native_desc, PeerConnectionTracker::SOURCE_LOCAL);
416 419
417 scoped_refptr<SetSessionDescriptionRequest> set_request( 420 scoped_refptr<SetSessionDescriptionRequest> set_request(
418 new talk_base::RefCountedObject<SetSessionDescriptionRequest>( 421 new talk_base::RefCountedObject<SetSessionDescriptionRequest>(
419 request, this, PeerConnectionTracker::ACTION_SET_LOCAL_DESCRIPTION)); 422 request, this, PeerConnectionTracker::ACTION_SET_LOCAL_DESCRIPTION));
420 native_peer_connection_->SetLocalDescription(set_request, native_desc); 423 native_peer_connection_->SetLocalDescription(set_request, native_desc);
421 } 424 }
422 425
423 void RTCPeerConnectionHandler::setRemoteDescription( 426 void RTCPeerConnectionHandler::setRemoteDescription(
424 const WebKit::WebRTCVoidRequest& request, 427 const WebKit::WebRTCVoidRequest& request,
425 const WebKit::WebRTCSessionDescription& description) { 428 const WebKit::WebRTCSessionDescription& description) {
429 webrtc::SdpParseError error;
426 webrtc::SessionDescriptionInterface* native_desc = 430 webrtc::SessionDescriptionInterface* native_desc =
427 CreateNativeSessionDescription(description); 431 CreateNativeSessionDescription(description, &error);
428 if (!native_desc) { 432 if (!native_desc) {
429 const char kReason[] = "Failed to parse SessionDescription."; 433 std::string reason_str = "Failed to parse SessionDescription. ";
430 LOG(ERROR) << kReason; 434 reason_str.append(error.line);
431 WebKit::WebString reason(kReason); 435 reason_str.append(" ");
432 request.requestFailed(reason); 436 reason_str.append(error.description);
437 LOG(ERROR) << reason_str;
438 request.requestFailed(WebKit::WebString::fromUTF8(reason_str));
433 return; 439 return;
434 } 440 }
435 if (peer_connection_tracker_) 441 if (peer_connection_tracker_)
436 peer_connection_tracker_->TrackSetSessionDescription( 442 peer_connection_tracker_->TrackSetSessionDescription(
437 this, native_desc, PeerConnectionTracker::SOURCE_REMOTE); 443 this, native_desc, PeerConnectionTracker::SOURCE_REMOTE);
438 444
439 scoped_refptr<SetSessionDescriptionRequest> set_request( 445 scoped_refptr<SetSessionDescriptionRequest> set_request(
440 new talk_base::RefCountedObject<SetSessionDescriptionRequest>( 446 new talk_base::RefCountedObject<SetSessionDescriptionRequest>(
441 request, this, PeerConnectionTracker::ACTION_SET_REMOTE_DESCRIPTION)); 447 request, this, PeerConnectionTracker::ACTION_SET_REMOTE_DESCRIPTION));
442 native_peer_connection_->SetRemoteDescription(set_request, native_desc); 448 native_peer_connection_->SetRemoteDescription(set_request, native_desc);
(...skipping 13 matching lines...) Expand all
456 const webrtc::SessionDescriptionInterface* native_desc = 462 const webrtc::SessionDescriptionInterface* native_desc =
457 native_peer_connection_->remote_description(); 463 native_peer_connection_->remote_description();
458 WebKit::WebRTCSessionDescription description = 464 WebKit::WebRTCSessionDescription description =
459 CreateWebKitSessionDescription(native_desc); 465 CreateWebKitSessionDescription(native_desc);
460 return description; 466 return description;
461 } 467 }
462 468
463 bool RTCPeerConnectionHandler::updateICE( 469 bool RTCPeerConnectionHandler::updateICE(
464 const WebKit::WebRTCConfiguration& server_configuration, 470 const WebKit::WebRTCConfiguration& server_configuration,
465 const WebKit::WebMediaConstraints& options) { 471 const WebKit::WebMediaConstraints& options) {
466 webrtc::JsepInterface::IceServers servers; 472 webrtc::PeerConnectionInterface::IceServers servers;
467 GetNativeIceServers(server_configuration, &servers); 473 GetNativeIceServers(server_configuration, &servers);
468 RTCMediaConstraints constraints(options); 474 RTCMediaConstraints constraints(options);
469 475
470 if (peer_connection_tracker_) 476 if (peer_connection_tracker_)
471 peer_connection_tracker_->TrackUpdateIce(this, servers, constraints); 477 peer_connection_tracker_->TrackUpdateIce(this, servers, constraints);
472 478
473 return native_peer_connection_->UpdateIce(servers, 479 return native_peer_connection_->UpdateIce(servers,
474 &constraints); 480 &constraints);
475 } 481 }
476 482
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after
721 void RTCPeerConnectionHandler::OnRenegotiationNeeded() { 727 void RTCPeerConnectionHandler::OnRenegotiationNeeded() {
722 client_->negotiationNeeded(); 728 client_->negotiationNeeded();
723 } 729 }
724 730
725 PeerConnectionTracker* RTCPeerConnectionHandler::peer_connection_tracker() { 731 PeerConnectionTracker* RTCPeerConnectionHandler::peer_connection_tracker() {
726 return peer_connection_tracker_; 732 return peer_connection_tracker_;
727 } 733 }
728 734
729 webrtc::SessionDescriptionInterface* 735 webrtc::SessionDescriptionInterface*
730 RTCPeerConnectionHandler::CreateNativeSessionDescription( 736 RTCPeerConnectionHandler::CreateNativeSessionDescription(
731 const WebKit::WebRTCSessionDescription& description) { 737 const WebKit::WebRTCSessionDescription& description,
738 webrtc::SdpParseError* error) {
732 std::string sdp = UTF16ToUTF8(description.sdp()); 739 std::string sdp = UTF16ToUTF8(description.sdp());
733 std::string type = UTF16ToUTF8(description.type()); 740 std::string type = UTF16ToUTF8(description.type());
734 webrtc::SessionDescriptionInterface* native_desc = 741 webrtc::SessionDescriptionInterface* native_desc =
735 dependency_factory_->CreateSessionDescription(type, sdp); 742 dependency_factory_->CreateSessionDescription(type, sdp, error);
736 743
737 LOG_IF(ERROR, !native_desc) << "Failed to create native session description." 744 LOG_IF(ERROR, !native_desc) << "Failed to create native session description."
738 << " Type: " << type << " SDP: " << sdp; 745 << " Type: " << type << " SDP: " << sdp;
739 746
740 return native_desc; 747 return native_desc;
741 } 748 }
742 749
743 } // namespace content 750 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/rtc_peer_connection_handler.h ('k') | content/renderer/media/rtc_peer_connection_handler_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698