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
082efb12
Commit
082efb12
authored
6 years ago
by
xiongziliang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
适配ZLToolKit最新代码(优化发送性能)
parent
748adadd
隐藏空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
10 行增加
和
20 行删除
+10
-20
ZLToolKit
+1
-1
src/Http/HttpSession.cpp
+0
-3
src/Rtmp/RtmpSession.cpp
+0
-2
src/Rtsp/RtpBroadCaster.cpp
+2
-1
src/Rtsp/RtspPlayer.cpp
+2
-1
src/Rtsp/RtspSession.cpp
+5
-11
src/Rtsp/RtspSession.h
+0
-1
没有找到文件。
ZLToolKit
@
5d0db2bc
Subproject commit
034f0c2911239395030188c40e5b518f7b697b8d
Subproject commit
5d0db2bcd026d6c00423b63d5ad45ef33e717f34
This diff is collapsed.
Click to expand it.
src/Http/HttpSession.cpp
查看文件 @
082efb12
...
...
@@ -100,9 +100,6 @@ get_mime_type(const char* name) {
HttpSession
::
HttpSession
(
const
Socket
::
Ptr
&
pSock
)
:
TcpSession
(
pSock
)
{
//设置10秒发送缓存
pSock
->
setSendBufSecond
(
10
);
//设置15秒发送超时时间
pSock
->
setSendTimeOutSecond
(
15
);
...
...
This diff is collapsed.
Click to expand it.
src/Rtmp/RtmpSession.cpp
查看文件 @
082efb12
...
...
@@ -35,8 +35,6 @@ static int kSockFlags = SOCKET_DEFAULE_FLAGS | FLAG_MORE;
RtmpSession
::
RtmpSession
(
const
Socket
::
Ptr
&
pSock
)
:
TcpSession
(
pSock
)
{
DebugL
<<
get_peer_ip
();
//设置10秒发送缓存
pSock
->
setSendBufSecond
(
10
);
//设置15秒发送超时时间
pSock
->
setSendTimeOutSecond
(
15
);
}
...
...
This diff is collapsed.
Click to expand it.
src/Rtsp/RtpBroadCaster.cpp
查看文件 @
082efb12
...
...
@@ -122,6 +122,7 @@ RtpBroadCaster::RtpBroadCaster(const string &strLocalIp,const string &strVhost,c
peerAddr
.
sin_port
=
htons
(
_apUdpSock
[
i
]
->
get_local_port
());
peerAddr
.
sin_addr
.
s_addr
=
htonl
(
*
_multiAddr
);
bzero
(
&
(
peerAddr
.
sin_zero
),
sizeof
peerAddr
.
sin_zero
);
_apUdpSock
[
i
]
->
setSendPeerAddr
((
struct
sockaddr
*
)
&
peerAddr
);
}
_pReader
=
src
->
getRing
()
->
attach
();
_pReader
->
setReadCB
([
this
](
const
RtpPacket
::
Ptr
&
pkt
){
...
...
@@ -129,7 +130,7 @@ RtpBroadCaster::RtpBroadCaster(const string &strLocalIp,const string &strVhost,c
auto
&
pSock
=
_apUdpSock
[
i
];
auto
&
peerAddr
=
_aPeerUdpAddr
[
i
];
BufferRtp
::
Ptr
buffer
(
new
BufferRtp
(
pkt
,
4
));
pSock
->
send
(
buffer
,
SOCKET_DEFAULE_FLAGS
,(
struct
sockaddr
*
)(
&
peerAddr
)
);
pSock
->
send
(
buffer
);
});
_pReader
->
setDetachCB
([
this
](){
unordered_map
<
void
*
,
onDetach
>
_mapDetach_copy
;
...
...
This diff is collapsed.
Click to expand it.
src/Rtsp/RtspPlayer.cpp
查看文件 @
082efb12
...
...
@@ -317,7 +317,8 @@ void RtspPlayer::handleResSETUP(const Parser &parser, unsigned int uiTrackIndex)
rtpto
.
sin_port
=
ntohs
(
port
);
rtpto
.
sin_family
=
AF_INET
;
rtpto
.
sin_addr
.
s_addr
=
inet_addr
(
get_peer_ip
().
c_str
());
pUdpSockRef
->
send
(
"
\xce\xfa\xed\xfe
"
,
4
,
SOCKET_DEFAULE_FLAGS
,
(
struct
sockaddr
*
)
&
rtpto
);
pUdpSockRef
->
setSendPeerAddr
((
struct
sockaddr
*
)
&
(
rtpto
));
pUdpSockRef
->
send
(
"
\xce\xfa\xed\xfe
"
,
4
);
}
}
...
...
This diff is collapsed.
Click to expand it.
src/Rtsp/RtspSession.cpp
查看文件 @
082efb12
/*
/*
* MIT License
*
* Copyright (c) 2016 xiongziliang <771730766@qq.com>
...
...
@@ -73,8 +73,6 @@ static recursive_mutex g_mtxGetter;
static
int
kSockFlags
=
SOCKET_DEFAULE_FLAGS
|
FLAG_MORE
;
RtspSession
::
RtspSession
(
const
Socket
::
Ptr
&
pSock
)
:
TcpSession
(
pSock
)
{
//设置10秒发送缓存
pSock
->
setSendBufSecond
(
10
);
//设置15秒发送超时时间
pSock
->
setSendTimeOutSecond
(
15
);
...
...
@@ -604,7 +602,7 @@ bool RtspSession::handleReq_Setup(const Parser &parser) {
peerAddr
.
sin_port
=
htons
(
ui16PeerPort
);
peerAddr
.
sin_addr
.
s_addr
=
inet_addr
(
get_peer_ip
().
data
());
bzero
(
&
(
peerAddr
.
sin_zero
),
sizeof
peerAddr
.
sin_zero
);
_apPeerRtpPortAddr
[
trackIdx
].
reset
((
struct
sockaddr
*
)
(
new
struct
sockaddr_in
(
peerAddr
)
));
pSockRtp
->
setSendPeerAddr
((
struct
sockaddr
*
)(
&
peerAddr
));
//尝试获取客户端nat映射地址
startListenPeerUdpData
(
trackIdx
);
//InfoL << "分配端口:" << srv_port;
...
...
@@ -992,13 +990,9 @@ inline void RtspSession::sendRtpPacket(const RtpPacket::Ptr & pkt) {
shutdown
();
return
;
}
auto
&
peerAddr
=
_apPeerRtpPortAddr
[
iTrackIndex
];
if
(
!
peerAddr
)
{
return
;
}
BufferRtp
::
Ptr
buffer
(
new
BufferRtp
(
pkt
,
4
));
BufferRtp
::
Ptr
buffer
(
new
BufferRtp
(
pkt
,
4
));
_ui64TotalBytes
+=
buffer
->
size
();
pSock
->
send
(
buffer
,
SOCKET_DEFAULE_FLAGS
,
peerAddr
.
get
()
);
pSock
->
send
(
buffer
);
}
break
;
default
:
...
...
@@ -1028,7 +1022,7 @@ inline void RtspSession::onRcvPeerUdpData(int iTrackIdx, const Buffer::Ptr &pBuf
return
;
}
//设置真实的客户端nat映射端口号
_ap
PeerRtpPortAddr
[
iTrackIdx
/
2
].
reset
(
new
struct
sockaddr
(
addr
)
);
_ap
RtpSock
[
iTrackIdx
/
2
]
->
setSendPeerAddr
(
&
addr
);
_abGotPeerUdp
[
iTrackIdx
/
2
]
=
true
;
_bGotAllPeerUdp
=
true
;
//先假设获取到完整的rtp探测包
for
(
unsigned
int
i
=
0
;
i
<
_aTrackInfo
.
size
();
i
++
)
{
...
...
This diff is collapsed.
Click to expand it.
src/Rtsp/RtspSession.h
查看文件 @
082efb12
...
...
@@ -167,7 +167,6 @@ private:
bool
_abGotPeerUdp
[
2
]
=
{
false
,
false
};
//获取客户端udp端口计数
Socket
::
Ptr
_apRtpSock
[
2
];
//RTP端口,trackid idx 为数组下标
Socket
::
Ptr
_apRtcpSock
[
2
];
//RTCP端口,trackid idx 为数组下标
std
::
shared_ptr
<
struct
sockaddr
>
_apPeerRtpPortAddr
[
2
];
//播放器接收RTP的地址,trackid idx 为数组下标
//RTP over udp_multicast
RtpBroadCaster
::
Ptr
_pBrdcaster
;
...
...
This diff is collapsed.
Click to expand it.
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论