Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Z
ZLMediaKit
概览
Overview
Details
Activity
Cycle Analytics
版本库
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
问题
0
Issues
0
列表
Board
标记
里程碑
合并请求
0
Merge Requests
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
Snippets
成员
Collapse sidebar
Close sidebar
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
张翔宇
ZLMediaKit
Commits
5064137a
Commit
5064137a
authored
4 years ago
by
xiongziliang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
简化代码
parent
5b4fe604
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
23 行增加
和
32 行删除
+23
-32
tests/test_rtp.cpp
+23
-32
没有找到文件。
tests/test_rtp.cpp
查看文件 @
5064137a
...
@@ -28,55 +28,47 @@ using namespace mediakit;
...
@@ -28,55 +28,47 @@ using namespace mediakit;
#if defined(ENABLE_RTPPROXY)
#if defined(ENABLE_RTPPROXY)
static
bool
loadFile
(
const
char
*
path
){
static
bool
loadFile
(
const
char
*
path
){
std
::
shared_ptr
<
FILE
>
fp
(
fopen
(
path
,
"rb"
),
[](
FILE
*
fp
)
{
FILE
*
fp
=
fopen
(
path
,
"rb"
);
if
(
fp
)
{
fclose
(
fp
);
}
});
if
(
!
fp
)
{
if
(
!
fp
)
{
WarnL
<<
"open file failed:"
<<
path
;
WarnL
<<
"open file failed:"
<<
path
;
return
false
;
return
false
;
}
}
semaphore
sem
;
uint16_t
len
=
0
;
uint32_t
timeStamp_last
=
0
;
uint32_t
timeStamp_last
=
0
;
uint16_t
len
;
char
rtp
[
2
*
1024
];
char
rtp
[
2
*
1024
];
struct
sockaddr
addr
=
{
0
};
struct
sockaddr
addr
=
{
0
};
auto
sock
=
Socket
::
createSocket
();
auto
sock
=
Socket
::
createSocket
();
size_t
total_size
=
0
;
sock
->
getPoller
()
->
doDelayTask
(
0
,
[
&
]()
mutable
->
uint64_t
{
while
(
true
)
{
if
(
2
!=
fread
(
&
len
,
1
,
2
,
fp
.
get
()
))
{
if
(
2
!=
fread
(
&
len
,
1
,
2
,
fp
))
{
WarnL
;
WarnL
;
sem
.
post
();
break
;
return
0
;
}
}
len
=
ntohs
(
len
);
len
=
ntohs
(
len
);
if
(
len
<
12
||
len
>
sizeof
(
rtp
))
{
if
(
len
<
12
||
len
>
sizeof
(
rtp
))
{
WarnL
<<
len
;
WarnL
<<
len
;
sem
.
post
();
break
;
return
0
;
}
}
if
(
len
!=
fread
(
rtp
,
1
,
len
,
fp
.
get
()
))
{
if
(
len
!=
fread
(
rtp
,
1
,
len
,
fp
))
{
WarnL
;
WarnL
;
sem
.
post
();
break
;
return
0
;
}
}
total_size
+=
len
;
uint32_t
timeStamp
;
uint32_t
timeStamp
;
RtpSelector
::
Instance
().
inputRtp
(
sock
,
rtp
,
len
,
&
addr
,
&
timeStamp
);
RtpSelector
::
Instance
().
inputRtp
(
sock
,
rtp
,
len
,
&
addr
,
&
timeStamp
);
if
(
timeStamp_last
)
{
auto
diff
=
timeStamp
-
timeStamp_last
;
auto
diff
=
timeStamp
-
timeStamp_last
;
if
(
diff
>
0
&&
diff
<
500
)
{
if
(
diff
>
0
&&
diff
<
500
)
{
usleep
(
diff
*
1000
);
timeStamp_last
=
timeStamp
;
}
else
{
return
diff
;
usleep
(
1
*
1000
);
}
}
}
timeStamp_last
=
timeStamp
;
timeStamp_last
=
timeStamp
;
return
1
;
}
})
;
WarnL
<<
total_size
/
1024
<<
"KB"
;
sem
.
wait
(
);
fclose
(
fp
);
return
true
;
return
true
;
}
}
#endif//#if defined(ENABLE_RTPPROXY)
#endif//#if defined(ENABLE_RTPPROXY)
...
@@ -97,11 +89,10 @@ int main(int argc,char *argv[]) {
...
@@ -97,11 +89,10 @@ int main(int argc,char *argv[]) {
//此处选择是否导出调试文件
//此处选择是否导出调试文件
// mINI::Instance()[RtpProxy::kDumpDir] = "/Users/xzl/Desktop/";
// mINI::Instance()[RtpProxy::kDumpDir] = "/Users/xzl/Desktop/";
if
(
argc
==
2
)
{
if
(
argc
==
2
)
loadFile
(
argv
[
1
]);
loadFile
(
argv
[
1
]);
}
else
{
else
ErrorL
<<
"parameter error."
;
ErrorL
<<
"parameter error."
;
}
#else
#else
ErrorL
<<
"please ENABLE_RTPPROXY and then test"
;
ErrorL
<<
"please ENABLE_RTPPROXY and then test"
;
#endif//#if defined(ENABLE_RTPPROXY)
#endif//#if defined(ENABLE_RTPPROXY)
...
...
This diff is collapsed.
Click to expand it.
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论