Shaping up formatting of rtp_utility_test.cc
Preparations for future work in this file. Review URL: http://webrtc-codereview.appspot.com/318011 git-svn-id: http://webrtc.googlecode.com/svn/trunk@1168 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
parent
0edb25dcc9
commit
4aae0e489f
@ -10,14 +10,13 @@
|
|||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This file includes unit tests for the ModuleRTPUtility.
|
* This file conatins unit tests for the ModuleRTPUtility.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <gtest/gtest.h>
|
#include "gtest/gtest.h"
|
||||||
|
#include "modules/rtp_rtcp/source/rtp_format_vp8.h"
|
||||||
#include "typedefs.h"
|
#include "modules/rtp_rtcp/source/rtp_utility.h"
|
||||||
#include "rtp_utility.h"
|
#include "typedefs.h" // NOLINT(build/include)
|
||||||
#include "rtp_format_vp8.h"
|
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
@ -57,231 +56,230 @@ using ModuleRTPUtility::RTPPayloadVP8;
|
|||||||
// : :
|
// : :
|
||||||
// +-+-+-+-+-+-+-+-+
|
// +-+-+-+-+-+-+-+-+
|
||||||
|
|
||||||
void VerifyBasicHeader(const RTPPayloadVP8 &header, bool N, bool S, int PartID)
|
void VerifyBasicHeader(const RTPPayloadVP8 &header,
|
||||||
{
|
bool N, bool S, int PartID) {
|
||||||
EXPECT_EQ(N, header.nonReferenceFrame);
|
EXPECT_EQ(N, header.nonReferenceFrame);
|
||||||
EXPECT_EQ(S, header.beginningOfPartition);
|
EXPECT_EQ(S, header.beginningOfPartition);
|
||||||
EXPECT_EQ(PartID, header.partitionID);
|
EXPECT_EQ(PartID, header.partitionID);
|
||||||
}
|
}
|
||||||
|
|
||||||
void VerifyExtensions(const RTPPayloadVP8 &header,
|
void VerifyExtensions(const RTPPayloadVP8 &header,
|
||||||
bool I, bool L, bool T, bool K)
|
bool I, bool L, bool T, bool K) {
|
||||||
{
|
EXPECT_EQ(I, header.hasPictureID);
|
||||||
EXPECT_EQ(I, header.hasPictureID);
|
EXPECT_EQ(L, header.hasTl0PicIdx);
|
||||||
EXPECT_EQ(L, header.hasTl0PicIdx);
|
EXPECT_EQ(T, header.hasTID);
|
||||||
EXPECT_EQ(T, header.hasTID);
|
EXPECT_EQ(K, header.hasKeyIdx);
|
||||||
EXPECT_EQ(K, header.hasKeyIdx);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(ParseVP8Test, BasicHeader) {
|
TEST(ParseVP8Test, BasicHeader) {
|
||||||
WebRtc_UWord8 payload[4] = {0};
|
WebRtc_UWord8 payload[4] = {0};
|
||||||
payload[0] = 0x14; // binary 0001 0100; S = 1, PartID = 4
|
payload[0] = 0x14; // Binary 0001 0100; S = 1, PartID = 4.
|
||||||
payload[1] = 0x01; // P frame
|
payload[1] = 0x01; // P frame.
|
||||||
|
|
||||||
RTPPayloadParser rtpPayloadParser(kRtpVp8Video, payload, 4, 0);
|
RTPPayloadParser rtpPayloadParser(kRtpVp8Video, payload, 4, 0);
|
||||||
|
|
||||||
RTPPayload parsedPacket;
|
RTPPayload parsedPacket;
|
||||||
ASSERT_TRUE(rtpPayloadParser.Parse(parsedPacket));
|
ASSERT_TRUE(rtpPayloadParser.Parse(parsedPacket));
|
||||||
|
|
||||||
EXPECT_EQ(ModuleRTPUtility::kPFrame, parsedPacket.frameType);
|
EXPECT_EQ(ModuleRTPUtility::kPFrame, parsedPacket.frameType);
|
||||||
EXPECT_EQ(kRtpVp8Video, parsedPacket.type);
|
EXPECT_EQ(kRtpVp8Video, parsedPacket.type);
|
||||||
|
|
||||||
VerifyBasicHeader(parsedPacket.info.VP8, 0 /*N*/, 1 /*S*/, 4 /*PartID*/);
|
VerifyBasicHeader(parsedPacket.info.VP8, 0 /*N*/, 1 /*S*/, 4 /*PartID*/);
|
||||||
VerifyExtensions(parsedPacket.info.VP8, 0 /*I*/, 0 /*L*/, 0 /*T*/, 0 /*K*/);
|
VerifyExtensions(parsedPacket.info.VP8, 0 /*I*/, 0 /*L*/, 0 /*T*/, 0 /*K*/);
|
||||||
|
|
||||||
EXPECT_EQ(payload + 1, parsedPacket.info.VP8.data);
|
EXPECT_EQ(payload + 1, parsedPacket.info.VP8.data);
|
||||||
EXPECT_EQ(4 - 1, parsedPacket.info.VP8.dataLength);
|
EXPECT_EQ(4 - 1, parsedPacket.info.VP8.dataLength);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(ParseVP8Test, PictureID) {
|
TEST(ParseVP8Test, PictureID) {
|
||||||
WebRtc_UWord8 payload[10] = {0};
|
WebRtc_UWord8 payload[10] = {0};
|
||||||
payload[0] = 0xA0;
|
payload[0] = 0xA0;
|
||||||
payload[1] = 0x80;
|
payload[1] = 0x80;
|
||||||
payload[2] = 17;
|
payload[2] = 17;
|
||||||
|
|
||||||
RTPPayloadParser rtpPayloadParser(kRtpVp8Video, payload, 10, 0);
|
RTPPayloadParser rtpPayloadParser(kRtpVp8Video, payload, 10, 0);
|
||||||
|
|
||||||
RTPPayload parsedPacket;
|
RTPPayload parsedPacket;
|
||||||
ASSERT_TRUE(rtpPayloadParser.Parse(parsedPacket));
|
ASSERT_TRUE(rtpPayloadParser.Parse(parsedPacket));
|
||||||
|
|
||||||
EXPECT_EQ(ModuleRTPUtility::kPFrame, parsedPacket.frameType);
|
EXPECT_EQ(ModuleRTPUtility::kPFrame, parsedPacket.frameType);
|
||||||
EXPECT_EQ(kRtpVp8Video, parsedPacket.type);
|
EXPECT_EQ(kRtpVp8Video, parsedPacket.type);
|
||||||
|
|
||||||
VerifyBasicHeader(parsedPacket.info.VP8, 1 /*N*/, 0 /*S*/, 0 /*PartID*/);
|
VerifyBasicHeader(parsedPacket.info.VP8, 1 /*N*/, 0 /*S*/, 0 /*PartID*/);
|
||||||
VerifyExtensions(parsedPacket.info.VP8, 1 /*I*/, 0 /*L*/, 0 /*T*/, 0 /*K*/);
|
VerifyExtensions(parsedPacket.info.VP8, 1 /*I*/, 0 /*L*/, 0 /*T*/, 0 /*K*/);
|
||||||
|
|
||||||
EXPECT_EQ(17, parsedPacket.info.VP8.pictureID);
|
EXPECT_EQ(17, parsedPacket.info.VP8.pictureID);
|
||||||
|
|
||||||
EXPECT_EQ(payload + 3, parsedPacket.info.VP8.data);
|
EXPECT_EQ(payload + 3, parsedPacket.info.VP8.data);
|
||||||
EXPECT_EQ(10 - 3, parsedPacket.info.VP8.dataLength);
|
EXPECT_EQ(10 - 3, parsedPacket.info.VP8.dataLength);
|
||||||
|
|
||||||
|
|
||||||
// Re-use payload, but change to long PictureID
|
// Re-use payload, but change to long PictureID.
|
||||||
payload[2] = 0x80 | 17;
|
payload[2] = 0x80 | 17;
|
||||||
payload[3] = 17;
|
payload[3] = 17;
|
||||||
RTPPayloadParser rtpPayloadParser2(kRtpVp8Video, payload, 10, 0);
|
RTPPayloadParser rtpPayloadParser2(kRtpVp8Video, payload, 10, 0);
|
||||||
|
|
||||||
ASSERT_TRUE(rtpPayloadParser2.Parse(parsedPacket));
|
ASSERT_TRUE(rtpPayloadParser2.Parse(parsedPacket));
|
||||||
|
|
||||||
VerifyBasicHeader(parsedPacket.info.VP8, 1 /*N*/, 0 /*S*/, 0 /*PartID*/);
|
VerifyBasicHeader(parsedPacket.info.VP8, 1 /*N*/, 0 /*S*/, 0 /*PartID*/);
|
||||||
VerifyExtensions(parsedPacket.info.VP8, 1 /*I*/, 0 /*L*/, 0 /*T*/, 0 /*K*/);
|
VerifyExtensions(parsedPacket.info.VP8, 1 /*I*/, 0 /*L*/, 0 /*T*/, 0 /*K*/);
|
||||||
|
|
||||||
EXPECT_EQ((17<<8) + 17, parsedPacket.info.VP8.pictureID);
|
EXPECT_EQ((17<<8) + 17, parsedPacket.info.VP8.pictureID);
|
||||||
|
|
||||||
EXPECT_EQ(payload + 4, parsedPacket.info.VP8.data);
|
EXPECT_EQ(payload + 4, parsedPacket.info.VP8.data);
|
||||||
EXPECT_EQ(10 - 4, parsedPacket.info.VP8.dataLength);
|
EXPECT_EQ(10 - 4, parsedPacket.info.VP8.dataLength);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(ParseVP8Test, Tl0PicIdx) {
|
TEST(ParseVP8Test, Tl0PicIdx) {
|
||||||
WebRtc_UWord8 payload[13] = {0};
|
WebRtc_UWord8 payload[13] = {0};
|
||||||
payload[0] = 0x90;
|
payload[0] = 0x90;
|
||||||
payload[1] = 0x40;
|
payload[1] = 0x40;
|
||||||
payload[2] = 17;
|
payload[2] = 17;
|
||||||
|
|
||||||
RTPPayloadParser rtpPayloadParser(kRtpVp8Video, payload, 13, 0);
|
RTPPayloadParser rtpPayloadParser(kRtpVp8Video, payload, 13, 0);
|
||||||
|
|
||||||
RTPPayload parsedPacket;
|
RTPPayload parsedPacket;
|
||||||
ASSERT_TRUE(rtpPayloadParser.Parse(parsedPacket));
|
ASSERT_TRUE(rtpPayloadParser.Parse(parsedPacket));
|
||||||
|
|
||||||
EXPECT_EQ(ModuleRTPUtility::kIFrame, parsedPacket.frameType);
|
EXPECT_EQ(ModuleRTPUtility::kIFrame, parsedPacket.frameType);
|
||||||
EXPECT_EQ(kRtpVp8Video, parsedPacket.type);
|
EXPECT_EQ(kRtpVp8Video, parsedPacket.type);
|
||||||
|
|
||||||
VerifyBasicHeader(parsedPacket.info.VP8, 0 /*N*/, 1 /*S*/, 0 /*PartID*/);
|
VerifyBasicHeader(parsedPacket.info.VP8, 0 /*N*/, 1 /*S*/, 0 /*PartID*/);
|
||||||
VerifyExtensions(parsedPacket.info.VP8, 0 /*I*/, 1 /*L*/, 0 /*T*/, 0 /*K*/);
|
VerifyExtensions(parsedPacket.info.VP8, 0 /*I*/, 1 /*L*/, 0 /*T*/, 0 /*K*/);
|
||||||
|
|
||||||
EXPECT_EQ(17, parsedPacket.info.VP8.tl0PicIdx);
|
EXPECT_EQ(17, parsedPacket.info.VP8.tl0PicIdx);
|
||||||
|
|
||||||
EXPECT_EQ(payload + 3, parsedPacket.info.VP8.data);
|
EXPECT_EQ(payload + 3, parsedPacket.info.VP8.data);
|
||||||
EXPECT_EQ(13 - 3, parsedPacket.info.VP8.dataLength);
|
EXPECT_EQ(13 - 3, parsedPacket.info.VP8.dataLength);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(ParseVP8Test, TID) {
|
TEST(ParseVP8Test, TID) {
|
||||||
WebRtc_UWord8 payload[10] = {0};
|
WebRtc_UWord8 payload[10] = {0};
|
||||||
payload[0] = 0x88;
|
payload[0] = 0x88;
|
||||||
payload[1] = 0x20;
|
payload[1] = 0x20;
|
||||||
payload[2] = 0x40;
|
payload[2] = 0x40;
|
||||||
|
|
||||||
RTPPayloadParser rtpPayloadParser(kRtpVp8Video, payload, 10, 0);
|
RTPPayloadParser rtpPayloadParser(kRtpVp8Video, payload, 10, 0);
|
||||||
|
|
||||||
RTPPayload parsedPacket;
|
RTPPayload parsedPacket;
|
||||||
ASSERT_TRUE(rtpPayloadParser.Parse(parsedPacket));
|
ASSERT_TRUE(rtpPayloadParser.Parse(parsedPacket));
|
||||||
|
|
||||||
EXPECT_EQ(ModuleRTPUtility::kPFrame, parsedPacket.frameType);
|
EXPECT_EQ(ModuleRTPUtility::kPFrame, parsedPacket.frameType);
|
||||||
EXPECT_EQ(kRtpVp8Video, parsedPacket.type);
|
EXPECT_EQ(kRtpVp8Video, parsedPacket.type);
|
||||||
|
|
||||||
VerifyBasicHeader(parsedPacket.info.VP8, 0 /*N*/, 0 /*S*/, 8 /*PartID*/);
|
VerifyBasicHeader(parsedPacket.info.VP8, 0 /*N*/, 0 /*S*/, 8 /*PartID*/);
|
||||||
VerifyExtensions(parsedPacket.info.VP8, 0 /*I*/, 0 /*L*/, 1 /*T*/, 0 /*K*/);
|
VerifyExtensions(parsedPacket.info.VP8, 0 /*I*/, 0 /*L*/, 1 /*T*/, 0 /*K*/);
|
||||||
|
|
||||||
EXPECT_EQ(2, parsedPacket.info.VP8.tID);
|
EXPECT_EQ(2, parsedPacket.info.VP8.tID);
|
||||||
|
|
||||||
EXPECT_EQ(payload + 3, parsedPacket.info.VP8.data);
|
EXPECT_EQ(payload + 3, parsedPacket.info.VP8.data);
|
||||||
EXPECT_EQ(10 - 3, parsedPacket.info.VP8.dataLength);
|
EXPECT_EQ(10 - 3, parsedPacket.info.VP8.dataLength);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(ParseVP8Test, KeyIdx) {
|
TEST(ParseVP8Test, KeyIdx) {
|
||||||
WebRtc_UWord8 payload[10] = {0};
|
WebRtc_UWord8 payload[10] = {0};
|
||||||
payload[0] = 0x88;
|
payload[0] = 0x88;
|
||||||
payload[1] = 0x10; // K = 1
|
payload[1] = 0x10; // K = 1.
|
||||||
payload[2] = 0x11; // KEYIDX = 17 decimal
|
payload[2] = 0x11; // KEYIDX = 17 decimal.
|
||||||
|
|
||||||
RTPPayloadParser rtpPayloadParser(kRtpVp8Video, payload, 10, 0);
|
RTPPayloadParser rtpPayloadParser(kRtpVp8Video, payload, 10, 0);
|
||||||
|
|
||||||
RTPPayload parsedPacket;
|
RTPPayload parsedPacket;
|
||||||
ASSERT_TRUE(rtpPayloadParser.Parse(parsedPacket));
|
ASSERT_TRUE(rtpPayloadParser.Parse(parsedPacket));
|
||||||
|
|
||||||
EXPECT_EQ(ModuleRTPUtility::kPFrame, parsedPacket.frameType);
|
EXPECT_EQ(ModuleRTPUtility::kPFrame, parsedPacket.frameType);
|
||||||
EXPECT_EQ(kRtpVp8Video, parsedPacket.type);
|
EXPECT_EQ(kRtpVp8Video, parsedPacket.type);
|
||||||
|
|
||||||
VerifyBasicHeader(parsedPacket.info.VP8, 0 /*N*/, 0 /*S*/, 8 /*PartID*/);
|
VerifyBasicHeader(parsedPacket.info.VP8, 0 /*N*/, 0 /*S*/, 8 /*PartID*/);
|
||||||
VerifyExtensions(parsedPacket.info.VP8, 0 /*I*/, 0 /*L*/, 0 /*T*/, 1 /*K*/);
|
VerifyExtensions(parsedPacket.info.VP8, 0 /*I*/, 0 /*L*/, 0 /*T*/, 1 /*K*/);
|
||||||
|
|
||||||
EXPECT_EQ(17, parsedPacket.info.VP8.keyIdx);
|
EXPECT_EQ(17, parsedPacket.info.VP8.keyIdx);
|
||||||
|
|
||||||
EXPECT_EQ(payload + 3, parsedPacket.info.VP8.data);
|
EXPECT_EQ(payload + 3, parsedPacket.info.VP8.data);
|
||||||
EXPECT_EQ(10 - 3, parsedPacket.info.VP8.dataLength);
|
EXPECT_EQ(10 - 3, parsedPacket.info.VP8.dataLength);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(ParseVP8Test, MultipleExtensions) {
|
TEST(ParseVP8Test, MultipleExtensions) {
|
||||||
WebRtc_UWord8 payload[10] = {0};
|
WebRtc_UWord8 payload[10] = {0};
|
||||||
payload[0] = 0x88;
|
payload[0] = 0x88;
|
||||||
payload[1] = 0x80 | 0x40 | 0x20 | 0x10;
|
payload[1] = 0x80 | 0x40 | 0x20 | 0x10;
|
||||||
payload[2] = 0x80 | 17; // PictureID, high 7 bits
|
payload[2] = 0x80 | 17; // PictureID, high 7 bits.
|
||||||
payload[3] = 17; // PictureID, low 8 bits
|
payload[3] = 17; // PictureID, low 8 bits.
|
||||||
payload[4] = 42; // Tl0PicIdx
|
payload[4] = 42; // Tl0PicIdx.
|
||||||
payload[5] = 0x40 | 0x11; // TID + KEYIDX
|
payload[5] = 0x40 | 0x11; // TID + KEYIDX.
|
||||||
|
|
||||||
RTPPayloadParser rtpPayloadParser(kRtpVp8Video, payload, 10, 0);
|
RTPPayloadParser rtpPayloadParser(kRtpVp8Video, payload, 10, 0);
|
||||||
|
|
||||||
RTPPayload parsedPacket;
|
RTPPayload parsedPacket;
|
||||||
ASSERT_TRUE(rtpPayloadParser.Parse(parsedPacket));
|
ASSERT_TRUE(rtpPayloadParser.Parse(parsedPacket));
|
||||||
|
|
||||||
EXPECT_EQ(ModuleRTPUtility::kPFrame, parsedPacket.frameType);
|
EXPECT_EQ(ModuleRTPUtility::kPFrame, parsedPacket.frameType);
|
||||||
EXPECT_EQ(kRtpVp8Video, parsedPacket.type);
|
EXPECT_EQ(kRtpVp8Video, parsedPacket.type);
|
||||||
|
|
||||||
VerifyBasicHeader(parsedPacket.info.VP8, 0 /*N*/, 0 /*S*/, 8 /*PartID*/);
|
VerifyBasicHeader(parsedPacket.info.VP8, 0 /*N*/, 0 /*S*/, 8 /*PartID*/);
|
||||||
VerifyExtensions(parsedPacket.info.VP8, 1 /*I*/, 1 /*L*/, 1 /*T*/, 1 /*K*/);
|
VerifyExtensions(parsedPacket.info.VP8, 1 /*I*/, 1 /*L*/, 1 /*T*/, 1 /*K*/);
|
||||||
|
|
||||||
EXPECT_EQ((17<<8) + 17, parsedPacket.info.VP8.pictureID);
|
EXPECT_EQ((17<<8) + 17, parsedPacket.info.VP8.pictureID);
|
||||||
EXPECT_EQ(42, parsedPacket.info.VP8.tl0PicIdx);
|
EXPECT_EQ(42, parsedPacket.info.VP8.tl0PicIdx);
|
||||||
EXPECT_EQ(2, parsedPacket.info.VP8.tID);
|
EXPECT_EQ(2, parsedPacket.info.VP8.tID);
|
||||||
EXPECT_EQ(17, parsedPacket.info.VP8.keyIdx);
|
EXPECT_EQ(17, parsedPacket.info.VP8.keyIdx);
|
||||||
|
|
||||||
EXPECT_EQ(payload + 6, parsedPacket.info.VP8.data);
|
EXPECT_EQ(payload + 6, parsedPacket.info.VP8.data);
|
||||||
EXPECT_EQ(10 - 6, parsedPacket.info.VP8.dataLength);
|
EXPECT_EQ(10 - 6, parsedPacket.info.VP8.dataLength);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(ParseVP8Test, TooShortHeader) {
|
TEST(ParseVP8Test, TooShortHeader) {
|
||||||
WebRtc_UWord8 payload[4] = {0};
|
WebRtc_UWord8 payload[4] = {0};
|
||||||
payload[0] = 0x88;
|
payload[0] = 0x88;
|
||||||
payload[1] = 0x80 | 0x40 | 0x20 | 0x10; // All extensions are enabled
|
payload[1] = 0x80 | 0x40 | 0x20 | 0x10; // All extensions are enabled...
|
||||||
payload[2] = 0x80 | 17; //... but only 2 bytes PictureID is provided
|
payload[2] = 0x80 | 17; // ... but only 2 bytes PictureID is provided.
|
||||||
payload[3] = 17; // PictureID, low 8 bits
|
payload[3] = 17; // PictureID, low 8 bits.
|
||||||
|
|
||||||
RTPPayloadParser rtpPayloadParser(kRtpVp8Video, payload, 4, 0);
|
RTPPayloadParser rtpPayloadParser(kRtpVp8Video, payload, 4, 0);
|
||||||
|
|
||||||
RTPPayload parsedPacket;
|
RTPPayload parsedPacket;
|
||||||
EXPECT_FALSE(rtpPayloadParser.Parse(parsedPacket));
|
EXPECT_FALSE(rtpPayloadParser.Parse(parsedPacket));
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(ParseVP8Test, TestWithPacketizer) {
|
TEST(ParseVP8Test, TestWithPacketizer) {
|
||||||
WebRtc_UWord8 payload[10] = {0};
|
WebRtc_UWord8 payload[10] = {0};
|
||||||
WebRtc_UWord8 packet[20] = {0};
|
WebRtc_UWord8 packet[20] = {0};
|
||||||
RTPVideoHeaderVP8 inputHeader;
|
RTPVideoHeaderVP8 inputHeader;
|
||||||
inputHeader.nonReference = true;
|
inputHeader.nonReference = true;
|
||||||
inputHeader.pictureId = 300;
|
inputHeader.pictureId = 300;
|
||||||
inputHeader.temporalIdx = 1;
|
inputHeader.temporalIdx = 1;
|
||||||
inputHeader.tl0PicIdx = kNoTl0PicIdx; // disable
|
inputHeader.tl0PicIdx = kNoTl0PicIdx; // Disable.
|
||||||
inputHeader.keyIdx = 31;
|
inputHeader.keyIdx = 31;
|
||||||
RtpFormatVp8 packetizer = RtpFormatVp8(payload, 10, inputHeader);
|
RtpFormatVp8 packetizer = RtpFormatVp8(payload, 10, inputHeader);
|
||||||
bool last;
|
bool last;
|
||||||
int send_bytes;
|
int send_bytes;
|
||||||
ASSERT_EQ(0, packetizer.NextPacket(20, packet, &send_bytes, &last));
|
ASSERT_EQ(0, packetizer.NextPacket(20, packet, &send_bytes, &last));
|
||||||
ASSERT_TRUE(last);
|
ASSERT_TRUE(last);
|
||||||
|
|
||||||
RTPPayloadParser rtpPayloadParser(kRtpVp8Video, packet, send_bytes, 0);
|
RTPPayloadParser rtpPayloadParser(kRtpVp8Video, packet, send_bytes, 0);
|
||||||
|
|
||||||
RTPPayload parsedPacket;
|
RTPPayload parsedPacket;
|
||||||
ASSERT_TRUE(rtpPayloadParser.Parse(parsedPacket));
|
ASSERT_TRUE(rtpPayloadParser.Parse(parsedPacket));
|
||||||
|
|
||||||
EXPECT_EQ(ModuleRTPUtility::kIFrame, parsedPacket.frameType);
|
EXPECT_EQ(ModuleRTPUtility::kIFrame, parsedPacket.frameType);
|
||||||
EXPECT_EQ(kRtpVp8Video, parsedPacket.type);
|
EXPECT_EQ(kRtpVp8Video, parsedPacket.type);
|
||||||
|
|
||||||
VerifyBasicHeader(parsedPacket.info.VP8,
|
VerifyBasicHeader(parsedPacket.info.VP8,
|
||||||
inputHeader.nonReference /*N*/,
|
inputHeader.nonReference /*N*/,
|
||||||
1 /*S*/,
|
1 /*S*/,
|
||||||
0 /*PartID*/);
|
0 /*PartID*/);
|
||||||
VerifyExtensions(parsedPacket.info.VP8,
|
VerifyExtensions(parsedPacket.info.VP8,
|
||||||
1 /*I*/,
|
1 /*I*/,
|
||||||
0 /*L*/,
|
0 /*L*/,
|
||||||
1 /*T*/,
|
1 /*T*/,
|
||||||
1 /*K*/);
|
1 /*K*/);
|
||||||
|
|
||||||
EXPECT_EQ(inputHeader.pictureId, parsedPacket.info.VP8.pictureID);
|
EXPECT_EQ(inputHeader.pictureId, parsedPacket.info.VP8.pictureID);
|
||||||
EXPECT_EQ(inputHeader.temporalIdx, parsedPacket.info.VP8.tID);
|
EXPECT_EQ(inputHeader.temporalIdx, parsedPacket.info.VP8.tID);
|
||||||
EXPECT_EQ(inputHeader.keyIdx, parsedPacket.info.VP8.keyIdx);
|
EXPECT_EQ(inputHeader.keyIdx, parsedPacket.info.VP8.keyIdx);
|
||||||
|
|
||||||
EXPECT_EQ(packet + 5, parsedPacket.info.VP8.data);
|
EXPECT_EQ(packet + 5, parsedPacket.info.VP8.data);
|
||||||
EXPECT_EQ(send_bytes - 5, parsedPacket.info.VP8.dataLength);
|
EXPECT_EQ(send_bytes - 5, parsedPacket.info.VP8.dataLength);
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
Loading…
Reference in New Issue
Block a user