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

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

Issue 1676043002: Deliver webrtc-internals updates in bulk, every 500ms at most. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address comments Created 4 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
« no previous file with comments | « content/renderer/media/peer_connection_tracker.h ('k') | content/test/BUILD.gn » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 <stddef.h> 6 #include <stddef.h>
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include "base/strings/string_number_conversions.h" 9 #include "base/strings/string_number_conversions.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
(...skipping 329 matching lines...) Expand 10 before | Expand all | Expand 10 after
340 static void OnCompleteImpl(scoped_ptr<base::ListValue> list, int lid) { 340 static void OnCompleteImpl(scoped_ptr<base::ListValue> list, int lid) {
341 DCHECK(!list->empty()); 341 DCHECK(!list->empty());
342 RenderThreadImpl::current()->Send( 342 RenderThreadImpl::current()->Send(
343 new PeerConnectionTrackerHost_AddStats(lid, *list.get())); 343 new PeerConnectionTrackerHost_AddStats(lid, *list.get()));
344 } 344 }
345 345
346 const int lid_; 346 const int lid_;
347 const scoped_refptr<base::SingleThreadTaskRunner> main_thread_; 347 const scoped_refptr<base::SingleThreadTaskRunner> main_thread_;
348 }; 348 };
349 349
350 PeerConnectionTracker::PeerConnectionTracker() : next_lid_(1) { 350 PeerConnectionTracker::PeerConnectionTracker() : next_local_id_(1) {
351 } 351 }
352 352
353 PeerConnectionTracker::~PeerConnectionTracker() { 353 PeerConnectionTracker::~PeerConnectionTracker() {
354 } 354 }
355 355
356 bool PeerConnectionTracker::OnControlMessageReceived( 356 bool PeerConnectionTracker::OnControlMessageReceived(
357 const IPC::Message& message) { 357 const IPC::Message& message) {
358 bool handled = true; 358 bool handled = true;
359 IPC_BEGIN_MESSAGE_MAP(PeerConnectionTracker, message) 359 IPC_BEGIN_MESSAGE_MAP(PeerConnectionTracker, message)
360 IPC_MESSAGE_HANDLER(PeerConnectionTracker_GetAllStats, OnGetAllStats) 360 IPC_MESSAGE_HANDLER(PeerConnectionTracker_GetAllStats, OnGetAllStats)
(...skipping 27 matching lines...) Expand all
388 it->first->CloseClientPeerConnection(); 388 it->first->CloseClientPeerConnection();
389 } 389 }
390 } 390 }
391 391
392 void PeerConnectionTracker::RegisterPeerConnection( 392 void PeerConnectionTracker::RegisterPeerConnection(
393 RTCPeerConnectionHandler* pc_handler, 393 RTCPeerConnectionHandler* pc_handler,
394 const webrtc::PeerConnectionInterface::RTCConfiguration& config, 394 const webrtc::PeerConnectionInterface::RTCConfiguration& config,
395 const RTCMediaConstraints& constraints, 395 const RTCMediaConstraints& constraints,
396 const blink::WebFrame* frame) { 396 const blink::WebFrame* frame) {
397 DCHECK(main_thread_.CalledOnValidThread()); 397 DCHECK(main_thread_.CalledOnValidThread());
398 DCHECK_EQ(GetLocalIDForHandler(pc_handler), -1);
398 DVLOG(1) << "PeerConnectionTracker::RegisterPeerConnection()"; 399 DVLOG(1) << "PeerConnectionTracker::RegisterPeerConnection()";
399 PeerConnectionInfo info; 400 PeerConnectionInfo info;
400 401
401 info.lid = GetNextLocalID(); 402 info.lid = GetNextLocalID();
402 info.rtc_configuration = 403 info.rtc_configuration =
403 "{ servers: " + SerializeServers(config.servers) + ", " + 404 "{ servers: " + SerializeServers(config.servers) + ", " +
404 "iceTransportType: " + SerializeIceTransportType(config.type) + ", " + 405 "iceTransportType: " + SerializeIceTransportType(config.type) + ", " +
405 "bundlePolicy: " + SerializeBundlePolicy(config.bundle_policy) + ", " + 406 "bundlePolicy: " + SerializeBundlePolicy(config.bundle_policy) + ", " +
406 "rtcpMuxPolicy: " + SerializeRtcpMuxPolicy(config.rtcp_mux_policy) + " }"; 407 "rtcpMuxPolicy: " + SerializeRtcpMuxPolicy(config.rtcp_mux_policy) + " }";
407 408
408 info.constraints = SerializeMediaConstraints(constraints); 409 info.constraints = SerializeMediaConstraints(constraints);
409 info.url = frame->document().url().string().utf8(); 410 info.url = frame->document().url().string().utf8();
410 RenderThreadImpl::current()->Send( 411 RenderThreadImpl::current()->Send(
411 new PeerConnectionTrackerHost_AddPeerConnection(info)); 412 new PeerConnectionTrackerHost_AddPeerConnection(info));
412 413
413 DCHECK(peer_connection_id_map_.find(pc_handler) == 414 peer_connection_id_map_.insert(std::make_pair(pc_handler, info.lid));
414 peer_connection_id_map_.end());
415 peer_connection_id_map_[pc_handler] = info.lid;
416 } 415 }
417 416
418 void PeerConnectionTracker::UnregisterPeerConnection( 417 void PeerConnectionTracker::UnregisterPeerConnection(
419 RTCPeerConnectionHandler* pc_handler) { 418 RTCPeerConnectionHandler* pc_handler) {
420 DCHECK(main_thread_.CalledOnValidThread()); 419 DCHECK(main_thread_.CalledOnValidThread());
421 DVLOG(1) << "PeerConnectionTracker::UnregisterPeerConnection()"; 420 DVLOG(1) << "PeerConnectionTracker::UnregisterPeerConnection()";
422 421
423 std::map<RTCPeerConnectionHandler*, int>::iterator it = 422 std::map<RTCPeerConnectionHandler*, int>::iterator it =
424 peer_connection_id_map_.find(pc_handler); 423 peer_connection_id_map_.find(pc_handler);
425 424
426 if (it == peer_connection_id_map_.end()) { 425 if (it == peer_connection_id_map_.end()) {
427 // The PeerConnection might not have been registered if its initilization 426 // The PeerConnection might not have been registered if its initilization
428 // failed. 427 // failed.
429 return; 428 return;
430 } 429 }
431 430
432 RenderThreadImpl::current()->Send( 431 RenderThreadImpl::current()->Send(
433 new PeerConnectionTrackerHost_RemovePeerConnection(it->second)); 432 new PeerConnectionTrackerHost_RemovePeerConnection(it->second));
434 433
435 peer_connection_id_map_.erase(it); 434 peer_connection_id_map_.erase(it);
436 } 435 }
437 436
438 void PeerConnectionTracker::TrackCreateOffer( 437 void PeerConnectionTracker::TrackCreateOffer(
439 RTCPeerConnectionHandler* pc_handler, 438 RTCPeerConnectionHandler* pc_handler,
440 const RTCMediaConstraints& constraints) { 439 const RTCMediaConstraints& constraints) {
441 DCHECK(main_thread_.CalledOnValidThread()); 440 DCHECK(main_thread_.CalledOnValidThread());
441 int id = GetLocalIDForHandler(pc_handler);
442 if (id == -1)
443 return;
442 SendPeerConnectionUpdate( 444 SendPeerConnectionUpdate(
443 pc_handler, "createOffer", 445 id, "createOffer",
444 "constraints: {" + SerializeMediaConstraints(constraints) + "}"); 446 "constraints: {" + SerializeMediaConstraints(constraints) + "}");
445 } 447 }
446 448
447 void PeerConnectionTracker::TrackCreateAnswer( 449 void PeerConnectionTracker::TrackCreateAnswer(
448 RTCPeerConnectionHandler* pc_handler, 450 RTCPeerConnectionHandler* pc_handler,
449 const RTCMediaConstraints& constraints) { 451 const RTCMediaConstraints& constraints) {
450 DCHECK(main_thread_.CalledOnValidThread()); 452 DCHECK(main_thread_.CalledOnValidThread());
453 int id = GetLocalIDForHandler(pc_handler);
454 if (id == -1)
455 return;
451 SendPeerConnectionUpdate( 456 SendPeerConnectionUpdate(
452 pc_handler, "createAnswer", 457 id, "createAnswer",
453 "constraints: {" + SerializeMediaConstraints(constraints) + "}"); 458 "constraints: {" + SerializeMediaConstraints(constraints) + "}");
454 } 459 }
455 460
456 void PeerConnectionTracker::TrackSetSessionDescription( 461 void PeerConnectionTracker::TrackSetSessionDescription(
457 RTCPeerConnectionHandler* pc_handler, 462 RTCPeerConnectionHandler* pc_handler,
458 const std::string& sdp, const std::string& type, Source source) { 463 const std::string& sdp, const std::string& type, Source source) {
459 DCHECK(main_thread_.CalledOnValidThread()); 464 DCHECK(main_thread_.CalledOnValidThread());
465 int id = GetLocalIDForHandler(pc_handler);
466 if (id == -1)
467 return;
460 string value = "type: " + type + ", sdp: " + sdp; 468 string value = "type: " + type + ", sdp: " + sdp;
461 SendPeerConnectionUpdate( 469 SendPeerConnectionUpdate(
462 pc_handler, 470 id,
463 source == SOURCE_LOCAL ? "setLocalDescription" : "setRemoteDescription", 471 source == SOURCE_LOCAL ? "setLocalDescription" : "setRemoteDescription",
464 value); 472 value);
465 } 473 }
466 474
467 void PeerConnectionTracker::TrackUpdateIce( 475 void PeerConnectionTracker::TrackUpdateIce(
468 RTCPeerConnectionHandler* pc_handler, 476 RTCPeerConnectionHandler* pc_handler,
469 const webrtc::PeerConnectionInterface::RTCConfiguration& config, 477 const webrtc::PeerConnectionInterface::RTCConfiguration& config,
470 const RTCMediaConstraints& options) { 478 const RTCMediaConstraints& options) {
471 DCHECK(main_thread_.CalledOnValidThread()); 479 DCHECK(main_thread_.CalledOnValidThread());
480 int id = GetLocalIDForHandler(pc_handler);
481 if (id == -1)
482 return;
472 string servers_string = "servers: " + SerializeServers(config.servers); 483 string servers_string = "servers: " + SerializeServers(config.servers);
473 484
474 string transport_type = 485 string transport_type =
475 "iceTransportType: " + SerializeIceTransportType(config.type); 486 "iceTransportType: " + SerializeIceTransportType(config.type);
476 487
477 string bundle_policy = 488 string bundle_policy =
478 "bundlePolicy: " + SerializeBundlePolicy(config.bundle_policy); 489 "bundlePolicy: " + SerializeBundlePolicy(config.bundle_policy);
479 490
480 string rtcp_mux_policy = 491 string rtcp_mux_policy =
481 "rtcpMuxPolicy: " + SerializeRtcpMuxPolicy(config.rtcp_mux_policy); 492 "rtcpMuxPolicy: " + SerializeRtcpMuxPolicy(config.rtcp_mux_policy);
482 493
483 string constraints = 494 string constraints =
484 "constraints: {" + SerializeMediaConstraints(options) + "}"; 495 "constraints: {" + SerializeMediaConstraints(options) + "}";
485 496
486 SendPeerConnectionUpdate( 497 SendPeerConnectionUpdate(
487 pc_handler, 498 id,
488 "updateIce", 499 "updateIce",
489 servers_string + ", " + transport_type + ", " + 500 servers_string + ", " + transport_type + ", " +
490 bundle_policy + ", " + rtcp_mux_policy + ", " + 501 bundle_policy + ", " + rtcp_mux_policy + ", " +
491 constraints); 502 constraints);
492 } 503 }
493 504
494 void PeerConnectionTracker::TrackAddIceCandidate( 505 void PeerConnectionTracker::TrackAddIceCandidate(
495 RTCPeerConnectionHandler* pc_handler, 506 RTCPeerConnectionHandler* pc_handler,
496 const blink::WebRTCICECandidate& candidate, 507 const blink::WebRTCICECandidate& candidate,
497 Source source, 508 Source source,
498 bool succeeded) { 509 bool succeeded) {
499 DCHECK(main_thread_.CalledOnValidThread()); 510 DCHECK(main_thread_.CalledOnValidThread());
511 int id = GetLocalIDForHandler(pc_handler);
512 if (id == -1)
513 return;
500 string value = 514 string value =
501 "sdpMid: " + 515 "sdpMid: " +
502 base::UTF16ToUTF8(base::StringPiece16(candidate.sdpMid())) + ", " + 516 base::UTF16ToUTF8(base::StringPiece16(candidate.sdpMid())) + ", " +
503 "sdpMLineIndex: " + base::UintToString(candidate.sdpMLineIndex()) + 517 "sdpMLineIndex: " + base::UintToString(candidate.sdpMLineIndex()) +
504 ", " + "candidate: " + 518 ", " + "candidate: " +
505 base::UTF16ToUTF8(base::StringPiece16(candidate.candidate())); 519 base::UTF16ToUTF8(base::StringPiece16(candidate.candidate()));
506 520
507 // OnIceCandidate always succeeds as it's a callback from the browser. 521 // OnIceCandidate always succeeds as it's a callback from the browser.
508 DCHECK(source != SOURCE_LOCAL || succeeded); 522 DCHECK(source != SOURCE_LOCAL || succeeded);
509 523
510 string event = 524 const char* event =
511 (source == SOURCE_LOCAL) ? "onIceCandidate" 525 (source == SOURCE_LOCAL) ? "onIceCandidate"
512 : (succeeded ? "addIceCandidate" 526 : (succeeded ? "addIceCandidate"
513 : "addIceCandidateFailed"); 527 : "addIceCandidateFailed");
514 528
515 SendPeerConnectionUpdate(pc_handler, event, value); 529 SendPeerConnectionUpdate(id, event, value);
516 } 530 }
517 531
518 void PeerConnectionTracker::TrackAddStream( 532 void PeerConnectionTracker::TrackAddStream(
519 RTCPeerConnectionHandler* pc_handler, 533 RTCPeerConnectionHandler* pc_handler,
520 const blink::WebMediaStream& stream, 534 const blink::WebMediaStream& stream,
521 Source source) { 535 Source source) {
522 DCHECK(main_thread_.CalledOnValidThread()); 536 DCHECK(main_thread_.CalledOnValidThread());
537 int id = GetLocalIDForHandler(pc_handler);
538 if (id == -1)
539 return;
523 SendPeerConnectionUpdate( 540 SendPeerConnectionUpdate(
524 pc_handler, source == SOURCE_LOCAL ? "addStream" : "onAddStream", 541 id, source == SOURCE_LOCAL ? "addStream" : "onAddStream",
525 SerializeMediaDescriptor(stream)); 542 SerializeMediaDescriptor(stream));
526 } 543 }
527 544
528 void PeerConnectionTracker::TrackRemoveStream( 545 void PeerConnectionTracker::TrackRemoveStream(
529 RTCPeerConnectionHandler* pc_handler, 546 RTCPeerConnectionHandler* pc_handler,
530 const blink::WebMediaStream& stream, 547 const blink::WebMediaStream& stream,
531 Source source){ 548 Source source){
532 DCHECK(main_thread_.CalledOnValidThread()); 549 DCHECK(main_thread_.CalledOnValidThread());
550 int id = GetLocalIDForHandler(pc_handler);
551 if (id == -1)
552 return;
533 SendPeerConnectionUpdate( 553 SendPeerConnectionUpdate(
534 pc_handler, source == SOURCE_LOCAL ? "removeStream" : "onRemoveStream", 554 id, source == SOURCE_LOCAL ? "removeStream" : "onRemoveStream",
535 SerializeMediaDescriptor(stream)); 555 SerializeMediaDescriptor(stream));
536 } 556 }
537 557
538 void PeerConnectionTracker::TrackCreateDataChannel( 558 void PeerConnectionTracker::TrackCreateDataChannel(
539 RTCPeerConnectionHandler* pc_handler, 559 RTCPeerConnectionHandler* pc_handler,
540 const webrtc::DataChannelInterface* data_channel, 560 const webrtc::DataChannelInterface* data_channel,
541 Source source) { 561 Source source) {
542 DCHECK(main_thread_.CalledOnValidThread()); 562 DCHECK(main_thread_.CalledOnValidThread());
563 int id = GetLocalIDForHandler(pc_handler);
564 if (id == -1)
565 return;
543 string value = "label: " + data_channel->label() + 566 string value = "label: " + data_channel->label() +
544 ", reliable: " + (data_channel->reliable() ? "true" : "false"); 567 ", reliable: " + (data_channel->reliable() ? "true" : "false");
545 SendPeerConnectionUpdate( 568 SendPeerConnectionUpdate(
546 pc_handler, 569 id,
547 source == SOURCE_LOCAL ? "createLocalDataChannel" : "onRemoteDataChannel", 570 source == SOURCE_LOCAL ? "createLocalDataChannel" : "onRemoteDataChannel",
548 value); 571 value);
549 } 572 }
550 573
551 void PeerConnectionTracker::TrackStop(RTCPeerConnectionHandler* pc_handler) { 574 void PeerConnectionTracker::TrackStop(RTCPeerConnectionHandler* pc_handler) {
552 DCHECK(main_thread_.CalledOnValidThread()); 575 DCHECK(main_thread_.CalledOnValidThread());
553 SendPeerConnectionUpdate(pc_handler, "stop", std::string()); 576 int id = GetLocalIDForHandler(pc_handler);
577 if (id == -1)
578 return;
579 SendPeerConnectionUpdate(id, "stop", std::string());
554 } 580 }
555 581
556 void PeerConnectionTracker::TrackSignalingStateChange( 582 void PeerConnectionTracker::TrackSignalingStateChange(
557 RTCPeerConnectionHandler* pc_handler, 583 RTCPeerConnectionHandler* pc_handler,
558 WebRTCPeerConnectionHandlerClient::SignalingState state) { 584 WebRTCPeerConnectionHandlerClient::SignalingState state) {
559 DCHECK(main_thread_.CalledOnValidThread()); 585 DCHECK(main_thread_.CalledOnValidThread());
586 int id = GetLocalIDForHandler(pc_handler);
587 if (id == -1)
588 return;
560 SendPeerConnectionUpdate( 589 SendPeerConnectionUpdate(
561 pc_handler, "signalingStateChange", GetSignalingStateString(state)); 590 id, "signalingStateChange", GetSignalingStateString(state));
562 } 591 }
563 592
564 void PeerConnectionTracker::TrackIceConnectionStateChange( 593 void PeerConnectionTracker::TrackIceConnectionStateChange(
565 RTCPeerConnectionHandler* pc_handler, 594 RTCPeerConnectionHandler* pc_handler,
566 WebRTCPeerConnectionHandlerClient::ICEConnectionState state) { 595 WebRTCPeerConnectionHandlerClient::ICEConnectionState state) {
567 DCHECK(main_thread_.CalledOnValidThread()); 596 DCHECK(main_thread_.CalledOnValidThread());
597 int id = GetLocalIDForHandler(pc_handler);
598 if (id == -1)
599 return;
568 SendPeerConnectionUpdate( 600 SendPeerConnectionUpdate(
569 pc_handler, "iceConnectionStateChange", 601 id, "iceConnectionStateChange",
570 GetIceConnectionStateString(state)); 602 GetIceConnectionStateString(state));
571 } 603 }
572 604
573 void PeerConnectionTracker::TrackIceGatheringStateChange( 605 void PeerConnectionTracker::TrackIceGatheringStateChange(
574 RTCPeerConnectionHandler* pc_handler, 606 RTCPeerConnectionHandler* pc_handler,
575 WebRTCPeerConnectionHandlerClient::ICEGatheringState state) { 607 WebRTCPeerConnectionHandlerClient::ICEGatheringState state) {
576 DCHECK(main_thread_.CalledOnValidThread()); 608 DCHECK(main_thread_.CalledOnValidThread());
609 int id = GetLocalIDForHandler(pc_handler);
610 if (id == -1)
611 return;
577 SendPeerConnectionUpdate( 612 SendPeerConnectionUpdate(
578 pc_handler, "iceGatheringStateChange", 613 id, "iceGatheringStateChange",
579 GetIceGatheringStateString(state)); 614 GetIceGatheringStateString(state));
580 } 615 }
581 616
582 void PeerConnectionTracker::TrackSessionDescriptionCallback( 617 void PeerConnectionTracker::TrackSessionDescriptionCallback(
583 RTCPeerConnectionHandler* pc_handler, Action action, 618 RTCPeerConnectionHandler* pc_handler, Action action,
584 const string& callback_type, const string& value) { 619 const string& callback_type, const string& value) {
585 DCHECK(main_thread_.CalledOnValidThread()); 620 DCHECK(main_thread_.CalledOnValidThread());
621 int id = GetLocalIDForHandler(pc_handler);
622 if (id == -1)
623 return;
586 string update_type; 624 string update_type;
587 switch (action) { 625 switch (action) {
588 case ACTION_SET_LOCAL_DESCRIPTION: 626 case ACTION_SET_LOCAL_DESCRIPTION:
589 update_type = "setLocalDescription"; 627 update_type = "setLocalDescription";
590 break; 628 break;
591 case ACTION_SET_REMOTE_DESCRIPTION: 629 case ACTION_SET_REMOTE_DESCRIPTION:
592 update_type = "setRemoteDescription"; 630 update_type = "setRemoteDescription";
593 break; 631 break;
594 case ACTION_CREATE_OFFER: 632 case ACTION_CREATE_OFFER:
595 update_type = "createOffer"; 633 update_type = "createOffer";
596 break; 634 break;
597 case ACTION_CREATE_ANSWER: 635 case ACTION_CREATE_ANSWER:
598 update_type = "createAnswer"; 636 update_type = "createAnswer";
599 break; 637 break;
600 default: 638 default:
601 NOTREACHED(); 639 NOTREACHED();
602 break; 640 break;
603 } 641 }
604 update_type += callback_type; 642 update_type += callback_type;
605 643
606 SendPeerConnectionUpdate(pc_handler, update_type, value); 644 SendPeerConnectionUpdate(id, update_type.c_str(), value);
607 } 645 }
608 646
609 void PeerConnectionTracker::TrackOnRenegotiationNeeded( 647 void PeerConnectionTracker::TrackOnRenegotiationNeeded(
610 RTCPeerConnectionHandler* pc_handler) { 648 RTCPeerConnectionHandler* pc_handler) {
611 DCHECK(main_thread_.CalledOnValidThread()); 649 DCHECK(main_thread_.CalledOnValidThread());
612 SendPeerConnectionUpdate(pc_handler, "onRenegotiationNeeded", std::string()); 650 int id = GetLocalIDForHandler(pc_handler);
651 if (id == -1)
652 return;
653 SendPeerConnectionUpdate(id, "onRenegotiationNeeded", std::string());
613 } 654 }
614 655
615 void PeerConnectionTracker::TrackCreateDTMFSender( 656 void PeerConnectionTracker::TrackCreateDTMFSender(
616 RTCPeerConnectionHandler* pc_handler, 657 RTCPeerConnectionHandler* pc_handler,
617 const blink::WebMediaStreamTrack& track) { 658 const blink::WebMediaStreamTrack& track) {
618 DCHECK(main_thread_.CalledOnValidThread()); 659 DCHECK(main_thread_.CalledOnValidThread());
619 SendPeerConnectionUpdate(pc_handler, "createDTMFSender", 660 int id = GetLocalIDForHandler(pc_handler);
661 if (id == -1)
662 return;
663 SendPeerConnectionUpdate(id, "createDTMFSender",
620 base::UTF16ToUTF8(base::StringPiece16(track.id()))); 664 base::UTF16ToUTF8(base::StringPiece16(track.id())));
621 } 665 }
622 666
623 void PeerConnectionTracker::TrackGetUserMedia( 667 void PeerConnectionTracker::TrackGetUserMedia(
624 const blink::WebUserMediaRequest& user_media_request) { 668 const blink::WebUserMediaRequest& user_media_request) {
625 DCHECK(main_thread_.CalledOnValidThread()); 669 DCHECK(main_thread_.CalledOnValidThread());
626 RTCMediaConstraints audio_constraints( 670 RTCMediaConstraints audio_constraints(
627 GetNativeMediaConstraints(user_media_request.audioConstraints())); 671 GetNativeMediaConstraints(user_media_request.audioConstraints()));
628 RTCMediaConstraints video_constraints( 672 RTCMediaConstraints video_constraints(
629 GetNativeMediaConstraints(user_media_request.videoConstraints())); 673 GetNativeMediaConstraints(user_media_request.videoConstraints()));
630 674
631 RenderThreadImpl::current()->Send(new PeerConnectionTrackerHost_GetUserMedia( 675 RenderThreadImpl::current()->Send(new PeerConnectionTrackerHost_GetUserMedia(
632 user_media_request.securityOrigin().toString().utf8(), 676 user_media_request.securityOrigin().toString().utf8(),
633 user_media_request.audio(), 677 user_media_request.audio(),
634 user_media_request.video(), 678 user_media_request.video(),
635 SerializeMediaConstraints(audio_constraints), 679 SerializeMediaConstraints(audio_constraints),
636 SerializeMediaConstraints(video_constraints))); 680 SerializeMediaConstraints(video_constraints)));
637 } 681 }
638 682
639 int PeerConnectionTracker::GetNextLocalID() { 683 int PeerConnectionTracker::GetNextLocalID() {
640 DCHECK(main_thread_.CalledOnValidThread()); 684 DCHECK(main_thread_.CalledOnValidThread());
641 return next_lid_++; 685 if (next_local_id_< 0)
686 next_local_id_ = 1;
687 return next_local_id_++;
688 }
689
690 int PeerConnectionTracker::GetLocalIDForHandler(
691 RTCPeerConnectionHandler* handler) const {
692 DCHECK(main_thread_.CalledOnValidThread());
693 const auto found = peer_connection_id_map_.find(handler);
694 if (found == peer_connection_id_map_.end())
695 return -1;
696 DCHECK_NE(found->second, -1);
697 return found->second;
642 } 698 }
643 699
644 void PeerConnectionTracker::SendPeerConnectionUpdate( 700 void PeerConnectionTracker::SendPeerConnectionUpdate(
645 RTCPeerConnectionHandler* pc_handler, 701 int local_id,
646 const std::string& type, 702 const char* callback_type,
647 const std::string& value) { 703 const std::string& value) {
648 DCHECK(main_thread_.CalledOnValidThread()); 704 DCHECK(main_thread_.CalledOnValidThread());
649 if (peer_connection_id_map_.find(pc_handler) == peer_connection_id_map_.end())
650 return;
651
652 RenderThreadImpl::current()->Send( 705 RenderThreadImpl::current()->Send(
653 new PeerConnectionTrackerHost_UpdatePeerConnection( 706 new PeerConnectionTrackerHost_UpdatePeerConnection(
654 peer_connection_id_map_[pc_handler], type, value)); 707 local_id, std::string(callback_type), value));
655 } 708 }
656 709
657 } // namespace content 710 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/peer_connection_tracker.h ('k') | content/test/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698