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

Side by Side Diff: webrtc/modules/rtp_rtcp/source/rtcp_sender.cc

Issue 1290813008: Add RemoteEstimatorProxy for capturing receive times (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 5 years, 4 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 (c) 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2012 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
11 #include "webrtc/modules/rtp_rtcp/source/rtcp_sender.h" 11 #include "webrtc/modules/rtp_rtcp/source/rtcp_sender.h"
12 12
13 #include <assert.h> // assert 13 #include <assert.h> // assert
14 #include <stdlib.h> // rand 14 #include <stdlib.h> // rand
15 #include <string.h> // memcpy 15 #include <string.h> // memcpy
16 16
17 #include <algorithm> // min 17 #include <algorithm> // min
18 #include <limits> // max 18 #include <limits> // max
19 19
20 #include "webrtc/base/checks.h" 20 #include "webrtc/base/checks.h"
21 #include "webrtc/common_types.h" 21 #include "webrtc/common_types.h"
22 #include "webrtc/modules/rtp_rtcp/source/byte_io.h" 22 #include "webrtc/modules/rtp_rtcp/source/byte_io.h"
23 #include "webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.h" 23 #include "webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.h"
24 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/transport_feedback.h"
24 #include "webrtc/system_wrappers/interface/critical_section_wrapper.h" 25 #include "webrtc/system_wrappers/interface/critical_section_wrapper.h"
25 #include "webrtc/system_wrappers/interface/logging.h" 26 #include "webrtc/system_wrappers/interface/logging.h"
26 #include "webrtc/system_wrappers/interface/trace_event.h" 27 #include "webrtc/system_wrappers/interface/trace_event.h"
27 28
28 namespace webrtc { 29 namespace webrtc {
29 30
30 using RTCPUtility::RTCPCnameInformation; 31 using RTCPUtility::RTCPCnameInformation;
31 32
32 NACKStringBuilder::NACKStringBuilder() 33 NACKStringBuilder::NACKStringBuilder()
33 : stream_(""), count_(0), prevNack_(0), consecutive_(false) { 34 : stream_(""), count_(0), prevNack_(0), consecutive_(false) {
(...skipping 1376 matching lines...) Expand 10 before | Expand all | Expand 10 after
1410 } 1411 }
1411 1412
1412 bool RTCPSender::AllVolatileFlagsConsumed() const { 1413 bool RTCPSender::AllVolatileFlagsConsumed() const {
1413 for (const ReportFlag& flag : report_flags_) { 1414 for (const ReportFlag& flag : report_flags_) {
1414 if (flag.is_volatile) 1415 if (flag.is_volatile)
1415 return false; 1416 return false;
1416 } 1417 }
1417 return true; 1418 return true;
1418 } 1419 }
1419 1420
1421 bool RTCPSender::SendFeedbackPacket(const rtcp::TransportFeedback& packet) {
1422 CriticalSectionScoped lock(critical_section_transport_.get());
1423 if (!cbTransport_)
1424 return false;
1425
1426 class Sender : public rtcp::RtcpPacket::PacketReadyCallback {
1427 public:
1428 Sender(Transport* transport, int32_t id)
1429 : transport_(transport), id_(id), send_failure_(false) {}
1430
1431 void OnPacketReady(uint8_t* data, size_t length) override {
1432 if (transport_->SendRTCPPacket(id_, data, length) <= 0)
1433 send_failure_ = true;
1434 }
1435
1436 Transport* const transport_;
1437 int32_t id_;
1438 bool send_failure_;
1439 } sender(cbTransport_, id_);
1440
1441 uint8_t buffer[IP_PACKET_SIZE];
1442 return packet.BuildExternalBuffer(buffer, IP_PACKET_SIZE, &sender) &&
1443 !sender.send_failure_;
1444 }
1445
1420 } // namespace webrtc 1446 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698