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:07:40 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
a3ae8713607e8228269016b28e08f3005c038f72
a3ae8713
1 parent
3129c738
refine code, array to ecma_array.
显示空白字符变更
内嵌
并排对比
正在显示
5 个修改的文件
包含
78 行增加
和
43 行删除
trunk/src/rtmp/srs_protocol_amf0.cpp
trunk/src/rtmp/srs_protocol_amf0.hpp
trunk/src/rtmp/srs_protocol_rtmp.cpp
trunk/src/rtmp/srs_protocol_rtmp_stack.cpp
trunk/src/utest/srs_utest_amf0.cpp
trunk/src/rtmp/srs_protocol_amf0.cpp
查看文件 @
a3ae871
...
...
@@ -277,7 +277,7 @@ SrsAmf0Object* SrsAmf0Any::to_object()
return
p
;
}
SrsAmf0EcmaArray
*
SrsAmf0Any
::
to_array
()
SrsAmf0EcmaArray
*
SrsAmf0Any
::
to_
ecma_
array
()
{
SrsAmf0EcmaArray
*
p
=
dynamic_cast
<
SrsAmf0EcmaArray
*>
(
this
);
srs_assert
(
p
!=
NULL
);
...
...
@@ -324,7 +324,7 @@ SrsAmf0Any* SrsAmf0Any::object_eof()
return
new
__SrsAmf0ObjectEOF
();
}
SrsAmf0EcmaArray
*
SrsAmf0Any
::
array
()
SrsAmf0EcmaArray
*
SrsAmf0Any
::
ecma_
array
()
{
return
new
SrsAmf0EcmaArray
();
}
...
...
@@ -378,7 +378,7 @@ int SrsAmf0Any::discovery(SrsStream* stream, SrsAmf0Any** ppvalue)
return
ret
;
}
case
RTMP_AMF0_EcmaArray
:
{
*
ppvalue
=
SrsAmf0Any
::
array
();
*
ppvalue
=
SrsAmf0Any
::
ecma_
array
();
return
ret
;
}
case
RTMP_AMF0_Invalid
:
...
...
@@ -959,7 +959,7 @@ int SrsAmf0Size::object_eof()
return
2
+
1
;
}
int
SrsAmf0Size
::
array
(
SrsAmf0EcmaArray
*
arr
)
int
SrsAmf0Size
::
ecma_
array
(
SrsAmf0EcmaArray
*
arr
)
{
if
(
!
arr
)
{
return
0
;
...
...
@@ -1517,7 +1517,7 @@ int srs_amf0_read_ecma_array(SrsStream* stream, SrsAmf0EcmaArray*& value)
{
int
ret
=
ERROR_SUCCESS
;
value
=
SrsAmf0Any
::
array
();
value
=
SrsAmf0Any
::
ecma_
array
();
if
((
ret
=
value
->
read
(
stream
))
!=
ERROR_SUCCESS
)
{
srs_freep
(
value
);
...
...
trunk/src/rtmp/srs_protocol_amf0.hpp
查看文件 @
a3ae871
...
...
@@ -58,10 +58,10 @@ class __SrsAmf0ObjectEOF;
// SrsAmf0Any* pany = SrsAmf0Any::str("winlin");
// 4. SrsAmf0Size: get amf0 instance size
// int size = SrsAmf0Size::str("winlin");
// 5. SrsAmf0Object: the amf0 object.
// 5. SrsAmf0Object:
create
the amf0 object.
// SrsAmf0Object* obj = SrsAmf0Any::object();
// 5. SrsAmf0EcmaArray: the amf0 ecma array.
// SrsAmf0EcmaArray* arr = SrsAmf0Any::array();
// 5. SrsAmf0EcmaArray: create the amf0 ecma array.
// SrsAmf0EcmaArray* arr = SrsAmf0Any::ecma_array();
// for detail usage, see interfaces of each object.
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
...
...
@@ -116,7 +116,7 @@ public:
* get the ecma array of any when is_ecma_array() indicates true.
* user must ensure the type is a ecma array, or assert failed.
*/
virtual
SrsAmf0EcmaArray
*
to_array
();
virtual
SrsAmf0EcmaArray
*
to_
ecma_
array
();
public
:
/**
* get the size of amf0 any, including the marker size.
...
...
@@ -135,7 +135,7 @@ public:
static
SrsAmf0Any
*
undefined
();
static
SrsAmf0Object
*
object
();
static
SrsAmf0Any
*
object_eof
();
static
SrsAmf0EcmaArray
*
array
();
static
SrsAmf0EcmaArray
*
ecma_
array
();
public
:
static
int
discovery
(
SrsStream
*
stream
,
SrsAmf0Any
**
ppvalue
);
};
...
...
@@ -185,7 +185,7 @@ private:
int32_t
count
;
private
:
// use SrsAmf0Any::array() to create it.
// use SrsAmf0Any::
ecma_
array() to create it.
friend
class
SrsAmf0Any
;
SrsAmf0EcmaArray
();
public
:
...
...
@@ -218,7 +218,7 @@ public:
static
int
boolean
();
static
int
object
(
SrsAmf0Object
*
obj
);
static
int
object_eof
();
static
int
array
(
SrsAmf0EcmaArray
*
arr
);
static
int
ecma_
array
(
SrsAmf0EcmaArray
*
arr
);
static
int
any
(
SrsAmf0Any
*
o
);
};
...
...
trunk/src/rtmp/srs_protocol_rtmp.cpp
查看文件 @
a3ae871
...
...
@@ -706,7 +706,7 @@ int SrsRtmpServer::response_connect_app(SrsRequest *req, const char* server_ip)
pkt
->
info
->
set
(
StatusCode
,
SrsAmf0Any
::
str
(
StatusCodeConnectSuccess
));
pkt
->
info
->
set
(
StatusDescription
,
SrsAmf0Any
::
str
(
"Connection succeeded"
));
pkt
->
info
->
set
(
"objectEncoding"
,
SrsAmf0Any
::
number
(
req
->
objectEncoding
));
SrsAmf0EcmaArray
*
data
=
SrsAmf0Any
::
array
();
SrsAmf0EcmaArray
*
data
=
SrsAmf0Any
::
ecma_
array
();
pkt
->
info
->
set
(
"data"
,
data
);
data
->
set
(
"version"
,
SrsAmf0Any
::
str
(
RTMP_SIG_FMS_VER
));
...
...
trunk/src/rtmp/srs_protocol_rtmp_stack.cpp
查看文件 @
a3ae871
...
...
@@ -3201,7 +3201,7 @@ int SrsOnMetaDataPacket::decode(SrsStream* stream)
SrsAutoFree
(
SrsAmf0Any
,
any
,
false
);
if
(
any
->
is_ecma_array
())
{
SrsAmf0EcmaArray
*
arr
=
any
->
to_array
();
SrsAmf0EcmaArray
*
arr
=
any
->
to_
ecma_
array
();
// if ecma array, copy to object.
for
(
int
i
=
0
;
i
<
arr
->
size
();
i
++
)
{
...
...
trunk/src/utest/srs_utest_amf0.cpp
查看文件 @
a3ae871
...
...
@@ -106,61 +106,61 @@ VOID TEST(AMF0Test, Size)
// array: empty
if
(
true
)
{
int
size
=
1
+
4
+
3
;
SrsAmf0EcmaArray
*
o
=
SrsAmf0Any
::
array
();
SrsAmf0EcmaArray
*
o
=
SrsAmf0Any
::
ecma_
array
();
SrsAutoFree
(
SrsAmf0EcmaArray
,
o
,
false
);
EXPECT_EQ
(
size
,
SrsAmf0Size
::
array
(
o
));
EXPECT_EQ
(
size
,
SrsAmf0Size
::
ecma_
array
(
o
));
}
// array: elem
if
(
true
)
{
int
size
=
1
+
4
+
3
;
SrsAmf0EcmaArray
*
o
=
SrsAmf0Any
::
array
();
SrsAmf0EcmaArray
*
o
=
SrsAmf0Any
::
ecma_
array
();
SrsAutoFree
(
SrsAmf0EcmaArray
,
o
,
false
);
size
+=
SrsAmf0Size
::
utf8
(
"name"
)
+
SrsAmf0Size
::
str
(
"winlin"
);
o
->
set
(
"name"
,
SrsAmf0Any
::
str
(
"winlin"
));
EXPECT_EQ
(
size
,
SrsAmf0Size
::
array
(
o
));
EXPECT_EQ
(
size
,
SrsAmf0Size
::
ecma_
array
(
o
));
}
if
(
true
)
{
int
size
=
1
+
4
+
3
;
SrsAmf0EcmaArray
*
o
=
SrsAmf0Any
::
array
();
SrsAmf0EcmaArray
*
o
=
SrsAmf0Any
::
ecma_
array
();
SrsAutoFree
(
SrsAmf0EcmaArray
,
o
,
false
);
size
+=
SrsAmf0Size
::
utf8
(
"age"
)
+
SrsAmf0Size
::
number
();
o
->
set
(
"age"
,
SrsAmf0Any
::
number
(
9
));
EXPECT_EQ
(
size
,
SrsAmf0Size
::
array
(
o
));
EXPECT_EQ
(
size
,
SrsAmf0Size
::
ecma_
array
(
o
));
}
if
(
true
)
{
int
size
=
1
+
4
+
3
;
SrsAmf0EcmaArray
*
o
=
SrsAmf0Any
::
array
();
SrsAmf0EcmaArray
*
o
=
SrsAmf0Any
::
ecma_
array
();
SrsAutoFree
(
SrsAmf0EcmaArray
,
o
,
false
);
size
+=
SrsAmf0Size
::
utf8
(
"email"
)
+
SrsAmf0Size
::
null
();
o
->
set
(
"email"
,
SrsAmf0Any
::
null
());
EXPECT_EQ
(
size
,
SrsAmf0Size
::
array
(
o
));
EXPECT_EQ
(
size
,
SrsAmf0Size
::
ecma_
array
(
o
));
}
if
(
true
)
{
int
size
=
1
+
4
+
3
;
SrsAmf0EcmaArray
*
o
=
SrsAmf0Any
::
array
();
SrsAmf0EcmaArray
*
o
=
SrsAmf0Any
::
ecma_
array
();
SrsAutoFree
(
SrsAmf0EcmaArray
,
o
,
false
);
size
+=
SrsAmf0Size
::
utf8
(
"email"
)
+
SrsAmf0Size
::
undefined
();
o
->
set
(
"email"
,
SrsAmf0Any
::
undefined
());
EXPECT_EQ
(
size
,
SrsAmf0Size
::
array
(
o
));
EXPECT_EQ
(
size
,
SrsAmf0Size
::
ecma_
array
(
o
));
}
if
(
true
)
{
int
size
=
1
+
4
+
3
;
SrsAmf0EcmaArray
*
o
=
SrsAmf0Any
::
array
();
SrsAmf0EcmaArray
*
o
=
SrsAmf0Any
::
ecma_
array
();
SrsAutoFree
(
SrsAmf0EcmaArray
,
o
,
false
);
size
+=
SrsAmf0Size
::
utf8
(
"sex"
)
+
SrsAmf0Size
::
boolean
();
o
->
set
(
"sex"
,
SrsAmf0Any
::
boolean
(
true
));
EXPECT_EQ
(
size
,
SrsAmf0Size
::
array
(
o
));
EXPECT_EQ
(
size
,
SrsAmf0Size
::
ecma_
array
(
o
));
}
// object: array
...
...
@@ -172,9 +172,9 @@ VOID TEST(AMF0Test, Size)
size
+=
SrsAmf0Size
::
utf8
(
"name"
)
+
SrsAmf0Size
::
str
(
"winlin"
);
o
->
set
(
"name"
,
SrsAmf0Any
::
str
(
"winlin"
));
SrsAmf0EcmaArray
*
args
=
SrsAmf0Any
::
array
();
SrsAmf0EcmaArray
*
args
=
SrsAmf0Any
::
ecma_
array
();
args
->
set
(
"p0"
,
SrsAmf0Any
::
str
(
"function"
));
size
+=
SrsAmf0Size
::
utf8
(
"args"
)
+
SrsAmf0Size
::
array
(
args
);
size
+=
SrsAmf0Size
::
utf8
(
"args"
)
+
SrsAmf0Size
::
ecma_
array
(
args
);
o
->
set
(
"args"
,
args
);
EXPECT_EQ
(
size
,
SrsAmf0Size
::
object
(
o
));
...
...
@@ -187,14 +187,14 @@ VOID TEST(AMF0Test, Size)
size
+=
SrsAmf0Size
::
utf8
(
"name"
)
+
SrsAmf0Size
::
str
(
"winlin"
);
o
->
set
(
"name"
,
SrsAmf0Any
::
str
(
"winlin"
));
SrsAmf0EcmaArray
*
args
=
SrsAmf0Any
::
array
();
SrsAmf0EcmaArray
*
args
=
SrsAmf0Any
::
ecma_
array
();
args
->
set
(
"p0"
,
SrsAmf0Any
::
str
(
"function"
));
size
+=
SrsAmf0Size
::
utf8
(
"args"
)
+
SrsAmf0Size
::
array
(
args
);
size
+=
SrsAmf0Size
::
utf8
(
"args"
)
+
SrsAmf0Size
::
ecma_
array
(
args
);
o
->
set
(
"args"
,
args
);
SrsAmf0EcmaArray
*
params
=
SrsAmf0Any
::
array
();
SrsAmf0EcmaArray
*
params
=
SrsAmf0Any
::
ecma_
array
();
params
->
set
(
"p1"
,
SrsAmf0Any
::
number
(
10
));
size
+=
SrsAmf0Size
::
utf8
(
"params"
)
+
SrsAmf0Size
::
array
(
params
);
size
+=
SrsAmf0Size
::
utf8
(
"params"
)
+
SrsAmf0Size
::
ecma_
array
(
params
);
o
->
set
(
"params"
,
params
);
EXPECT_EQ
(
size
,
SrsAmf0Size
::
object
(
o
));
...
...
@@ -203,7 +203,7 @@ VOID TEST(AMF0Test, Size)
// array: object
if
(
true
)
{
int
size
=
1
+
4
+
3
;
SrsAmf0EcmaArray
*
o
=
SrsAmf0Any
::
array
();
SrsAmf0EcmaArray
*
o
=
SrsAmf0Any
::
ecma_
array
();
SrsAutoFree
(
SrsAmf0EcmaArray
,
o
,
false
);
size
+=
SrsAmf0Size
::
utf8
(
"name"
)
+
SrsAmf0Size
::
str
(
"winlin"
);
...
...
@@ -214,11 +214,11 @@ VOID TEST(AMF0Test, Size)
size
+=
SrsAmf0Size
::
utf8
(
"args"
)
+
SrsAmf0Size
::
object
(
args
);
o
->
set
(
"args"
,
args
);
EXPECT_EQ
(
size
,
SrsAmf0Size
::
array
(
o
));
EXPECT_EQ
(
size
,
SrsAmf0Size
::
ecma_
array
(
o
));
}
if
(
true
)
{
int
size
=
1
+
4
+
3
;
SrsAmf0EcmaArray
*
o
=
SrsAmf0Any
::
array
();
SrsAmf0EcmaArray
*
o
=
SrsAmf0Any
::
ecma_
array
();
SrsAutoFree
(
SrsAmf0EcmaArray
,
o
,
false
);
size
+=
SrsAmf0Size
::
utf8
(
"name"
)
+
SrsAmf0Size
::
str
(
"winlin"
);
...
...
@@ -234,7 +234,7 @@ VOID TEST(AMF0Test, Size)
size
+=
SrsAmf0Size
::
utf8
(
"params"
)
+
SrsAmf0Size
::
object
(
params
);
o
->
set
(
"params"
,
params
);
EXPECT_EQ
(
size
,
SrsAmf0Size
::
array
(
o
));
EXPECT_EQ
(
size
,
SrsAmf0Size
::
ecma_
array
(
o
));
}
// object: object
...
...
@@ -262,23 +262,23 @@ VOID TEST(AMF0Test, Size)
// array: array
if
(
true
)
{
int
size
=
1
+
4
+
3
;
SrsAmf0EcmaArray
*
o
=
SrsAmf0Any
::
array
();
SrsAmf0EcmaArray
*
o
=
SrsAmf0Any
::
ecma_
array
();
SrsAutoFree
(
SrsAmf0EcmaArray
,
o
,
false
);
size
+=
SrsAmf0Size
::
utf8
(
"name"
)
+
SrsAmf0Size
::
str
(
"winlin"
);
o
->
set
(
"name"
,
SrsAmf0Any
::
str
(
"winlin"
));
SrsAmf0EcmaArray
*
args
=
SrsAmf0Any
::
array
();
SrsAmf0EcmaArray
*
args
=
SrsAmf0Any
::
ecma_
array
();
args
->
set
(
"p0"
,
SrsAmf0Any
::
str
(
"function"
));
size
+=
SrsAmf0Size
::
utf8
(
"args"
)
+
SrsAmf0Size
::
array
(
args
);
size
+=
SrsAmf0Size
::
utf8
(
"args"
)
+
SrsAmf0Size
::
ecma_
array
(
args
);
o
->
set
(
"args"
,
args
);
SrsAmf0EcmaArray
*
params
=
SrsAmf0Any
::
array
();
SrsAmf0EcmaArray
*
params
=
SrsAmf0Any
::
ecma_
array
();
params
->
set
(
"p1"
,
SrsAmf0Any
::
number
(
10
));
size
+=
SrsAmf0Size
::
utf8
(
"params"
)
+
SrsAmf0Size
::
array
(
params
);
size
+=
SrsAmf0Size
::
utf8
(
"params"
)
+
SrsAmf0Size
::
ecma_
array
(
params
);
o
->
set
(
"params"
,
params
);
EXPECT_EQ
(
size
,
SrsAmf0Size
::
array
(
o
));
EXPECT_EQ
(
size
,
SrsAmf0Size
::
ecma_
array
(
o
));
}
}
...
...
@@ -693,5 +693,40 @@ VOID TEST(AMF0Test, AnyAssert)
srs_freep
(
o
);
}
//
// any convert
if
(
true
)
{
o
=
SrsAmf0Any
::
str
();
SrsAutoFree
(
SrsAmf0Any
,
o
,
false
);
EXPECT_TRUE
(
o
->
is_string
());
}
if
(
true
)
{
o
=
SrsAmf0Any
::
number
();
SrsAutoFree
(
SrsAmf0Any
,
o
,
false
);
EXPECT_TRUE
(
o
->
is_number
());
}
if
(
true
)
{
o
=
SrsAmf0Any
::
boolean
();
SrsAutoFree
(
SrsAmf0Any
,
o
,
false
);
EXPECT_TRUE
(
o
->
is_boolean
());
}
if
(
true
)
{
o
=
SrsAmf0Any
::
null
();
SrsAutoFree
(
SrsAmf0Any
,
o
,
false
);
EXPECT_TRUE
(
o
->
is_null
());
}
if
(
true
)
{
o
=
SrsAmf0Any
::
undefined
();
SrsAutoFree
(
SrsAmf0Any
,
o
,
false
);
EXPECT_TRUE
(
o
->
is_undefined
());
}
if
(
true
)
{
o
=
SrsAmf0Any
::
object
();
SrsAutoFree
(
SrsAmf0Any
,
o
,
false
);
EXPECT_TRUE
(
o
->
is_object
());
}
if
(
true
)
{
o
=
SrsAmf0Any
::
ecma_array
();
SrsAutoFree
(
SrsAmf0Any
,
o
,
false
);
EXPECT_TRUE
(
o
->
is_ecma_array
());
}
}
...
...
请
注册
或
登录
后发表评论