mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
1.0.mainline6, core/kernel/rtmp utest, refine bandwidth(as/js/srslibrtmp library). 50029 lines.
This commit is contained in:
parent
5c4398f4a9
commit
d609fbc7ce
3 changed files with 156 additions and 1 deletions
|
@ -4173,6 +4173,57 @@ VOID TEST(ProtocolStackTest, ProtocolRecvVCid2BNormal)
|
|||
EXPECT_EQ(0x10+64, msg->header.perfer_cid);
|
||||
}
|
||||
|
||||
/**
|
||||
* a video message, in 2 chunks packet.
|
||||
* use 2B chunk header, cid in 64-319
|
||||
*/
|
||||
VOID TEST(ProtocolStackTest, ProtocolRecvVCid2BNormal2)
|
||||
{
|
||||
MockBufferIO bio;
|
||||
SrsProtocol proto(&bio);
|
||||
|
||||
// video message
|
||||
char data[] = {
|
||||
// 12bytes header, 1byts chunk header, 11bytes msg heder
|
||||
(char)0x00, (char)0x11,
|
||||
(char)0x00, (char)0x00, (char)0x00, // timestamp
|
||||
(char)0x00, (char)0x01, (char)0x10, // length, 272
|
||||
(char)0x09, // message_type
|
||||
(char)0x00, (char)0x00, (char)0x00, (char)0x00, // stream_id
|
||||
// msg payload start
|
||||
(char)0x02, (char)0x00, (char)0x07, (char)0x63,
|
||||
(char)0x6f, (char)0x6e, (char)0x6e, (char)0x65, (char)0x63, (char)0x74, (char)0x00, (char)0x3f, (char)0xf0, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x03,
|
||||
(char)0x00, (char)0x03, (char)0x61, (char)0x70, (char)0x70, (char)0x02, (char)0x00, (char)0x04, (char)0x6c, (char)0x69, (char)0x76, (char)0x65, (char)0x00, (char)0x08, (char)0x66, (char)0x6c,
|
||||
(char)0x61, (char)0x73, (char)0x68, (char)0x56, (char)0x65, (char)0x72, (char)0x02, (char)0x00, (char)0x0d, (char)0x57, (char)0x49, (char)0x4e, (char)0x20, (char)0x31, (char)0x32, (char)0x2c,
|
||||
(char)0x30, (char)0x2c, (char)0x30, (char)0x2c, (char)0x34, (char)0x31, (char)0x00, (char)0x06, (char)0x73, (char)0x77, (char)0x66, (char)0x55, (char)0x72, (char)0x6c, (char)0x02, (char)0x00,
|
||||
(char)0x51, (char)0x68, (char)0x74, (char)0x74, (char)0x70, (char)0x3a, (char)0x2f, (char)0x2f, (char)0x77, (char)0x77, (char)0x77, (char)0x2e, (char)0x6f, (char)0x73, (char)0x73, (char)0x72,
|
||||
(char)0x73, (char)0x2e, (char)0x6e, (char)0x65, (char)0x74, (char)0x3a, (char)0x38, (char)0x30, (char)0x38, (char)0x35, (char)0x2f, (char)0x70, (char)0x6c, (char)0x61, (char)0x79, (char)0x65,
|
||||
(char)0x72, (char)0x73, (char)0x2f, (char)0x73, (char)0x72, (char)0x73, (char)0x5f, (char)0x70, (char)0x6c, (char)0x61, (char)0x79, (char)0x65, (char)0x72, (char)0x2f, (char)0x72, (char)0x65,
|
||||
(char)0x6c, (char)0x65, (char)0x61, (char)0x73, (char)0x65, (char)0x2f, (char)0x73, (char)0x72, (char)0x73, (char)0x5f, (char)0x70, (char)0x6c,
|
||||
// chunk #2
|
||||
(char)0xC0, (char)0x11, /*next chunk.*/ (char)0x61, (char)0x79, (char)0x65, (char)0x72,
|
||||
(char)0x2e, (char)0x73, (char)0x77, (char)0x66, (char)0x3f, (char)0x5f, (char)0x76, (char)0x65, (char)0x72, (char)0x73, (char)0x69, (char)0x6f, (char)0x6e, (char)0x3d, (char)0x31, (char)0x2e,
|
||||
(char)0x32, (char)0x33, (char)0x00, (char)0x05, (char)0x74, (char)0x63, (char)0x55, (char)0x72, (char)0x6c, (char)0x02, (char)0x00, (char)0x14, (char)0x72, (char)0x74, (char)0x6d, (char)0x70,
|
||||
(char)0x3a, (char)0x2f, (char)0x2f, (char)0x64, (char)0x65, (char)0x76, (char)0x3a, (char)0x31, (char)0x39, (char)0x33, (char)0x35, (char)0x2f, (char)0x6c, (char)0x69, (char)0x76, (char)0x65,
|
||||
(char)0x00, (char)0x04, (char)0x66, (char)0x70, (char)0x61, (char)0x64, (char)0x01, (char)0x00, (char)0x00, (char)0x0c, (char)0x63, (char)0x61, (char)0x70, (char)0x61, (char)0x62, (char)0x69,
|
||||
(char)0x6c, (char)0x69, (char)0x74, (char)0x69, (char)0x65, (char)0x73, (char)0x00, (char)0x40, (char)0x6d, (char)0xe0, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00,
|
||||
(char)0x0b, (char)0x61, (char)0x75, (char)0x64, (char)0x69, (char)0x6f, (char)0x43, (char)0x6f, (char)0x64, (char)0x65, (char)0x63, (char)0x73, (char)0x00, (char)0x40, (char)0xab, (char)0xee,
|
||||
(char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x0b, (char)0x76, (char)0x69, (char)0x64, (char)0x65, (char)0x6f, (char)0x43, (char)0x6f, (char)0x64, (char)0x65,
|
||||
(char)0x63, (char)0x73, (char)0x00, (char)0x40, (char)0x6f, (char)0x80, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00,
|
||||
// chunk #2
|
||||
(char)0xC0, (char)0x11, /*next chunk.*/
|
||||
(char)0x2e, (char)0x73, (char)0x77, (char)0x66, (char)0x3f, (char)0x5f, (char)0x76, (char)0x65, (char)0x72, (char)0x73, (char)0x69, (char)0x6f, (char)0x6e, (char)0x3d, (char)0x31, (char)0x2e
|
||||
};
|
||||
bio.in_buffer.append(data, sizeof(data));
|
||||
|
||||
SrsMessage* msg = NULL;
|
||||
ASSERT_TRUE(ERROR_SUCCESS == proto.recv_message(&msg));
|
||||
SrsAutoFree(SrsMessage, msg);
|
||||
EXPECT_TRUE(msg->header.is_video());
|
||||
// 2B cid(8bits), cid in 64-319
|
||||
EXPECT_EQ(0x11+64, msg->header.perfer_cid);
|
||||
}
|
||||
|
||||
/**
|
||||
* a video message, in 2 chunks packet.
|
||||
* use 2B chunk header, max chunk id is 319.
|
||||
|
@ -4377,6 +4428,108 @@ VOID TEST(ProtocolStackTest, ProtocolRecvVCid3BNormal2)
|
|||
EXPECT_EQ(0x01 + (0x10*256) + 64, msg->header.perfer_cid);
|
||||
}
|
||||
|
||||
/**
|
||||
* a video message, in 2 chunks packet.
|
||||
* use 3B chunk header, cid in 64-65599, greater than 319
|
||||
*/
|
||||
VOID TEST(ProtocolStackTest, ProtocolRecvVCid3BNormal3)
|
||||
{
|
||||
MockBufferIO bio;
|
||||
SrsProtocol proto(&bio);
|
||||
|
||||
// video message
|
||||
char data[] = {
|
||||
// 12bytes header, 1byts chunk header, 11bytes msg heder
|
||||
(char)0x01, (char)0xFF, (char)0x10,
|
||||
(char)0x00, (char)0x00, (char)0x00, // timestamp
|
||||
(char)0x00, (char)0x01, (char)0x10, // length, 272
|
||||
(char)0x09, // message_type
|
||||
(char)0x00, (char)0x00, (char)0x00, (char)0x00, // stream_id
|
||||
// msg payload start
|
||||
(char)0x02, (char)0x00, (char)0x07, (char)0x63,
|
||||
(char)0x6f, (char)0x6e, (char)0x6e, (char)0x65, (char)0x63, (char)0x74, (char)0x00, (char)0x3f, (char)0xf0, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x03,
|
||||
(char)0x00, (char)0x03, (char)0x61, (char)0x70, (char)0x70, (char)0x02, (char)0x00, (char)0x04, (char)0x6c, (char)0x69, (char)0x76, (char)0x65, (char)0x00, (char)0x08, (char)0x66, (char)0x6c,
|
||||
(char)0x61, (char)0x73, (char)0x68, (char)0x56, (char)0x65, (char)0x72, (char)0x02, (char)0x00, (char)0x0d, (char)0x57, (char)0x49, (char)0x4e, (char)0x20, (char)0x31, (char)0x32, (char)0x2c,
|
||||
(char)0x30, (char)0x2c, (char)0x30, (char)0x2c, (char)0x34, (char)0x31, (char)0x00, (char)0x06, (char)0x73, (char)0x77, (char)0x66, (char)0x55, (char)0x72, (char)0x6c, (char)0x02, (char)0x00,
|
||||
(char)0x51, (char)0x68, (char)0x74, (char)0x74, (char)0x70, (char)0x3a, (char)0x2f, (char)0x2f, (char)0x77, (char)0x77, (char)0x77, (char)0x2e, (char)0x6f, (char)0x73, (char)0x73, (char)0x72,
|
||||
(char)0x73, (char)0x2e, (char)0x6e, (char)0x65, (char)0x74, (char)0x3a, (char)0x38, (char)0x30, (char)0x38, (char)0x35, (char)0x2f, (char)0x70, (char)0x6c, (char)0x61, (char)0x79, (char)0x65,
|
||||
(char)0x72, (char)0x73, (char)0x2f, (char)0x73, (char)0x72, (char)0x73, (char)0x5f, (char)0x70, (char)0x6c, (char)0x61, (char)0x79, (char)0x65, (char)0x72, (char)0x2f, (char)0x72, (char)0x65,
|
||||
(char)0x6c, (char)0x65, (char)0x61, (char)0x73, (char)0x65, (char)0x2f, (char)0x73, (char)0x72, (char)0x73, (char)0x5f, (char)0x70, (char)0x6c,
|
||||
// chunk #2
|
||||
(char)0xC1, (char)0xFF, (char)0x10, /*next chunk.*/ (char)0x61, (char)0x79, (char)0x65, (char)0x72,
|
||||
(char)0x2e, (char)0x73, (char)0x77, (char)0x66, (char)0x3f, (char)0x5f, (char)0x76, (char)0x65, (char)0x72, (char)0x73, (char)0x69, (char)0x6f, (char)0x6e, (char)0x3d, (char)0x31, (char)0x2e,
|
||||
(char)0x32, (char)0x33, (char)0x00, (char)0x05, (char)0x74, (char)0x63, (char)0x55, (char)0x72, (char)0x6c, (char)0x02, (char)0x00, (char)0x14, (char)0x72, (char)0x74, (char)0x6d, (char)0x70,
|
||||
(char)0x3a, (char)0x2f, (char)0x2f, (char)0x64, (char)0x65, (char)0x76, (char)0x3a, (char)0x31, (char)0x39, (char)0x33, (char)0x35, (char)0x2f, (char)0x6c, (char)0x69, (char)0x76, (char)0x65,
|
||||
(char)0x00, (char)0x04, (char)0x66, (char)0x70, (char)0x61, (char)0x64, (char)0x01, (char)0x00, (char)0x00, (char)0x0c, (char)0x63, (char)0x61, (char)0x70, (char)0x61, (char)0x62, (char)0x69,
|
||||
(char)0x6c, (char)0x69, (char)0x74, (char)0x69, (char)0x65, (char)0x73, (char)0x00, (char)0x40, (char)0x6d, (char)0xe0, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00,
|
||||
(char)0x0b, (char)0x61, (char)0x75, (char)0x64, (char)0x69, (char)0x6f, (char)0x43, (char)0x6f, (char)0x64, (char)0x65, (char)0x63, (char)0x73, (char)0x00, (char)0x40, (char)0xab, (char)0xee,
|
||||
(char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x0b, (char)0x76, (char)0x69, (char)0x64, (char)0x65, (char)0x6f, (char)0x43, (char)0x6f, (char)0x64, (char)0x65,
|
||||
(char)0x63, (char)0x73, (char)0x00, (char)0x40, (char)0x6f, (char)0x80, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00,
|
||||
// chunk #2
|
||||
(char)0xC1, (char)0xFF, (char)0x10, /*next chunk.*/
|
||||
(char)0x2e, (char)0x73, (char)0x77, (char)0x66, (char)0x3f, (char)0x5f, (char)0x76, (char)0x65, (char)0x72, (char)0x73, (char)0x69, (char)0x6f, (char)0x6e, (char)0x3d, (char)0x31, (char)0x2e
|
||||
};
|
||||
bio.in_buffer.append(data, sizeof(data));
|
||||
|
||||
SrsMessage* msg = NULL;
|
||||
ASSERT_TRUE(ERROR_SUCCESS == proto.recv_message(&msg));
|
||||
SrsAutoFree(SrsMessage, msg);
|
||||
EXPECT_TRUE(msg->header.is_video());
|
||||
// 3B cid(16bits), cid in 64-65599
|
||||
EXPECT_EQ(0xFF + (0x10*256) + 64, msg->header.perfer_cid);
|
||||
}
|
||||
|
||||
/**
|
||||
* a video message, in 2 chunks packet.
|
||||
* use 3B chunk header, cid in 64-65599, greater than 319
|
||||
*/
|
||||
VOID TEST(ProtocolStackTest, ProtocolRecvVCid3BNormal4)
|
||||
{
|
||||
MockBufferIO bio;
|
||||
SrsProtocol proto(&bio);
|
||||
|
||||
// video message
|
||||
char data[] = {
|
||||
// 12bytes header, 1byts chunk header, 11bytes msg heder
|
||||
(char)0x01, (char)0x02, (char)0x10,
|
||||
(char)0x00, (char)0x00, (char)0x00, // timestamp
|
||||
(char)0x00, (char)0x01, (char)0x10, // length, 272
|
||||
(char)0x09, // message_type
|
||||
(char)0x00, (char)0x00, (char)0x00, (char)0x00, // stream_id
|
||||
// msg payload start
|
||||
(char)0x02, (char)0x00, (char)0x07, (char)0x63,
|
||||
(char)0x6f, (char)0x6e, (char)0x6e, (char)0x65, (char)0x63, (char)0x74, (char)0x00, (char)0x3f, (char)0xf0, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x03,
|
||||
(char)0x00, (char)0x03, (char)0x61, (char)0x70, (char)0x70, (char)0x02, (char)0x00, (char)0x04, (char)0x6c, (char)0x69, (char)0x76, (char)0x65, (char)0x00, (char)0x08, (char)0x66, (char)0x6c,
|
||||
(char)0x61, (char)0x73, (char)0x68, (char)0x56, (char)0x65, (char)0x72, (char)0x02, (char)0x00, (char)0x0d, (char)0x57, (char)0x49, (char)0x4e, (char)0x20, (char)0x31, (char)0x32, (char)0x2c,
|
||||
(char)0x30, (char)0x2c, (char)0x30, (char)0x2c, (char)0x34, (char)0x31, (char)0x00, (char)0x06, (char)0x73, (char)0x77, (char)0x66, (char)0x55, (char)0x72, (char)0x6c, (char)0x02, (char)0x00,
|
||||
(char)0x51, (char)0x68, (char)0x74, (char)0x74, (char)0x70, (char)0x3a, (char)0x2f, (char)0x2f, (char)0x77, (char)0x77, (char)0x77, (char)0x2e, (char)0x6f, (char)0x73, (char)0x73, (char)0x72,
|
||||
(char)0x73, (char)0x2e, (char)0x6e, (char)0x65, (char)0x74, (char)0x3a, (char)0x38, (char)0x30, (char)0x38, (char)0x35, (char)0x2f, (char)0x70, (char)0x6c, (char)0x61, (char)0x79, (char)0x65,
|
||||
(char)0x72, (char)0x73, (char)0x2f, (char)0x73, (char)0x72, (char)0x73, (char)0x5f, (char)0x70, (char)0x6c, (char)0x61, (char)0x79, (char)0x65, (char)0x72, (char)0x2f, (char)0x72, (char)0x65,
|
||||
(char)0x6c, (char)0x65, (char)0x61, (char)0x73, (char)0x65, (char)0x2f, (char)0x73, (char)0x72, (char)0x73, (char)0x5f, (char)0x70, (char)0x6c,
|
||||
// chunk #2
|
||||
(char)0xC1, (char)0x02, (char)0x10, /*next chunk.*/ (char)0x61, (char)0x79, (char)0x65, (char)0x72,
|
||||
(char)0x2e, (char)0x73, (char)0x77, (char)0x66, (char)0x3f, (char)0x5f, (char)0x76, (char)0x65, (char)0x72, (char)0x73, (char)0x69, (char)0x6f, (char)0x6e, (char)0x3d, (char)0x31, (char)0x2e,
|
||||
(char)0x32, (char)0x33, (char)0x00, (char)0x05, (char)0x74, (char)0x63, (char)0x55, (char)0x72, (char)0x6c, (char)0x02, (char)0x00, (char)0x14, (char)0x72, (char)0x74, (char)0x6d, (char)0x70,
|
||||
(char)0x3a, (char)0x2f, (char)0x2f, (char)0x64, (char)0x65, (char)0x76, (char)0x3a, (char)0x31, (char)0x39, (char)0x33, (char)0x35, (char)0x2f, (char)0x6c, (char)0x69, (char)0x76, (char)0x65,
|
||||
(char)0x00, (char)0x04, (char)0x66, (char)0x70, (char)0x61, (char)0x64, (char)0x01, (char)0x00, (char)0x00, (char)0x0c, (char)0x63, (char)0x61, (char)0x70, (char)0x61, (char)0x62, (char)0x69,
|
||||
(char)0x6c, (char)0x69, (char)0x74, (char)0x69, (char)0x65, (char)0x73, (char)0x00, (char)0x40, (char)0x6d, (char)0xe0, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00,
|
||||
(char)0x0b, (char)0x61, (char)0x75, (char)0x64, (char)0x69, (char)0x6f, (char)0x43, (char)0x6f, (char)0x64, (char)0x65, (char)0x63, (char)0x73, (char)0x00, (char)0x40, (char)0xab, (char)0xee,
|
||||
(char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x0b, (char)0x76, (char)0x69, (char)0x64, (char)0x65, (char)0x6f, (char)0x43, (char)0x6f, (char)0x64, (char)0x65,
|
||||
(char)0x63, (char)0x73, (char)0x00, (char)0x40, (char)0x6f, (char)0x80, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00,
|
||||
// chunk #2
|
||||
(char)0xC1, (char)0x02, (char)0x10, /*next chunk.*/
|
||||
(char)0x2e, (char)0x73, (char)0x77, (char)0x66, (char)0x3f, (char)0x5f, (char)0x76, (char)0x65, (char)0x72, (char)0x73, (char)0x69, (char)0x6f, (char)0x6e, (char)0x3d, (char)0x31, (char)0x2e
|
||||
};
|
||||
bio.in_buffer.append(data, sizeof(data));
|
||||
|
||||
SrsMessage* msg = NULL;
|
||||
ASSERT_TRUE(ERROR_SUCCESS == proto.recv_message(&msg));
|
||||
SrsAutoFree(SrsMessage, msg);
|
||||
EXPECT_TRUE(msg->header.is_video());
|
||||
// 3B cid(16bits), cid in 64-65599
|
||||
EXPECT_EQ(0x02 + (0x10*256) + 64, msg->header.perfer_cid);
|
||||
}
|
||||
|
||||
/**
|
||||
* a video message, in 2 chunks packet.
|
||||
* use 3B chunk header, max chunk id is 65599.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue