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

Unified Diff: webrtc/modules/rtp_rtcp/source/rtp_utility_unittest.cc

Issue 2805023002: Add read support of RtpStreamId/RepairedRtpStreamId header extensions. (Closed)
Patch Set: +one more comment Created 3 years, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/modules/rtp_rtcp/source/rtp_utility.cc ('k') | webrtc/test/fuzzers/rtp_header_fuzzer.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/modules/rtp_rtcp/source/rtp_utility_unittest.cc
diff --git a/webrtc/modules/rtp_rtcp/source/rtp_utility_unittest.cc b/webrtc/modules/rtp_rtcp/source/rtp_utility_unittest.cc
index 80f22fc61311eea66bd2a97a55c1fab65034ab5d..dcaa242148901c0d29fd38b1a8aea4661eb48795 100644
--- a/webrtc/modules/rtp_rtcp/source/rtp_utility_unittest.cc
+++ b/webrtc/modules/rtp_rtcp/source/rtp_utility_unittest.cc
@@ -148,21 +148,23 @@ TEST(RtpHeaderParser, ParseWithOverSizedExtension) {
EXPECT_EQ(sizeof(kPacket), header.headerLength);
}
-TEST(RtpHeaderParser, ParseAll6Extensions) {
+TEST(RtpHeaderParser, ParseAll8Extensions) {
const uint8_t kAudioLevel = 0x5a;
// clang-format off
const uint8_t kPacket[] = {
0x90, kPayloadType, 0x00, kSeqNum,
0x65, 0x43, 0x12, 0x78, // kTimestamp.
0x12, 0x34, 0x56, 0x78, // kSsrc.
- 0xbe, 0xde, 0x00, 0x05, // Extension of size 5x32bit word.
+ 0xbe, 0xde, 0x00, 0x08, // Extension of size 8x32bit words.
0x40, 0x80|kAudioLevel, // AudioLevel.
0x22, 0x01, 0x56, 0xce, // TransmissionOffset.
0x62, 0x12, 0x34, 0x56, // AbsoluteSendTime.
0x81, 0xce, 0xab, // TransportSequenceNumber.
0xa0, 0x03, // VideoRotation.
0xb2, 0x12, 0x48, 0x76, // PlayoutDelayLimits.
- 0x00, // Padding to 32bit boundary.
+ 0xc2, 'r', 't', 'x', // RtpStreamId
+ 0xd5, 's', 't', 'r', 'e', 'a', 'm', // RepairedRtpStreamId
+ 0x00, 0x00, // Padding to 32bit boundary.
};
// clang-format on
ASSERT_EQ(sizeof(kPacket) % 4, 0u);
@@ -174,6 +176,8 @@ TEST(RtpHeaderParser, ParseAll6Extensions) {
extensions.Register<TransportSequenceNumber>(8);
extensions.Register<VideoOrientation>(0xa);
extensions.Register<PlayoutDelayLimits>(0xb);
+ extensions.Register<RtpStreamId>(0xc);
+ extensions.Register<RepairedRtpStreamId>(0xd);
RtpUtility::RtpHeaderParser parser(kPacket, sizeof(kPacket));
RTPHeader header;
@@ -199,6 +203,33 @@ TEST(RtpHeaderParser, ParseAll6Extensions) {
header.extension.playout_delay.min_ms);
EXPECT_EQ(0x876 * PlayoutDelayLimits::kGranularityMs,
header.extension.playout_delay.max_ms);
+ EXPECT_EQ(header.extension.stream_id, StreamId("rtx"));
+ EXPECT_EQ(header.extension.repaired_stream_id, StreamId("stream"));
+}
+
+TEST(RtpHeaderParser, ParseMalformedRsidExtensions) {
+ // clang-format off
+ const uint8_t kPacket[] = {
+ 0x90, kPayloadType, 0x00, kSeqNum,
+ 0x65, 0x43, 0x12, 0x78, // kTimestamp.
+ 0x12, 0x34, 0x56, 0x78, // kSsrc.
+ 0xbe, 0xde, 0x00, 0x03, // Extension of size 3x32bit words.
+ 0xc2, '\0', 't', 'x', // empty RtpStreamId
+ 0xd5, 's', 't', 'r', '\0', 'a', 'm', // RepairedRtpStreamId
+ 0x00, // Padding to 32bit boundary.
+ };
+ // clang-format on
+ ASSERT_EQ(sizeof(kPacket) % 4, 0u);
+
+ RtpHeaderExtensionMap extensions;
+ extensions.Register<RtpStreamId>(0xc);
+ extensions.Register<RepairedRtpStreamId>(0xd);
+ RtpUtility::RtpHeaderParser parser(kPacket, sizeof(kPacket));
+ RTPHeader header;
+
+ EXPECT_TRUE(parser.Parse(&header, &extensions));
+ EXPECT_TRUE(header.extension.stream_id.empty());
+ EXPECT_EQ(header.extension.repaired_stream_id, StreamId("str"));
}
TEST(RtpHeaderParser, ParseWithCsrcsExtensionAndPadding) {
« no previous file with comments | « webrtc/modules/rtp_rtcp/source/rtp_utility.cc ('k') | webrtc/test/fuzzers/rtp_header_fuzzer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698