Revert "Extend TransportSequenceNumber RTP header extension"
This reverts commit 28c7362bc485d22bdc8c744bc725022780187a96.
Reason for revert: It breaks Linux64 Release (libfuzzer):
https://logs.chromium.org/logs/webrtc/buildbucket/cr-buildbucket.appspot.com/8921003137877469920/+/steps/compile/0/stdout
Original change's description:
> Extend TransportSequenceNumber RTP header extension
>
> Extend TransportSequenceNumber RTP header extension to support
> feedback on sender request.
>
> Bug: webrtc:10262
> Change-Id: Ibc1cf18162d15cd102e951c9dc697d8ea536ebb6
> Reviewed-on: https://webrtc-review.googlesource.com/c/123233
> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
> Reviewed-by: Alex Loiko <aleloi@webrtc.org>
> Commit-Queue: Johannes Kron <kron@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26766}
TBR=danilchap@webrtc.org,aleloi@webrtc.org,kron@webrtc.org
Change-Id: Ie8a73f5fdffd99919ceaa1ae8911a1645f2077e9
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10262
Reviewed-on: https://webrtc-review.googlesource.com/c/123522
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26767}
diff --git a/modules/rtp_rtcp/source/rtp_header_extensions.cc b/modules/rtp_rtcp/source/rtp_header_extensions.cc
index e531a88..38c2d5a 100644
--- a/modules/rtp_rtcp/source/rtp_header_extensions.cc
+++ b/modules/rtp_rtcp/source/rtp_header_extensions.cc
@@ -126,93 +126,27 @@
return true;
}
-// TransportSequenceNumber
-//
// 0 1 2
// 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-// | ID | L=1 |transport-wide sequence number |
+// | ID | L=1 |transport wide sequence number |
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
constexpr RTPExtensionType TransportSequenceNumber::kId;
constexpr uint8_t TransportSequenceNumber::kValueSizeBytes;
constexpr const char TransportSequenceNumber::kUri[];
bool TransportSequenceNumber::Parse(rtc::ArrayView<const uint8_t> data,
- uint16_t* transport_sequence_number) {
- if (data.size() != kValueSizeBytes)
+ uint16_t* value) {
+ if (data.size() != 2)
return false;
- *transport_sequence_number = ByteReader<uint16_t>::ReadBigEndian(data.data());
+ *value = ByteReader<uint16_t>::ReadBigEndian(data.data());
return true;
}
bool TransportSequenceNumber::Write(rtc::ArrayView<uint8_t> data,
- uint16_t transport_sequence_number) {
- RTC_DCHECK_EQ(data.size(), ValueSize(transport_sequence_number));
- ByteWriter<uint16_t>::WriteBigEndian(data.data(), transport_sequence_number);
- return true;
-}
-
-// TransportSequenceNumberV2
-//
-// In addition to the format used for TransportSequencNumber, V2 also supports
-// the following packet format where two extra bytes are used to specify that
-// the sender requests immediate feedback.
-// 0 1 2 3
-// 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-// | ID | L=3 |transport-wide sequence number |T| seq count |
-// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-// |seq count cont.|
-// +-+-+-+-+-+-+-+-+
-//
-// The bit |T| determines whether the feedback should include timing information
-// or not and |seq_count| determines how many additional packets the feedback
-// packet should cover.
-constexpr RTPExtensionType TransportSequenceNumberV2::kId;
-constexpr uint8_t TransportSequenceNumberV2::kValueSizeBytesWithFeedbackRequest;
-constexpr const char TransportSequenceNumberV2::kUri[];
-constexpr uint16_t TransportSequenceNumberV2::kIncludeTimestampsBit;
-
-bool TransportSequenceNumberV2::Parse(
- rtc::ArrayView<const uint8_t> data,
- uint16_t* transport_sequence_number,
- absl::optional<FeedbackRequest>* feedback_request) {
- if (data.size() != TransportSequenceNumber::kValueSizeBytes &&
- data.size() != kValueSizeBytesWithFeedbackRequest)
- return false;
-
- *transport_sequence_number = ByteReader<uint16_t>::ReadBigEndian(data.data());
-
- if (data.size() == kValueSizeBytesWithFeedbackRequest) {
- uint16_t feedback_request_raw =
- ByteReader<uint16_t>::ReadBigEndian(data.data() + 2);
- bool include_timestamps =
- (feedback_request_raw & kIncludeTimestampsBit) != 0;
- uint16_t sequence_count = feedback_request_raw & ~kIncludeTimestampsBit;
- *feedback_request = {include_timestamps, sequence_count};
- } else {
- *feedback_request = absl::nullopt;
- }
- return true;
-}
-
-bool TransportSequenceNumberV2::Write(
- rtc::ArrayView<uint8_t> data,
- uint16_t transport_sequence_number,
- const absl::optional<FeedbackRequest>& feedback_request) {
- RTC_DCHECK_EQ(data.size(),
- ValueSize(transport_sequence_number, feedback_request));
-
- ByteWriter<uint16_t>::WriteBigEndian(data.data(), transport_sequence_number);
-
- if (feedback_request) {
- RTC_DCHECK_GE(feedback_request->sequence_count, 0);
- RTC_DCHECK_LT(feedback_request->sequence_count, kIncludeTimestampsBit);
- uint16_t feedback_request_raw =
- feedback_request->sequence_count |
- (feedback_request->include_timestamps ? kIncludeTimestampsBit : 0);
- ByteWriter<uint16_t>::WriteBigEndian(data.data() + 2, feedback_request_raw);
- }
+ uint16_t value) {
+ RTC_DCHECK_EQ(data.size(), 2);
+ ByteWriter<uint16_t>::WriteBigEndian(data.data(), value);
return true;
}