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

Side by Side Diff: webrtc/pc/channel.cc

Issue 2915263002: Revert "Revert of Wire up BWE stats through WebrtcSession so that they are filled in both for audio… (Closed)
Patch Set: . Created 3 years, 6 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
OLDNEW
1 /* 1 /*
2 * Copyright 2004 The WebRTC project authors. All Rights Reserved. 2 * Copyright 2004 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 423 matching lines...) Expand 10 before | Expand all | Expand 10 after
434 434
435 bool BaseChannel::Enable(bool enable) { 435 bool BaseChannel::Enable(bool enable) {
436 worker_thread_->Invoke<void>( 436 worker_thread_->Invoke<void>(
437 RTC_FROM_HERE, 437 RTC_FROM_HERE,
438 Bind(enable ? &BaseChannel::EnableMedia_w : &BaseChannel::DisableMedia_w, 438 Bind(enable ? &BaseChannel::EnableMedia_w : &BaseChannel::DisableMedia_w,
439 this)); 439 this));
440 return true; 440 return true;
441 } 441 }
442 442
443 bool BaseChannel::AddRecvStream(const StreamParams& sp) { 443 bool BaseChannel::AddRecvStream(const StreamParams& sp) {
444 return InvokeOnWorker(RTC_FROM_HERE, 444 return InvokeOnWorker<bool>(RTC_FROM_HERE,
445 Bind(&BaseChannel::AddRecvStream_w, this, sp)); 445 Bind(&BaseChannel::AddRecvStream_w, this, sp));
446 } 446 }
447 447
448 bool BaseChannel::RemoveRecvStream(uint32_t ssrc) { 448 bool BaseChannel::RemoveRecvStream(uint32_t ssrc) {
449 return InvokeOnWorker(RTC_FROM_HERE, 449 return InvokeOnWorker<bool>(
450 Bind(&BaseChannel::RemoveRecvStream_w, this, ssrc)); 450 RTC_FROM_HERE, Bind(&BaseChannel::RemoveRecvStream_w, this, ssrc));
451 } 451 }
452 452
453 bool BaseChannel::AddSendStream(const StreamParams& sp) { 453 bool BaseChannel::AddSendStream(const StreamParams& sp) {
454 return InvokeOnWorker( 454 return InvokeOnWorker<bool>(
455 RTC_FROM_HERE, Bind(&MediaChannel::AddSendStream, media_channel(), sp)); 455 RTC_FROM_HERE, Bind(&MediaChannel::AddSendStream, media_channel(), sp));
456 } 456 }
457 457
458 bool BaseChannel::RemoveSendStream(uint32_t ssrc) { 458 bool BaseChannel::RemoveSendStream(uint32_t ssrc) {
459 return InvokeOnWorker(RTC_FROM_HERE, Bind(&MediaChannel::RemoveSendStream, 459 return InvokeOnWorker<bool>(
460 media_channel(), ssrc)); 460 RTC_FROM_HERE,
461 Bind(&MediaChannel::RemoveSendStream, media_channel(), ssrc));
461 } 462 }
462 463
463 bool BaseChannel::SetLocalContent(const MediaContentDescription* content, 464 bool BaseChannel::SetLocalContent(const MediaContentDescription* content,
464 ContentAction action, 465 ContentAction action,
465 std::string* error_desc) { 466 std::string* error_desc) {
466 TRACE_EVENT0("webrtc", "BaseChannel::SetLocalContent"); 467 TRACE_EVENT0("webrtc", "BaseChannel::SetLocalContent");
467 return InvokeOnWorker(RTC_FROM_HERE, Bind(&BaseChannel::SetLocalContent_w, 468 return InvokeOnWorker<bool>(
468 this, content, action, error_desc)); 469 RTC_FROM_HERE,
470 Bind(&BaseChannel::SetLocalContent_w, this, content, action, error_desc));
469 } 471 }
470 472
471 bool BaseChannel::SetRemoteContent(const MediaContentDescription* content, 473 bool BaseChannel::SetRemoteContent(const MediaContentDescription* content,
472 ContentAction action, 474 ContentAction action,
473 std::string* error_desc) { 475 std::string* error_desc) {
474 TRACE_EVENT0("webrtc", "BaseChannel::SetRemoteContent"); 476 TRACE_EVENT0("webrtc", "BaseChannel::SetRemoteContent");
475 return InvokeOnWorker(RTC_FROM_HERE, Bind(&BaseChannel::SetRemoteContent_w, 477 return InvokeOnWorker<bool>(
476 this, content, action, error_desc)); 478 RTC_FROM_HERE, Bind(&BaseChannel::SetRemoteContent_w, this, content,
479 action, error_desc));
477 } 480 }
478 481
479 void BaseChannel::StartConnectionMonitor(int cms) { 482 void BaseChannel::StartConnectionMonitor(int cms) {
480 // We pass in the BaseChannel instead of the rtp_dtls_transport_ 483 // We pass in the BaseChannel instead of the rtp_dtls_transport_
481 // because if the rtp_dtls_transport_ changes, the ConnectionMonitor 484 // because if the rtp_dtls_transport_ changes, the ConnectionMonitor
482 // would be pointing to the wrong TransportChannel. 485 // would be pointing to the wrong TransportChannel.
483 // We pass in the network thread because on that thread connection monitor 486 // We pass in the network thread because on that thread connection monitor
484 // will call BaseChannel::GetConnectionStats which must be called on the 487 // will call BaseChannel::GetConnectionStats which must be called on the
485 // network thread. 488 // network thread.
486 connection_monitor_.reset( 489 connection_monitor_.reset(
(...skipping 973 matching lines...) Expand 10 before | Expand all | Expand 10 after
1460 StopMediaMonitor(); 1463 StopMediaMonitor();
1461 // this can't be done in the base class, since it calls a virtual 1464 // this can't be done in the base class, since it calls a virtual
1462 DisableMedia_w(); 1465 DisableMedia_w();
1463 Deinit(); 1466 Deinit();
1464 } 1467 }
1465 1468
1466 bool VoiceChannel::SetAudioSend(uint32_t ssrc, 1469 bool VoiceChannel::SetAudioSend(uint32_t ssrc,
1467 bool enable, 1470 bool enable,
1468 const AudioOptions* options, 1471 const AudioOptions* options,
1469 AudioSource* source) { 1472 AudioSource* source) {
1470 return InvokeOnWorker(RTC_FROM_HERE, 1473 return InvokeOnWorker<bool>(
1471 Bind(&VoiceMediaChannel::SetAudioSend, media_channel(), 1474 RTC_FROM_HERE, Bind(&VoiceMediaChannel::SetAudioSend, media_channel(),
1472 ssrc, enable, options, source)); 1475 ssrc, enable, options, source));
1473 } 1476 }
1474 1477
1475 // TODO(juberti): Handle early media the right way. We should get an explicit 1478 // TODO(juberti): Handle early media the right way. We should get an explicit
1476 // ringing message telling us to start playing local ringback, which we cancel 1479 // ringing message telling us to start playing local ringback, which we cancel
1477 // if any early media actually arrives. For now, we do the opposite, which is 1480 // if any early media actually arrives. For now, we do the opposite, which is
1478 // to wait 1 second for early media, and start playing local ringback if none 1481 // to wait 1 second for early media, and start playing local ringback if none
1479 // arrives. 1482 // arrives.
1480 void VoiceChannel::SetEarlyMedia(bool enable) { 1483 void VoiceChannel::SetEarlyMedia(bool enable) {
1481 if (enable) { 1484 if (enable) {
1482 // Start the early media timeout 1485 // Start the early media timeout
1483 worker_thread()->PostDelayed(RTC_FROM_HERE, kEarlyMediaTimeout, this, 1486 worker_thread()->PostDelayed(RTC_FROM_HERE, kEarlyMediaTimeout, this,
1484 MSG_EARLYMEDIATIMEOUT); 1487 MSG_EARLYMEDIATIMEOUT);
1485 } else { 1488 } else {
1486 // Stop the timeout if currently going. 1489 // Stop the timeout if currently going.
1487 worker_thread()->Clear(this, MSG_EARLYMEDIATIMEOUT); 1490 worker_thread()->Clear(this, MSG_EARLYMEDIATIMEOUT);
1488 } 1491 }
1489 } 1492 }
1490 1493
1491 bool VoiceChannel::CanInsertDtmf() { 1494 bool VoiceChannel::CanInsertDtmf() {
1492 return InvokeOnWorker( 1495 return InvokeOnWorker<bool>(
1493 RTC_FROM_HERE, Bind(&VoiceMediaChannel::CanInsertDtmf, media_channel())); 1496 RTC_FROM_HERE, Bind(&VoiceMediaChannel::CanInsertDtmf, media_channel()));
1494 } 1497 }
1495 1498
1496 bool VoiceChannel::InsertDtmf(uint32_t ssrc, 1499 bool VoiceChannel::InsertDtmf(uint32_t ssrc,
1497 int event_code, 1500 int event_code,
1498 int duration) { 1501 int duration) {
1499 return InvokeOnWorker(RTC_FROM_HERE, Bind(&VoiceChannel::InsertDtmf_w, this, 1502 return InvokeOnWorker<bool>(
1500 ssrc, event_code, duration)); 1503 RTC_FROM_HERE,
1504 Bind(&VoiceChannel::InsertDtmf_w, this, ssrc, event_code, duration));
1501 } 1505 }
1502 1506
1503 bool VoiceChannel::SetOutputVolume(uint32_t ssrc, double volume) { 1507 bool VoiceChannel::SetOutputVolume(uint32_t ssrc, double volume) {
1504 return InvokeOnWorker(RTC_FROM_HERE, Bind(&VoiceMediaChannel::SetOutputVolume, 1508 return InvokeOnWorker<bool>(
1505 media_channel(), ssrc, volume)); 1509 RTC_FROM_HERE,
1510 Bind(&VoiceMediaChannel::SetOutputVolume, media_channel(), ssrc, volume));
1506 } 1511 }
1507 1512
1508 void VoiceChannel::SetRawAudioSink( 1513 void VoiceChannel::SetRawAudioSink(
1509 uint32_t ssrc, 1514 uint32_t ssrc,
1510 std::unique_ptr<webrtc::AudioSinkInterface> sink) { 1515 std::unique_ptr<webrtc::AudioSinkInterface> sink) {
1511 // We need to work around Bind's lack of support for unique_ptr and ownership 1516 // We need to work around Bind's lack of support for unique_ptr and ownership
1512 // passing. So we invoke to our own little routine that gets a pointer to 1517 // passing. So we invoke to our own little routine that gets a pointer to
1513 // our local variable. This is OK since we're synchronously invoking. 1518 // our local variable. This is OK since we're synchronously invoking.
1514 InvokeOnWorker(RTC_FROM_HERE, 1519 InvokeOnWorker<bool>(RTC_FROM_HERE,
1515 Bind(&SetRawAudioSink_w, media_channel(), ssrc, &sink)); 1520 Bind(&SetRawAudioSink_w, media_channel(), ssrc, &sink));
1516 } 1521 }
1517 1522
1518 webrtc::RtpParameters VoiceChannel::GetRtpSendParameters(uint32_t ssrc) const { 1523 webrtc::RtpParameters VoiceChannel::GetRtpSendParameters(uint32_t ssrc) const {
1519 return worker_thread()->Invoke<webrtc::RtpParameters>( 1524 return worker_thread()->Invoke<webrtc::RtpParameters>(
1520 RTC_FROM_HERE, Bind(&VoiceChannel::GetRtpSendParameters_w, this, ssrc)); 1525 RTC_FROM_HERE, Bind(&VoiceChannel::GetRtpSendParameters_w, this, ssrc));
1521 } 1526 }
1522 1527
1523 webrtc::RtpParameters VoiceChannel::GetRtpSendParameters_w( 1528 webrtc::RtpParameters VoiceChannel::GetRtpSendParameters_w(
1524 uint32_t ssrc) const { 1529 uint32_t ssrc) const {
1525 return media_channel()->GetRtpSendParameters(ssrc); 1530 return media_channel()->GetRtpSendParameters(ssrc);
1526 } 1531 }
1527 1532
1528 bool VoiceChannel::SetRtpSendParameters( 1533 bool VoiceChannel::SetRtpSendParameters(
1529 uint32_t ssrc, 1534 uint32_t ssrc,
1530 const webrtc::RtpParameters& parameters) { 1535 const webrtc::RtpParameters& parameters) {
1531 return InvokeOnWorker( 1536 return InvokeOnWorker<bool>(
1532 RTC_FROM_HERE, 1537 RTC_FROM_HERE,
1533 Bind(&VoiceChannel::SetRtpSendParameters_w, this, ssrc, parameters)); 1538 Bind(&VoiceChannel::SetRtpSendParameters_w, this, ssrc, parameters));
1534 } 1539 }
1535 1540
1536 bool VoiceChannel::SetRtpSendParameters_w(uint32_t ssrc, 1541 bool VoiceChannel::SetRtpSendParameters_w(uint32_t ssrc,
1537 webrtc::RtpParameters parameters) { 1542 webrtc::RtpParameters parameters) {
1538 return media_channel()->SetRtpSendParameters(ssrc, parameters); 1543 return media_channel()->SetRtpSendParameters(ssrc, parameters);
1539 } 1544 }
1540 1545
1541 webrtc::RtpParameters VoiceChannel::GetRtpReceiveParameters( 1546 webrtc::RtpParameters VoiceChannel::GetRtpReceiveParameters(
1542 uint32_t ssrc) const { 1547 uint32_t ssrc) const {
1543 return worker_thread()->Invoke<webrtc::RtpParameters>( 1548 return worker_thread()->Invoke<webrtc::RtpParameters>(
1544 RTC_FROM_HERE, 1549 RTC_FROM_HERE,
1545 Bind(&VoiceChannel::GetRtpReceiveParameters_w, this, ssrc)); 1550 Bind(&VoiceChannel::GetRtpReceiveParameters_w, this, ssrc));
1546 } 1551 }
1547 1552
1548 webrtc::RtpParameters VoiceChannel::GetRtpReceiveParameters_w( 1553 webrtc::RtpParameters VoiceChannel::GetRtpReceiveParameters_w(
1549 uint32_t ssrc) const { 1554 uint32_t ssrc) const {
1550 return media_channel()->GetRtpReceiveParameters(ssrc); 1555 return media_channel()->GetRtpReceiveParameters(ssrc);
1551 } 1556 }
1552 1557
1553 bool VoiceChannel::SetRtpReceiveParameters( 1558 bool VoiceChannel::SetRtpReceiveParameters(
1554 uint32_t ssrc, 1559 uint32_t ssrc,
1555 const webrtc::RtpParameters& parameters) { 1560 const webrtc::RtpParameters& parameters) {
1556 return InvokeOnWorker( 1561 return InvokeOnWorker<bool>(
1557 RTC_FROM_HERE, 1562 RTC_FROM_HERE,
1558 Bind(&VoiceChannel::SetRtpReceiveParameters_w, this, ssrc, parameters)); 1563 Bind(&VoiceChannel::SetRtpReceiveParameters_w, this, ssrc, parameters));
1559 } 1564 }
1560 1565
1561 bool VoiceChannel::SetRtpReceiveParameters_w(uint32_t ssrc, 1566 bool VoiceChannel::SetRtpReceiveParameters_w(uint32_t ssrc,
1562 webrtc::RtpParameters parameters) { 1567 webrtc::RtpParameters parameters) {
1563 return media_channel()->SetRtpReceiveParameters(ssrc, parameters); 1568 return media_channel()->SetRtpReceiveParameters(ssrc, parameters);
1564 } 1569 }
1565 1570
1566 bool VoiceChannel::GetStats(VoiceMediaInfo* stats) { 1571 bool VoiceChannel::GetStats(VoiceMediaInfo* stats) {
1567 return InvokeOnWorker(RTC_FROM_HERE, Bind(&VoiceMediaChannel::GetStats, 1572 return InvokeOnWorker<bool>(RTC_FROM_HERE, Bind(&VoiceMediaChannel::GetStats,
1568 media_channel(), stats)); 1573 media_channel(), stats));
1569 } 1574 }
1570 1575
1571 std::vector<webrtc::RtpSource> VoiceChannel::GetSources(uint32_t ssrc) const { 1576 std::vector<webrtc::RtpSource> VoiceChannel::GetSources(uint32_t ssrc) const {
1572 return worker_thread()->Invoke<std::vector<webrtc::RtpSource>>( 1577 return worker_thread()->Invoke<std::vector<webrtc::RtpSource>>(
1573 RTC_FROM_HERE, 1578 RTC_FROM_HERE,
1574 Bind(&WebRtcVoiceMediaChannel::GetSources, 1579 Bind(&WebRtcVoiceMediaChannel::GetSources,
1575 static_cast<WebRtcVoiceMediaChannel*>(media_channel()), ssrc)); 1580 static_cast<WebRtcVoiceMediaChannel*>(media_channel()), ssrc));
1576 } 1581 }
1577 1582
1578 void VoiceChannel::StartMediaMonitor(int cms) { 1583 void VoiceChannel::StartMediaMonitor(int cms) {
(...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after
1875 RTC_FROM_HERE, 1880 RTC_FROM_HERE,
1876 Bind(&VideoMediaChannel::SetSink, media_channel(), ssrc, sink)); 1881 Bind(&VideoMediaChannel::SetSink, media_channel(), ssrc, sink));
1877 return true; 1882 return true;
1878 } 1883 }
1879 1884
1880 bool VideoChannel::SetVideoSend( 1885 bool VideoChannel::SetVideoSend(
1881 uint32_t ssrc, 1886 uint32_t ssrc,
1882 bool mute, 1887 bool mute,
1883 const VideoOptions* options, 1888 const VideoOptions* options,
1884 rtc::VideoSourceInterface<webrtc::VideoFrame>* source) { 1889 rtc::VideoSourceInterface<webrtc::VideoFrame>* source) {
1885 return InvokeOnWorker(RTC_FROM_HERE, 1890 return InvokeOnWorker<bool>(
1886 Bind(&VideoMediaChannel::SetVideoSend, media_channel(), 1891 RTC_FROM_HERE, Bind(&VideoMediaChannel::SetVideoSend, media_channel(),
1887 ssrc, mute, options, source)); 1892 ssrc, mute, options, source));
1888 } 1893 }
1889 1894
1890 webrtc::RtpParameters VideoChannel::GetRtpSendParameters(uint32_t ssrc) const { 1895 webrtc::RtpParameters VideoChannel::GetRtpSendParameters(uint32_t ssrc) const {
1891 return worker_thread()->Invoke<webrtc::RtpParameters>( 1896 return worker_thread()->Invoke<webrtc::RtpParameters>(
1892 RTC_FROM_HERE, Bind(&VideoChannel::GetRtpSendParameters_w, this, ssrc)); 1897 RTC_FROM_HERE, Bind(&VideoChannel::GetRtpSendParameters_w, this, ssrc));
1893 } 1898 }
1894 1899
1895 webrtc::RtpParameters VideoChannel::GetRtpSendParameters_w( 1900 webrtc::RtpParameters VideoChannel::GetRtpSendParameters_w(
1896 uint32_t ssrc) const { 1901 uint32_t ssrc) const {
1897 return media_channel()->GetRtpSendParameters(ssrc); 1902 return media_channel()->GetRtpSendParameters(ssrc);
1898 } 1903 }
1899 1904
1900 bool VideoChannel::SetRtpSendParameters( 1905 bool VideoChannel::SetRtpSendParameters(
1901 uint32_t ssrc, 1906 uint32_t ssrc,
1902 const webrtc::RtpParameters& parameters) { 1907 const webrtc::RtpParameters& parameters) {
1903 return InvokeOnWorker( 1908 return InvokeOnWorker<bool>(
1904 RTC_FROM_HERE, 1909 RTC_FROM_HERE,
1905 Bind(&VideoChannel::SetRtpSendParameters_w, this, ssrc, parameters)); 1910 Bind(&VideoChannel::SetRtpSendParameters_w, this, ssrc, parameters));
1906 } 1911 }
1907 1912
1908 bool VideoChannel::SetRtpSendParameters_w(uint32_t ssrc, 1913 bool VideoChannel::SetRtpSendParameters_w(uint32_t ssrc,
1909 webrtc::RtpParameters parameters) { 1914 webrtc::RtpParameters parameters) {
1910 return media_channel()->SetRtpSendParameters(ssrc, parameters); 1915 return media_channel()->SetRtpSendParameters(ssrc, parameters);
1911 } 1916 }
1912 1917
1913 webrtc::RtpParameters VideoChannel::GetRtpReceiveParameters( 1918 webrtc::RtpParameters VideoChannel::GetRtpReceiveParameters(
1914 uint32_t ssrc) const { 1919 uint32_t ssrc) const {
1915 return worker_thread()->Invoke<webrtc::RtpParameters>( 1920 return worker_thread()->Invoke<webrtc::RtpParameters>(
1916 RTC_FROM_HERE, 1921 RTC_FROM_HERE,
1917 Bind(&VideoChannel::GetRtpReceiveParameters_w, this, ssrc)); 1922 Bind(&VideoChannel::GetRtpReceiveParameters_w, this, ssrc));
1918 } 1923 }
1919 1924
1920 webrtc::RtpParameters VideoChannel::GetRtpReceiveParameters_w( 1925 webrtc::RtpParameters VideoChannel::GetRtpReceiveParameters_w(
1921 uint32_t ssrc) const { 1926 uint32_t ssrc) const {
1922 return media_channel()->GetRtpReceiveParameters(ssrc); 1927 return media_channel()->GetRtpReceiveParameters(ssrc);
1923 } 1928 }
1924 1929
1925 bool VideoChannel::SetRtpReceiveParameters( 1930 bool VideoChannel::SetRtpReceiveParameters(
1926 uint32_t ssrc, 1931 uint32_t ssrc,
1927 const webrtc::RtpParameters& parameters) { 1932 const webrtc::RtpParameters& parameters) {
1928 return InvokeOnWorker( 1933 return InvokeOnWorker<bool>(
1929 RTC_FROM_HERE, 1934 RTC_FROM_HERE,
1930 Bind(&VideoChannel::SetRtpReceiveParameters_w, this, ssrc, parameters)); 1935 Bind(&VideoChannel::SetRtpReceiveParameters_w, this, ssrc, parameters));
1931 } 1936 }
1932 1937
1933 bool VideoChannel::SetRtpReceiveParameters_w(uint32_t ssrc, 1938 bool VideoChannel::SetRtpReceiveParameters_w(uint32_t ssrc,
1934 webrtc::RtpParameters parameters) { 1939 webrtc::RtpParameters parameters) {
1935 return media_channel()->SetRtpReceiveParameters(ssrc, parameters); 1940 return media_channel()->SetRtpReceiveParameters(ssrc, parameters);
1936 } 1941 }
1937 1942
1938 void VideoChannel::UpdateMediaSendRecvState_w() { 1943 void VideoChannel::UpdateMediaSendRecvState_w() {
1939 // Send outgoing data if we're the active call, we have the remote content, 1944 // Send outgoing data if we're the active call, we have the remote content,
1940 // and we have had some form of connectivity. 1945 // and we have had some form of connectivity.
1941 bool send = IsReadyToSendMedia_w(); 1946 bool send = IsReadyToSendMedia_w();
1942 if (!media_channel()->SetSend(send)) { 1947 if (!media_channel()->SetSend(send)) {
1943 LOG(LS_ERROR) << "Failed to SetSend on video channel"; 1948 LOG(LS_ERROR) << "Failed to SetSend on video channel";
1944 // TODO(gangji): Report error back to server. 1949 // TODO(gangji): Report error back to server.
1945 } 1950 }
1946 1951
1947 LOG(LS_INFO) << "Changing video state, send=" << send; 1952 LOG(LS_INFO) << "Changing video state, send=" << send;
1948 } 1953 }
1949 1954
1955 void VideoChannel::FillBitrateInfo(BandwidthEstimationInfo* bwe_info) {
1956 InvokeOnWorker<void>(RTC_FROM_HERE, Bind(&VideoMediaChannel::FillBitrateInfo,
1957 media_channel(), bwe_info));
1958 }
1959
1950 bool VideoChannel::GetStats(VideoMediaInfo* stats) { 1960 bool VideoChannel::GetStats(VideoMediaInfo* stats) {
1951 return InvokeOnWorker(RTC_FROM_HERE, Bind(&VideoMediaChannel::GetStats, 1961 return InvokeOnWorker<bool>(RTC_FROM_HERE, Bind(&VideoMediaChannel::GetStats,
1952 media_channel(), stats)); 1962 media_channel(), stats));
1953 } 1963 }
1954 1964
1955 void VideoChannel::StartMediaMonitor(int cms) { 1965 void VideoChannel::StartMediaMonitor(int cms) {
1956 media_monitor_.reset(new VideoMediaMonitor(media_channel(), worker_thread(), 1966 media_monitor_.reset(new VideoMediaMonitor(media_channel(), worker_thread(),
1957 rtc::Thread::Current())); 1967 rtc::Thread::Current()));
1958 media_monitor_->SignalUpdate.connect( 1968 media_monitor_->SignalUpdate.connect(
1959 this, &VideoChannel::OnMediaMonitorUpdate); 1969 this, &VideoChannel::OnMediaMonitorUpdate);
1960 media_monitor_->Start(cms); 1970 media_monitor_->Start(cms);
1961 } 1971 }
1962 1972
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after
2132 media_channel()->SignalDataReceived.connect(this, 2142 media_channel()->SignalDataReceived.connect(this,
2133 &RtpDataChannel::OnDataReceived); 2143 &RtpDataChannel::OnDataReceived);
2134 media_channel()->SignalReadyToSend.connect( 2144 media_channel()->SignalReadyToSend.connect(
2135 this, &RtpDataChannel::OnDataChannelReadyToSend); 2145 this, &RtpDataChannel::OnDataChannelReadyToSend);
2136 return true; 2146 return true;
2137 } 2147 }
2138 2148
2139 bool RtpDataChannel::SendData(const SendDataParams& params, 2149 bool RtpDataChannel::SendData(const SendDataParams& params,
2140 const rtc::CopyOnWriteBuffer& payload, 2150 const rtc::CopyOnWriteBuffer& payload,
2141 SendDataResult* result) { 2151 SendDataResult* result) {
2142 return InvokeOnWorker( 2152 return InvokeOnWorker<bool>(
2143 RTC_FROM_HERE, Bind(&DataMediaChannel::SendData, media_channel(), params, 2153 RTC_FROM_HERE, Bind(&DataMediaChannel::SendData, media_channel(), params,
2144 payload, result)); 2154 payload, result));
2145 } 2155 }
2146 2156
2147 const ContentInfo* RtpDataChannel::GetFirstContent( 2157 const ContentInfo* RtpDataChannel::GetFirstContent(
2148 const SessionDescription* sdesc) { 2158 const SessionDescription* sdesc) {
2149 return GetFirstDataContent(sdesc); 2159 return GetFirstDataContent(sdesc);
2150 } 2160 }
2151 2161
2152 bool RtpDataChannel::CheckDataChannelTypeFromContent( 2162 bool RtpDataChannel::CheckDataChannelTypeFromContent(
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after
2360 2370
2361 void RtpDataChannel::OnDataChannelReadyToSend(bool writable) { 2371 void RtpDataChannel::OnDataChannelReadyToSend(bool writable) {
2362 // This is usded for congestion control to indicate that the stream is ready 2372 // This is usded for congestion control to indicate that the stream is ready
2363 // to send by the MediaChannel, as opposed to OnReadyToSend, which indicates 2373 // to send by the MediaChannel, as opposed to OnReadyToSend, which indicates
2364 // that the transport channel is ready. 2374 // that the transport channel is ready.
2365 signaling_thread()->Post(RTC_FROM_HERE, this, MSG_READYTOSENDDATA, 2375 signaling_thread()->Post(RTC_FROM_HERE, this, MSG_READYTOSENDDATA,
2366 new DataChannelReadyToSendMessageData(writable)); 2376 new DataChannelReadyToSendMessageData(writable));
2367 } 2377 }
2368 2378
2369 } // namespace cricket 2379 } // namespace cricket
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698