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

Side by Side Diff: webrtc/modules/rtp_rtcp/source/rtcp_packet/transport_feedback.h

Issue 2372713005: Revert of Unify rtcp packet setters (Closed)
Patch Set: Created 4 years, 2 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) 2015 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2015 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 #ifndef WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_PACKET_TRANSPORT_FEEDBACK_H_ 11 #ifndef WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_PACKET_TRANSPORT_FEEDBACK_H_
12 #define WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_PACKET_TRANSPORT_FEEDBACK_H_ 12 #define WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_PACKET_TRANSPORT_FEEDBACK_H_
13 13
14 #include <deque> 14 #include <deque>
15 #include <memory> 15 #include <memory>
16 #include <vector> 16 #include <vector>
17 17
18 #include "webrtc/base/constructormagic.h" 18 #include "webrtc/base/constructormagic.h"
19 #include "webrtc/base/deprecation.h"
20 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/rtpfb.h" 19 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/rtpfb.h"
21 20
22 namespace webrtc { 21 namespace webrtc {
23 namespace rtcp { 22 namespace rtcp {
24 class CommonHeader; 23 class CommonHeader;
25 24
26 class TransportFeedback : public Rtpfb { 25 class TransportFeedback : public Rtpfb {
27 public: 26 public:
28 class PacketStatusChunk; 27 class PacketStatusChunk;
29 // TODO(sprang): IANA reg? 28 // TODO(sprang): IANA reg?
30 static constexpr uint8_t kFeedbackMessageType = 15; 29 static constexpr uint8_t kFeedbackMessageType = 15;
31 // Convert to multiples of 0.25ms. 30 // Convert to multiples of 0.25ms.
32 static constexpr int kDeltaScaleFactor = 250; 31 static constexpr int kDeltaScaleFactor = 250;
33 32
34 TransportFeedback(); 33 TransportFeedback();
35 ~TransportFeedback() override; 34 ~TransportFeedback() override;
36 35
37 void SetBase(uint16_t base_sequence, // Seq# of first packet in this msg. 36 void WithPacketSenderSsrc(uint32_t ssrc) { From(ssrc); }
38 int64_t ref_timestamp_us); // Reference timestamp for this msg. 37 void WithMediaSourceSsrc(uint32_t ssrc) { To(ssrc); }
39 void SetFeedbackSequenceNumber(uint8_t feedback_sequence); 38 void WithBase(uint16_t base_sequence, // Seq# of first packet in this msg.
39 int64_t ref_timestamp_us); // Reference timestamp for this msg.
40 void WithFeedbackSequenceNumber(uint8_t feedback_sequence);
40 // NOTE: This method requires increasing sequence numbers (excepting wraps). 41 // NOTE: This method requires increasing sequence numbers (excepting wraps).
41 bool AddReceivedPacket(uint16_t sequence_number, int64_t timestamp_us); 42 bool WithReceivedPacket(uint16_t sequence_number, int64_t timestamp_us);
42 43
43 enum class StatusSymbol { 44 enum class StatusSymbol {
44 kNotReceived, 45 kNotReceived,
45 kReceivedSmallDelta, 46 kReceivedSmallDelta,
46 kReceivedLargeDelta, 47 kReceivedLargeDelta,
47 }; 48 };
48 49
49 uint16_t GetBaseSequence() const; 50 uint16_t GetBaseSequence() const;
50 std::vector<TransportFeedback::StatusSymbol> GetStatusVector() const; 51 std::vector<TransportFeedback::StatusSymbol> GetStatusVector() const;
51 std::vector<int16_t> GetReceiveDeltas() const; 52 std::vector<int16_t> GetReceiveDeltas() const;
52 53
53 // Get the reference time in microseconds, including any precision loss. 54 // Get the reference time in microseconds, including any precision loss.
54 int64_t GetBaseTimeUs() const; 55 int64_t GetBaseTimeUs() const;
55 // Convenience method for getting all deltas as microseconds. The first delta 56 // Convenience method for getting all deltas as microseconds. The first delta
56 // is relative the base time. 57 // is relative the base time.
57 std::vector<int64_t> GetReceiveDeltasUs() const; 58 std::vector<int64_t> GetReceiveDeltasUs() const;
58 59
60 uint32_t GetPacketSenderSsrc() const { return sender_ssrc(); }
61 uint32_t GetMediaSourceSsrc() const { return media_ssrc(); }
62
59 bool Parse(const CommonHeader& packet); 63 bool Parse(const CommonHeader& packet);
60 static std::unique_ptr<TransportFeedback> ParseFrom(const uint8_t* buffer, 64 static std::unique_ptr<TransportFeedback> ParseFrom(const uint8_t* buffer,
61 size_t length); 65 size_t length);
62 66
63 RTC_DEPRECATED
64 void WithPacketSenderSenderSsrc(uint32_t ssrc) { SetSenderSsrc(ssrc); }
65 RTC_DEPRECATED
66 void WithMediaSourceSsrc(uint32_t ssrc) { SetMediaSsrc(ssrc); }
67 RTC_DEPRECATED
68 void WithBase(uint16_t base_sequence, int64_t ref_timestamp_us) {
69 SetBase(base_sequence, ref_timestamp_us);
70 }
71 RTC_DEPRECATED
72 void WithFeedbackSequenceNumber(uint8_t feedback_sequence) {
73 SetFeedbackSequenceNumber(feedback_sequence);
74 }
75 RTC_DEPRECATED
76 bool WithReceivedPacket(uint16_t sequence_number, int64_t timestamp_us) {
77 return AddReceivedPacket(sequence_number, timestamp_us);
78 }
79
80 protected: 67 protected:
81 bool Create(uint8_t* packet, 68 bool Create(uint8_t* packet,
82 size_t* position, 69 size_t* position,
83 size_t max_length, 70 size_t max_length,
84 PacketReadyCallback* callback) const override; 71 PacketReadyCallback* callback) const override;
85 72
86 size_t BlockLength() const override; 73 size_t BlockLength() const override;
87 74
88 private: 75 private:
89 static PacketStatusChunk* ParseChunk(const uint8_t* buffer, size_t max_size); 76 static PacketStatusChunk* ParseChunk(const uint8_t* buffer, size_t max_size);
(...skipping 20 matching lines...) Expand all
110 uint16_t first_symbol_cardinality_; 97 uint16_t first_symbol_cardinality_;
111 bool vec_needs_two_bit_symbols_; 98 bool vec_needs_two_bit_symbols_;
112 uint32_t size_bytes_; 99 uint32_t size_bytes_;
113 100
114 RTC_DISALLOW_COPY_AND_ASSIGN(TransportFeedback); 101 RTC_DISALLOW_COPY_AND_ASSIGN(TransportFeedback);
115 }; 102 };
116 103
117 } // namespace rtcp 104 } // namespace rtcp
118 } // namespace webrtc 105 } // namespace webrtc
119 #endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_PACKET_TRANSPORT_FEEDBACK_H_ 106 #endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_PACKET_TRANSPORT_FEEDBACK_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698