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
2015-01-07 15:01:58 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
5661fc2676a3b2901d5c1592e0865cde82adca69
5661fc26
1 parent
a402ca71
refine dvr and rtmp dump, write the original data.
显示空白字符变更
内嵌
并排对比
正在显示
6 个修改的文件
包含
15 行增加
和
10 行删除
trunk/src/app/srs_app_dvr.cpp
trunk/src/kernel/srs_kernel_flv.cpp
trunk/src/kernel/srs_kernel_flv.hpp
trunk/src/libs/srs_librtmp.cpp
trunk/src/libs/srs_librtmp.hpp
trunk/src/utest/srs_utest_kernel.cpp
trunk/src/app/srs_app_dvr.cpp
查看文件 @
5661fc2
...
...
@@ -273,7 +273,7 @@ int SrsDvrPlan::on_meta_data(SrsOnMetaDataPacket* metadata)
}
SrsAutoFree
(
char
,
payload
);
if
((
ret
=
enc
->
write_metadata
(
payload
,
size
))
!=
ERROR_SUCCESS
)
{
if
((
ret
=
enc
->
write_metadata
(
18
,
payload
,
size
))
!=
ERROR_SUCCESS
)
{
return
ret
;
}
...
...
trunk/src/kernel/srs_kernel_flv.cpp
查看文件 @
5661fc2
...
...
@@ -110,7 +110,7 @@ int SrsFlvEncoder::write_header(char flv_header[9])
return
ret
;
}
int
SrsFlvEncoder
::
write_metadata
(
char
*
data
,
int
size
)
int
SrsFlvEncoder
::
write_metadata
(
char
type
,
char
*
data
,
int
size
)
{
int
ret
=
ERROR_SUCCESS
;
...
...
@@ -118,7 +118,7 @@ int SrsFlvEncoder::write_metadata(char* data, int size)
// 11 bytes tag header
static
char
tag_header
[]
=
{
(
char
)
18
,
// TagType UB [5], 18 = script data
(
char
)
type
,
// TagType UB [5], 18 = script data
(
char
)
0x00
,
(
char
)
0x00
,
(
char
)
0x00
,
// DataSize UI24 Length of the message.
(
char
)
0x00
,
(
char
)
0x00
,
(
char
)
0x00
,
// Timestamp UI24 Time in milliseconds at which the data in this tag applies.
(
char
)
0x00
,
// TimestampExtended UI8
...
...
trunk/src/kernel/srs_kernel_flv.hpp
查看文件 @
5661fc2
...
...
@@ -66,12 +66,13 @@ public:
virtual
int
write_header
(
char
flv_header
[
9
]);
/**
* write flv metadata.
* @param type, the type of data, or other message type.
* @param data, the amf0 metadata which serialize from:
* AMF0 string: onMetaData,
* AMF0 object: the metadata object.
* @remark assert data is not NULL.
*/
virtual
int
write_metadata
(
char
*
data
,
int
size
);
virtual
int
write_metadata
(
char
type
,
char
*
data
,
int
size
);
/**
* write audio/video packet.
* @remark assert data is not NULL.
...
...
trunk/src/libs/srs_librtmp.cpp
查看文件 @
5661fc2
...
...
@@ -843,8 +843,11 @@ int srs_rtmp_read_packet(srs_rtmp_t rtmp, char* type, u_int32_t* timestamp, char
// detach bytes from packet.
msg
->
payload
=
NULL
;
}
else
{
// ignore and continue
continue
;
*
type
=
msg
->
header
.
message_type
;
*
data
=
(
char
*
)
msg
->
payload
;
*
size
=
(
int
)
msg
->
size
;
// detach bytes from packet.
msg
->
payload
=
NULL
;
}
// got expected message.
...
...
@@ -1714,7 +1717,7 @@ int srs_flv_write_tag(srs_flv_t flv, char type, int32_t time, char* data, int si
}
else
if
(
type
==
SRS_RTMP_TYPE_VIDEO
)
{
return
context
->
enc
.
write_video
(
time
,
data
,
size
);
}
else
{
return
context
->
enc
.
write_metadata
(
data
,
size
);
return
context
->
enc
.
write_metadata
(
type
,
data
,
size
);
}
return
ret
;
...
...
@@ -2476,8 +2479,8 @@ int srs_human_print_rtmp_packet(char type, u_int32_t timestamp, char* data, int
srs_freep
(
amf0_str
);
}
}
else
{
srs_human_trace
(
"Unknown packet type=%s, dts=%d, pts=%d, size=%d"
,
srs_human_flv_tag_type2string
(
type
),
timestamp
,
pts
,
size
);
srs_human_trace
(
"Unknown packet type=%#x, dts=%d, pts=%d, size=%d"
,
type
,
timestamp
,
pts
,
size
);
}
return
ret
;
...
...
trunk/src/libs/srs_librtmp.hpp
查看文件 @
5661fc2
...
...
@@ -241,6 +241,7 @@ extern int srs_rtmp_bandwidth_check(srs_rtmp_t rtmp,
* SRS_RTMP_TYPE_AUDIO, FlvTagAudio
* SRS_RTMP_TYPE_VIDEO, FlvTagVideo
* SRS_RTMP_TYPE_SCRIPT, FlvTagScript
* otherswise, invalid type.
* @param timestamp, in ms, overflow in 50days
* @param data, the packet data, according to type:
* FlvTagAudio, @see "E.4.2.1 AUDIODATA"
...
...
trunk/src/utest/srs_utest_kernel.cpp
查看文件 @
5661fc2
...
...
@@ -460,7 +460,7 @@ VOID TEST(KernelFlvTest, FlvEncoderWriteMetadata)
};
char
pts
[]
=
{
(
char
)
0x00
,
(
char
)
0x00
,
(
char
)
0x00
,
(
char
)
19
};
ASSERT_TRUE
(
ERROR_SUCCESS
==
enc
.
write_metadata
(
md
,
8
));
ASSERT_TRUE
(
ERROR_SUCCESS
==
enc
.
write_metadata
(
18
,
md
,
8
));
ASSERT_TRUE
(
11
+
8
+
4
==
fs
.
offset
);
EXPECT_TRUE
(
srs_bytes_equals
(
tag_header
,
fs
.
data
,
11
));
...
...
请
注册
或
登录
后发表评论