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..6534dc28847500b52089d8905d0579a361b21e9f 100644 |
--- a/webrtc/modules/rtp_rtcp/source/rtp_utility_unittest.cc |
+++ b/webrtc/modules/rtp_rtcp/source/rtp_utility_unittest.cc |
@@ -17,6 +17,7 @@ |
namespace webrtc { |
namespace { |
+using ::testing::ElementsAre; |
using ::testing::ElementsAreArray; |
using ::testing::make_tuple; |
@@ -148,21 +149,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 +177,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 +204,15 @@ 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_size, 3U); |
+ // Join buffer + size using ArrayView because ::testing::make_tuple calls |
+ // strlen(const char* rsid), but rsid is not 0-terminated causing msan error. |
+ EXPECT_THAT(rtc::MakeArrayView(header.extension.stream_id, |
+ header.extension.stream_id_size), |
+ ElementsAre('r', 't', 'x')); |
+ EXPECT_THAT(rtc::MakeArrayView(header.extension.repaired_stream_id, |
+ header.extension.repaired_stream_id_size), |
+ ElementsAre('s', 't', 'r', 'e', 'a', 'm')); |
} |
TEST(RtpHeaderParser, ParseWithCsrcsExtensionAndPadding) { |