Toggle navigation
Toggle navigation
此项目
正在载入...
Sign in
胡斌
/
srs
转到一个项目
Toggle navigation
项目
群组
代码片段
帮助
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
winlin
2014-07-13 20:39:31 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
d609fbc7ced80e73c81a7f27c7ac04d951f71a2c
d609fbc7
1 parent
5c4398f4
1.0.mainline6, core/kernel/rtmp utest, refine bandwidth(as/js/srslibrtmp library). 50029 lines.
显示空白字符变更
内嵌
并排对比
正在显示
3 个修改的文件
包含
156 行增加
和
1 行删除
README.md
trunk/src/core/srs_core.hpp
trunk/src/utest/srs_utest_protocol.cpp
README.md
查看文件 @
d609fbc
...
...
@@ -190,6 +190,7 @@ Supported operating systems and hardware:
1.
[
no-plan
]
Support RTP/RTSP server.
## Releases
*
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/>
*
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/>
*
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/>
*
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:
*
2013-10-17, Created.
<br/>
## History
*
<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>
*
v1.0, 2014-07-13, refine the bandwidth check/test, add as/js library, use srs-librtmp for linux tool. 0.9.159
*
v1.0, 2014-07-12, complete rtmp stack utest. 0.9.156
*
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.
...
...
trunk/src/core/srs_core.hpp
查看文件 @
d609fbc
...
...
@@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
// current release version
#define VERSION_MAJOR "0"
#define VERSION_MINOR "9"
#define VERSION_REVISION "1
59
"
#define VERSION_REVISION "1
60
"
#define RTMP_SIG_SRS_VERSION VERSION_MAJOR"."VERSION_MINOR"."VERSION_REVISION
// server info.
#define RTMP_SIG_SRS_KEY "SRS"
...
...
trunk/src/utest/srs_utest_protocol.cpp
查看文件 @
d609fbc
...
...
@@ -4175,6 +4175,57 @@ VOID TEST(ProtocolStackTest, ProtocolRecvVCid2BNormal)
/**
* 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.
*/
VOID
TEST
(
ProtocolStackTest
,
ProtocolRecvVCid2BMax
)
...
...
@@ -4379,6 +4430,108 @@ VOID TEST(ProtocolStackTest, ProtocolRecvVCid3BNormal2)
/**
* 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.
*/
VOID
TEST
(
ProtocolStackTest
,
ProtocolRecvVCid3BMax
)
...
...
请
注册
或
登录
后发表评论