1.0.mainline6, core/kernel/rtmp utest, refine bandwidth(as/js/srslibrtmp library). 50029 lines.
正在显示
3 个修改的文件
包含
156 行增加
和
1 行删除
| @@ -190,6 +190,7 @@ Supported operating systems and hardware: | @@ -190,6 +190,7 @@ Supported operating systems and hardware: | ||
| 190 | 1. [no-plan] Support RTP/RTSP server. | 190 | 1. [no-plan] Support RTP/RTSP server. |
| 191 | 191 | ||
| 192 | ## Releases | 192 | ## Releases |
| 193 | +* 2014-07-13, [Release v1.0-mainline6](https://github.com/winlinvip/simple-rtmp-server/releases/tag/1.0.mainline6), core/kernel/rtmp utest, refine bandwidth(as/js/srslibrtmp library). 50029 lines.<br/> | ||
| 193 | * 2014-06-27, [Release v1.0-mainline5](https://github.com/winlinvip/simple-rtmp-server/releases/tag/1.0.mainline5), refine perf 3k+ clients, edge token traverse, [srs monitor](http://ossrs.net:1977), 30days online. 41573 lines.<br/> | 194 | * 2014-06-27, [Release v1.0-mainline5](https://github.com/winlinvip/simple-rtmp-server/releases/tag/1.0.mainline5), refine perf 3k+ clients, edge token traverse, [srs monitor](http://ossrs.net:1977), 30days online. 41573 lines.<br/> |
| 194 | * 2014-05-28, [Release v1.0-mainline4](https://github.com/winlinvip/simple-rtmp-server/releases/tag/1.0.mainline4), support heartbeat, tracable log, fix mem leak and bugs. 39200 lines.<br/> | 195 | * 2014-05-28, [Release v1.0-mainline4](https://github.com/winlinvip/simple-rtmp-server/releases/tag/1.0.mainline4), support heartbeat, tracable log, fix mem leak and bugs. 39200 lines.<br/> |
| 195 | * 2014-05-18, [Release v1.0-mainline3](https://github.com/winlinvip/simple-rtmp-server/releases/tag/1.0.mainline3), support mips, fms origin, json(http-api). 37594 lines.<br/> | 196 | * 2014-05-18, [Release v1.0-mainline3](https://github.com/winlinvip/simple-rtmp-server/releases/tag/1.0.mainline3), support mips, fms origin, json(http-api). 37594 lines.<br/> |
| @@ -207,6 +208,7 @@ Supported operating systems and hardware: | @@ -207,6 +208,7 @@ Supported operating systems and hardware: | ||
| 207 | * 2013-10-17, Created.<br/> | 208 | * 2013-10-17, Created.<br/> |
| 208 | 209 | ||
| 209 | ## History | 210 | ## History |
| 211 | +* <strong>v1.0, 2014-07-13, [1.0 mainline6(0.9.160)](https://github.com/winlinvip/simple-rtmp-server/releases/tag/1.0.mainline8) released. 50029 lines.</strong> | ||
| 210 | * v1.0, 2014-07-13, refine the bandwidth check/test, add as/js library, use srs-librtmp for linux tool. 0.9.159 | 212 | * v1.0, 2014-07-13, refine the bandwidth check/test, add as/js library, use srs-librtmp for linux tool. 0.9.159 |
| 211 | * v1.0, 2014-07-12, complete rtmp stack utest. 0.9.156 | 213 | * v1.0, 2014-07-12, complete rtmp stack utest. 0.9.156 |
| 212 | * v1.0, 2014-07-06, fix [#81](https://github.com/winlinvip/simple-rtmp-server/issues/81), fix HLS codec info, IOS ok. 0.9.153. | 214 | * v1.0, 2014-07-06, fix [#81](https://github.com/winlinvip/simple-rtmp-server/issues/81), fix HLS codec info, IOS ok. 0.9.153. |
| @@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | @@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 31 | // current release version | 31 | // current release version |
| 32 | #define VERSION_MAJOR "0" | 32 | #define VERSION_MAJOR "0" |
| 33 | #define VERSION_MINOR "9" | 33 | #define VERSION_MINOR "9" |
| 34 | -#define VERSION_REVISION "159" | 34 | +#define VERSION_REVISION "160" |
| 35 | #define RTMP_SIG_SRS_VERSION VERSION_MAJOR"."VERSION_MINOR"."VERSION_REVISION | 35 | #define RTMP_SIG_SRS_VERSION VERSION_MAJOR"."VERSION_MINOR"."VERSION_REVISION |
| 36 | // server info. | 36 | // server info. |
| 37 | #define RTMP_SIG_SRS_KEY "SRS" | 37 | #define RTMP_SIG_SRS_KEY "SRS" |
| @@ -4175,6 +4175,57 @@ VOID TEST(ProtocolStackTest, ProtocolRecvVCid2BNormal) | @@ -4175,6 +4175,57 @@ VOID TEST(ProtocolStackTest, ProtocolRecvVCid2BNormal) | ||
| 4175 | 4175 | ||
| 4176 | /** | 4176 | /** |
| 4177 | * a video message, in 2 chunks packet. | 4177 | * a video message, in 2 chunks packet. |
| 4178 | +* use 2B chunk header, cid in 64-319 | ||
| 4179 | +*/ | ||
| 4180 | +VOID TEST(ProtocolStackTest, ProtocolRecvVCid2BNormal2) | ||
| 4181 | +{ | ||
| 4182 | + MockBufferIO bio; | ||
| 4183 | + SrsProtocol proto(&bio); | ||
| 4184 | + | ||
| 4185 | + // video message | ||
| 4186 | + char data[] = { | ||
| 4187 | + // 12bytes header, 1byts chunk header, 11bytes msg heder | ||
| 4188 | + (char)0x00, (char)0x11, | ||
| 4189 | + (char)0x00, (char)0x00, (char)0x00, // timestamp | ||
| 4190 | + (char)0x00, (char)0x01, (char)0x10, // length, 272 | ||
| 4191 | + (char)0x09, // message_type | ||
| 4192 | + (char)0x00, (char)0x00, (char)0x00, (char)0x00, // stream_id | ||
| 4193 | + // msg payload start | ||
| 4194 | + (char)0x02, (char)0x00, (char)0x07, (char)0x63, | ||
| 4195 | + (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, | ||
| 4196 | + (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, | ||
| 4197 | + (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, | ||
| 4198 | + (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, | ||
| 4199 | + (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, | ||
| 4200 | + (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, | ||
| 4201 | + (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, | ||
| 4202 | + (char)0x6c, (char)0x65, (char)0x61, (char)0x73, (char)0x65, (char)0x2f, (char)0x73, (char)0x72, (char)0x73, (char)0x5f, (char)0x70, (char)0x6c, | ||
| 4203 | + // chunk #2 | ||
| 4204 | + (char)0xC0, (char)0x11, /*next chunk.*/ (char)0x61, (char)0x79, (char)0x65, (char)0x72, | ||
| 4205 | + (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, | ||
| 4206 | + (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, | ||
| 4207 | + (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, | ||
| 4208 | + (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, | ||
| 4209 | + (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, | ||
| 4210 | + (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, | ||
| 4211 | + (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, | ||
| 4212 | + (char)0x63, (char)0x73, (char)0x00, (char)0x40, (char)0x6f, (char)0x80, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, | ||
| 4213 | + // chunk #2 | ||
| 4214 | + (char)0xC0, (char)0x11, /*next chunk.*/ | ||
| 4215 | + (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 | ||
| 4216 | + }; | ||
| 4217 | + bio.in_buffer.append(data, sizeof(data)); | ||
| 4218 | + | ||
| 4219 | + SrsMessage* msg = NULL; | ||
| 4220 | + ASSERT_TRUE(ERROR_SUCCESS == proto.recv_message(&msg)); | ||
| 4221 | + SrsAutoFree(SrsMessage, msg); | ||
| 4222 | + EXPECT_TRUE(msg->header.is_video()); | ||
| 4223 | + // 2B cid(8bits), cid in 64-319 | ||
| 4224 | + EXPECT_EQ(0x11+64, msg->header.perfer_cid); | ||
| 4225 | +} | ||
| 4226 | + | ||
| 4227 | +/** | ||
| 4228 | +* a video message, in 2 chunks packet. | ||
| 4178 | * use 2B chunk header, max chunk id is 319. | 4229 | * use 2B chunk header, max chunk id is 319. |
| 4179 | */ | 4230 | */ |
| 4180 | VOID TEST(ProtocolStackTest, ProtocolRecvVCid2BMax) | 4231 | VOID TEST(ProtocolStackTest, ProtocolRecvVCid2BMax) |
| @@ -4379,6 +4430,108 @@ VOID TEST(ProtocolStackTest, ProtocolRecvVCid3BNormal2) | @@ -4379,6 +4430,108 @@ VOID TEST(ProtocolStackTest, ProtocolRecvVCid3BNormal2) | ||
| 4379 | 4430 | ||
| 4380 | /** | 4431 | /** |
| 4381 | * a video message, in 2 chunks packet. | 4432 | * a video message, in 2 chunks packet. |
| 4433 | +* use 3B chunk header, cid in 64-65599, greater than 319 | ||
| 4434 | +*/ | ||
| 4435 | +VOID TEST(ProtocolStackTest, ProtocolRecvVCid3BNormal3) | ||
| 4436 | +{ | ||
| 4437 | + MockBufferIO bio; | ||
| 4438 | + SrsProtocol proto(&bio); | ||
| 4439 | + | ||
| 4440 | + // video message | ||
| 4441 | + char data[] = { | ||
| 4442 | + // 12bytes header, 1byts chunk header, 11bytes msg heder | ||
| 4443 | + (char)0x01, (char)0xFF, (char)0x10, | ||
| 4444 | + (char)0x00, (char)0x00, (char)0x00, // timestamp | ||
| 4445 | + (char)0x00, (char)0x01, (char)0x10, // length, 272 | ||
| 4446 | + (char)0x09, // message_type | ||
| 4447 | + (char)0x00, (char)0x00, (char)0x00, (char)0x00, // stream_id | ||
| 4448 | + // msg payload start | ||
| 4449 | + (char)0x02, (char)0x00, (char)0x07, (char)0x63, | ||
| 4450 | + (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, | ||
| 4451 | + (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, | ||
| 4452 | + (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, | ||
| 4453 | + (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, | ||
| 4454 | + (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, | ||
| 4455 | + (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, | ||
| 4456 | + (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, | ||
| 4457 | + (char)0x6c, (char)0x65, (char)0x61, (char)0x73, (char)0x65, (char)0x2f, (char)0x73, (char)0x72, (char)0x73, (char)0x5f, (char)0x70, (char)0x6c, | ||
| 4458 | + // chunk #2 | ||
| 4459 | + (char)0xC1, (char)0xFF, (char)0x10, /*next chunk.*/ (char)0x61, (char)0x79, (char)0x65, (char)0x72, | ||
| 4460 | + (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, | ||
| 4461 | + (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, | ||
| 4462 | + (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, | ||
| 4463 | + (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, | ||
| 4464 | + (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, | ||
| 4465 | + (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, | ||
| 4466 | + (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, | ||
| 4467 | + (char)0x63, (char)0x73, (char)0x00, (char)0x40, (char)0x6f, (char)0x80, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, | ||
| 4468 | + // chunk #2 | ||
| 4469 | + (char)0xC1, (char)0xFF, (char)0x10, /*next chunk.*/ | ||
| 4470 | + (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 | ||
| 4471 | + }; | ||
| 4472 | + bio.in_buffer.append(data, sizeof(data)); | ||
| 4473 | + | ||
| 4474 | + SrsMessage* msg = NULL; | ||
| 4475 | + ASSERT_TRUE(ERROR_SUCCESS == proto.recv_message(&msg)); | ||
| 4476 | + SrsAutoFree(SrsMessage, msg); | ||
| 4477 | + EXPECT_TRUE(msg->header.is_video()); | ||
| 4478 | + // 3B cid(16bits), cid in 64-65599 | ||
| 4479 | + EXPECT_EQ(0xFF + (0x10*256) + 64, msg->header.perfer_cid); | ||
| 4480 | +} | ||
| 4481 | + | ||
| 4482 | +/** | ||
| 4483 | +* a video message, in 2 chunks packet. | ||
| 4484 | +* use 3B chunk header, cid in 64-65599, greater than 319 | ||
| 4485 | +*/ | ||
| 4486 | +VOID TEST(ProtocolStackTest, ProtocolRecvVCid3BNormal4) | ||
| 4487 | +{ | ||
| 4488 | + MockBufferIO bio; | ||
| 4489 | + SrsProtocol proto(&bio); | ||
| 4490 | + | ||
| 4491 | + // video message | ||
| 4492 | + char data[] = { | ||
| 4493 | + // 12bytes header, 1byts chunk header, 11bytes msg heder | ||
| 4494 | + (char)0x01, (char)0x02, (char)0x10, | ||
| 4495 | + (char)0x00, (char)0x00, (char)0x00, // timestamp | ||
| 4496 | + (char)0x00, (char)0x01, (char)0x10, // length, 272 | ||
| 4497 | + (char)0x09, // message_type | ||
| 4498 | + (char)0x00, (char)0x00, (char)0x00, (char)0x00, // stream_id | ||
| 4499 | + // msg payload start | ||
| 4500 | + (char)0x02, (char)0x00, (char)0x07, (char)0x63, | ||
| 4501 | + (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, | ||
| 4502 | + (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, | ||
| 4503 | + (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, | ||
| 4504 | + (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, | ||
| 4505 | + (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, | ||
| 4506 | + (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, | ||
| 4507 | + (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, | ||
| 4508 | + (char)0x6c, (char)0x65, (char)0x61, (char)0x73, (char)0x65, (char)0x2f, (char)0x73, (char)0x72, (char)0x73, (char)0x5f, (char)0x70, (char)0x6c, | ||
| 4509 | + // chunk #2 | ||
| 4510 | + (char)0xC1, (char)0x02, (char)0x10, /*next chunk.*/ (char)0x61, (char)0x79, (char)0x65, (char)0x72, | ||
| 4511 | + (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, | ||
| 4512 | + (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, | ||
| 4513 | + (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, | ||
| 4514 | + (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, | ||
| 4515 | + (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, | ||
| 4516 | + (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, | ||
| 4517 | + (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, | ||
| 4518 | + (char)0x63, (char)0x73, (char)0x00, (char)0x40, (char)0x6f, (char)0x80, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, | ||
| 4519 | + // chunk #2 | ||
| 4520 | + (char)0xC1, (char)0x02, (char)0x10, /*next chunk.*/ | ||
| 4521 | + (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 | ||
| 4522 | + }; | ||
| 4523 | + bio.in_buffer.append(data, sizeof(data)); | ||
| 4524 | + | ||
| 4525 | + SrsMessage* msg = NULL; | ||
| 4526 | + ASSERT_TRUE(ERROR_SUCCESS == proto.recv_message(&msg)); | ||
| 4527 | + SrsAutoFree(SrsMessage, msg); | ||
| 4528 | + EXPECT_TRUE(msg->header.is_video()); | ||
| 4529 | + // 3B cid(16bits), cid in 64-65599 | ||
| 4530 | + EXPECT_EQ(0x02 + (0x10*256) + 64, msg->header.perfer_cid); | ||
| 4531 | +} | ||
| 4532 | + | ||
| 4533 | +/** | ||
| 4534 | +* a video message, in 2 chunks packet. | ||
| 4382 | * use 3B chunk header, max chunk id is 65599. | 4535 | * use 3B chunk header, max chunk id is 65599. |
| 4383 | */ | 4536 | */ |
| 4384 | VOID TEST(ProtocolStackTest, ProtocolRecvVCid3BMax) | 4537 | VOID TEST(ProtocolStackTest, ProtocolRecvVCid3BMax) |
-
请 注册 或 登录 后发表评论