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-03-08 22:25:56 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
8ed9ae6242532872c7e501f1d5ed6f23ebbaa068
8ed9ae62
1 parent
a3ae8713
amf0 utest: remove the object read/write function, directly use object to read or write.
隐藏空白字符变更
内嵌
并排对比
正在显示
4 个修改的文件
包含
34 行增加
和
92 行删除
trunk/src/rtmp/srs_protocol_amf0.cpp
trunk/src/rtmp/srs_protocol_amf0.hpp
trunk/src/rtmp/srs_protocol_rtmp_stack.cpp
trunk/src/utest/srs_utest_amf0.cpp
trunk/src/rtmp/srs_protocol_amf0.cpp
查看文件 @
8ed9ae6
...
...
@@ -1494,39 +1494,3 @@ int srs_amf0_write_object_eof(SrsStream* stream, __SrsAmf0ObjectEOF* value)
return
ret
;
}
int
srs_amf0_read_object
(
SrsStream
*
stream
,
SrsAmf0Object
*&
value
)
{
int
ret
=
ERROR_SUCCESS
;
value
=
SrsAmf0Any
::
object
();
if
((
ret
=
value
->
read
(
stream
))
!=
ERROR_SUCCESS
)
{
srs_freep
(
value
);
return
ret
;
}
return
ret
;
}
int
srs_amf0_write_object
(
SrsStream
*
stream
,
SrsAmf0Object
*
value
)
{
return
value
->
write
(
stream
);
}
int
srs_amf0_read_ecma_array
(
SrsStream
*
stream
,
SrsAmf0EcmaArray
*&
value
)
{
int
ret
=
ERROR_SUCCESS
;
value
=
SrsAmf0Any
::
ecma_array
();
if
((
ret
=
value
->
read
(
stream
))
!=
ERROR_SUCCESS
)
{
srs_freep
(
value
);
return
ret
;
}
return
ret
;
}
int
srs_amf0_write_ecma_array
(
SrsStream
*
stream
,
SrsAmf0EcmaArray
*
value
)
{
return
value
->
write
(
stream
);
}
...
...
trunk/src/rtmp/srs_protocol_amf0.hpp
查看文件 @
8ed9ae6
...
...
@@ -270,23 +270,4 @@ extern int srs_amf0_write_null(SrsStream* stream);
extern
int
srs_amf0_read_undefined
(
SrsStream
*
stream
);
extern
int
srs_amf0_write_undefined
(
SrsStream
*
stream
);
/**
* read amf0 object from stream.
* 2.5 Object Type
* anonymous-object-type = object-marker *(object-property)
* object-property = (UTF-8 value-type) | (UTF-8-empty object-end-marker)
*/
extern
int
srs_amf0_read_object
(
SrsStream
*
stream
,
SrsAmf0Object
*&
value
);
extern
int
srs_amf0_write_object
(
SrsStream
*
stream
,
SrsAmf0Object
*
value
);
/**
* read amf0 object from stream.
* 2.10 ECMA Array Type
* ecma-array-type = associative-count *(object-property)
* associative-count = U32
* object-property = (UTF-8 value-type) | (UTF-8-empty object-end-marker)
*/
extern
int
srs_amf0_read_ecma_array
(
SrsStream
*
stream
,
SrsAmf0EcmaArray
*&
value
);
extern
int
srs_amf0_write_ecma_array
(
SrsStream
*
stream
,
SrsAmf0EcmaArray
*
value
);
#endif
\ No newline at end of file
...
...
trunk/src/rtmp/srs_protocol_rtmp_stack.cpp
查看文件 @
8ed9ae6
...
...
@@ -1730,7 +1730,7 @@ SrsConnectAppPacket::SrsConnectAppPacket()
{
command_name
=
RTMP_AMF0_COMMAND_CONNECT
;
transaction_id
=
1
;
command_object
=
NULL
;
command_object
=
SrsAmf0Any
::
object
()
;
}
SrsConnectAppPacket
::~
SrsConnectAppPacket
()
...
...
@@ -1764,12 +1764,7 @@ int SrsConnectAppPacket::decode(SrsStream* stream)
return
ret
;
}
if
((
ret
=
srs_amf0_read_object
(
stream
,
command_object
))
!=
ERROR_SUCCESS
)
{
srs_error
(
"amf0 decode connect command_object failed. ret=%d"
,
ret
);
return
ret
;
}
if
(
command_object
==
NULL
)
{
ret
=
ERROR_RTMP_AMF0_DECODE
;
if
((
ret
=
command_object
->
read
(
stream
))
!=
ERROR_SUCCESS
)
{
srs_error
(
"amf0 decode connect command_object failed. ret=%d"
,
ret
);
return
ret
;
}
...
...
@@ -1811,7 +1806,7 @@ int SrsConnectAppPacket::encode_packet(SrsStream* stream)
}
srs_verbose
(
"encode transaction_id success."
);
if
((
ret
=
srs_amf0_write_object
(
stream
,
command_object
))
!=
ERROR_SUCCESS
)
{
if
((
ret
=
command_object
->
write
(
stream
))
!=
ERROR_SUCCESS
)
{
srs_error
(
"encode command_object failed. ret=%d"
,
ret
);
return
ret
;
}
...
...
@@ -1826,8 +1821,6 @@ SrsConnectAppResPacket::SrsConnectAppResPacket()
{
command_name
=
RTMP_AMF0_COMMAND_RESULT
;
transaction_id
=
1
;
// TODO: FIXME: memory leak for decode will set the props and info.
// TODO: FIXME: bug#22, refine the amf0.
props
=
SrsAmf0Any
::
object
();
info
=
SrsAmf0Any
::
object
();
}
...
...
@@ -1864,22 +1857,12 @@ int SrsConnectAppResPacket::decode(SrsStream* stream)
return
ret
;
}
if
((
ret
=
srs_amf0_read_object
(
stream
,
props
))
!=
ERROR_SUCCESS
)
{
srs_error
(
"amf0 decode connect props failed. ret=%d"
,
ret
);
return
ret
;
}
if
(
props
==
NULL
)
{
ret
=
ERROR_RTMP_AMF0_DECODE
;
if
((
ret
=
props
->
read
(
stream
))
!=
ERROR_SUCCESS
)
{
srs_error
(
"amf0 decode connect props failed. ret=%d"
,
ret
);
return
ret
;
}
if
((
ret
=
srs_amf0_read_object
(
stream
,
info
))
!=
ERROR_SUCCESS
)
{
srs_error
(
"amf0 decode connect info failed. ret=%d"
,
ret
);
return
ret
;
}
if
(
info
==
NULL
)
{
ret
=
ERROR_RTMP_AMF0_DECODE
;
if
((
ret
=
info
->
read
(
stream
))
!=
ERROR_SUCCESS
)
{
srs_error
(
"amf0 decode connect info failed. ret=%d"
,
ret
);
return
ret
;
}
...
...
@@ -1930,20 +1913,16 @@ int SrsConnectAppResPacket::encode_packet(SrsStream* stream)
}
srs_verbose
(
"encode transaction_id success."
);
if
(
props
->
size
()
>
0
)
{
if
((
ret
=
srs_amf0_write_object
(
stream
,
props
))
!=
ERROR_SUCCESS
)
{
srs_error
(
"encode props failed. ret=%d"
,
ret
);
return
ret
;
}
if
((
ret
=
props
->
write
(
stream
))
!=
ERROR_SUCCESS
)
{
srs_error
(
"encode props failed. ret=%d"
,
ret
);
return
ret
;
}
srs_verbose
(
"encode props success."
);
if
(
info
->
size
()
>
0
)
{
if
((
ret
=
srs_amf0_write_object
(
stream
,
info
))
!=
ERROR_SUCCESS
)
{
srs_error
(
"encode info failed. ret=%d"
,
ret
);
return
ret
;
}
if
((
ret
=
info
->
write
(
stream
))
!=
ERROR_SUCCESS
)
{
srs_error
(
"encode info failed. ret=%d"
,
ret
);
return
ret
;
}
srs_verbose
(
"encode info success."
);
...
...
@@ -2765,7 +2744,7 @@ int SrsPlayResPacket::encode_packet(SrsStream* stream)
}
srs_verbose
(
"encode command_object success."
);
if
((
ret
=
srs_amf0_write_object
(
stream
,
desc
))
!=
ERROR_SUCCESS
)
{
if
((
ret
=
desc
->
write
(
stream
))
!=
ERROR_SUCCESS
)
{
srs_error
(
"encode desc failed. ret=%d"
,
ret
);
return
ret
;
}
...
...
@@ -2884,7 +2863,7 @@ int SrsOnStatusCallPacket::encode_packet(SrsStream* stream)
}
srs_verbose
(
"encode args success."
);;
if
((
ret
=
srs_amf0_write_object
(
stream
,
data
))
!=
ERROR_SUCCESS
)
{
if
((
ret
=
data
->
write
(
stream
))
!=
ERROR_SUCCESS
)
{
srs_error
(
"encode data failed. ret=%d"
,
ret
);
return
ret
;
}
...
...
@@ -2947,7 +2926,7 @@ int SrsBandwidthPacket::encode_packet(SrsStream* stream)
}
srs_verbose
(
"encode args success."
);;
if
((
ret
=
srs_amf0_write_object
(
stream
,
data
))
!=
ERROR_SUCCESS
)
{
if
((
ret
=
data
->
write
(
stream
))
!=
ERROR_SUCCESS
)
{
srs_error
(
"encode data failed. ret=%d"
,
ret
);
return
ret
;
}
...
...
@@ -3088,7 +3067,7 @@ int SrsOnStatusDataPacket::encode_packet(SrsStream* stream)
}
srs_verbose
(
"encode command_name success."
);
if
((
ret
=
srs_amf0_write_object
(
stream
,
data
))
!=
ERROR_SUCCESS
)
{
if
((
ret
=
data
->
write
(
stream
))
!=
ERROR_SUCCESS
)
{
srs_error
(
"encode data failed. ret=%d"
,
ret
);
return
ret
;
}
...
...
@@ -3240,7 +3219,7 @@ int SrsOnMetaDataPacket::encode_packet(SrsStream* stream)
}
srs_verbose
(
"encode name success."
);
if
((
ret
=
srs_amf0_write_object
(
stream
,
metadata
))
!=
ERROR_SUCCESS
)
{
if
((
ret
=
metadata
->
write
(
stream
))
!=
ERROR_SUCCESS
)
{
srs_error
(
"encode metadata failed. ret=%d"
,
ret
);
return
ret
;
}
...
...
trunk/src/utest/srs_utest_amf0.cpp
查看文件 @
8ed9ae6
...
...
@@ -729,4 +729,22 @@ VOID TEST(AMF0Test, AnyAssert)
SrsAutoFree
(
SrsAmf0Any
,
o
,
false
);
EXPECT_TRUE
(
o
->
is_ecma_array
());
}
// empty object
if
(
true
)
{
o
=
SrsAmf0Any
::
object
();
SrsAutoFree
(
SrsAmf0Any
,
o
,
false
);
s
.
reset
();
EXPECT_EQ
(
ERROR_SUCCESS
,
o
->
write
(
&
s
));
EXPECT_EQ
(
1
+
3
,
s
.
pos
());
}
// empty ecma array
if
(
true
)
{
o
=
SrsAmf0Any
::
ecma_array
();
SrsAutoFree
(
SrsAmf0Any
,
o
,
false
);
s
.
reset
();
EXPECT_EQ
(
ERROR_SUCCESS
,
o
->
write
(
&
s
));
EXPECT_EQ
(
1
+
4
+
3
,
s
.
pos
());
}
}
...
...
请
注册
或
登录
后发表评论