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
92736db5
Commit
92736db5
authored
Jun 08, 2021
by
ziyue
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
适配zltoolkit
parent
5eb00d5f
隐藏空白字符变更
内嵌
并排
正在显示
11 个修改的文件
包含
25 行增加
和
22 行删除
+25
-22
3rdpart/ZLToolKit
+1
-1
server/WebApi.cpp
+6
-3
src/Http/WebSocketSession.h
+3
-3
src/Rtp/RtpSender.cpp
+1
-1
src/Rtp/RtpSession.cpp
+2
-2
src/Rtp/RtpSession.h
+1
-1
src/Rtsp/RtpMultiCaster.cpp
+1
-1
src/Rtsp/RtspPlayer.cpp
+2
-2
src/Rtsp/RtspPusher.cpp
+2
-2
src/Rtsp/RtspSession.cpp
+4
-4
tests/test_wsServer.cpp
+2
-2
没有找到文件。
ZLToolKit
@
58d0e6a4
Subproject commit
ca4985c2dc34426363c5ab4eb82f941bcd31cdc2
Subproject commit
58d0e6a4488a290e966b2a0535445dc75af0529c
server/WebApi.cpp
查看文件 @
92736db5
...
...
@@ -25,6 +25,7 @@
#include "Http/HttpRequester.h"
#include "Http/HttpSession.h"
#include "Network/TcpServer.h"
#include "Network/UdpServer.h"
#include "Player/PlayerProxy.h"
#include "Util/MD5.h"
#include "WebApi.h"
...
...
@@ -538,7 +539,7 @@ void installWebApi() {
uint16_t
local_port
=
allArgs
[
"local_port"
].
as
<
uint16_t
>
();
string
&
peer_ip
=
allArgs
[
"peer_ip"
];
SessionMap
::
Instance
().
for_each_session
([
&
](
const
string
&
id
,
const
Tcp
Session
::
Ptr
&
session
){
SessionMap
::
Instance
().
for_each_session
([
&
](
const
string
&
id
,
const
Session
::
Ptr
&
session
){
if
(
local_port
!=
0
&&
local_port
!=
session
->
get_local_port
()){
return
;
}
...
...
@@ -577,8 +578,8 @@ void installWebApi() {
string
&
peer_ip
=
allArgs
[
"peer_ip"
];
size_t
count_hit
=
0
;
list
<
Tcp
Session
::
Ptr
>
session_list
;
SessionMap
::
Instance
().
for_each_session
([
&
](
const
string
&
id
,
const
Tcp
Session
::
Ptr
&
session
){
list
<
Session
::
Ptr
>
session_list
;
SessionMap
::
Instance
().
for_each_session
([
&
](
const
string
&
id
,
const
Session
::
Ptr
&
session
){
if
(
local_port
!=
0
&&
local_port
!=
session
->
get_local_port
()){
return
;
}
...
...
@@ -1038,6 +1039,8 @@ void installWebApi() {
val
[
"data"
][
"TcpServer"
]
=
(
Json
::
UInt64
)(
ObjectStatistic
<
TcpServer
>::
count
());
val
[
"data"
][
"TcpSession"
]
=
(
Json
::
UInt64
)(
ObjectStatistic
<
TcpSession
>::
count
());
val
[
"data"
][
"UdpServer"
]
=
(
Json
::
UInt64
)(
ObjectStatistic
<
UdpServer
>::
count
());
val
[
"data"
][
"UdpSession"
]
=
(
Json
::
UInt64
)(
ObjectStatistic
<
UdpSession
>::
count
());
val
[
"data"
][
"TcpClient"
]
=
(
Json
::
UInt64
)(
ObjectStatistic
<
TcpClient
>::
count
());
val
[
"data"
][
"Socket"
]
=
(
Json
::
UInt64
)(
ObjectStatistic
<
Socket
>::
count
());
...
...
src/Http/WebSocketSession.h
查看文件 @
92736db5
...
...
@@ -104,9 +104,9 @@ public:
}
}
void
attachServer
(
const
Tcp
Server
&
server
)
override
{
void
attachServer
(
const
Server
&
server
)
override
{
HttpSessionType
::
attachServer
(
server
);
_weak_server
=
const_cast
<
Tcp
Server
&>
(
server
).
shared_from_this
();
_weak_server
=
const_cast
<
Server
&>
(
server
).
shared_from_this
();
}
protected
:
...
...
@@ -226,7 +226,7 @@ protected:
private
:
string
_payload_cache
;
string
_payload_section
;
weak_ptr
<
Tcp
Server
>
_weak_server
;
weak_ptr
<
Server
>
_weak_server
;
TcpSession
::
Ptr
_session
;
Creator
_creator
;
};
...
...
src/Rtp/RtpSender.cpp
查看文件 @
92736db5
...
...
@@ -54,7 +54,7 @@ void RtpSender::startSend(const string &dst_url, uint16_t dst_port, bool is_udp,
cb
(
local_port
,
SockException
());
auto
strong_self
=
weak_self
.
lock
();
if
(
strong_self
)
{
strong_self
->
_socket
->
setSe
ndPeerAddr
(
&
addr
);
strong_self
->
_socket
->
bi
ndPeerAddr
(
&
addr
);
strong_self
->
onConnect
();
}
});
...
...
src/Rtp/RtpSession.cpp
查看文件 @
92736db5
...
...
@@ -17,8 +17,8 @@ namespace mediakit{
const
string
RtpSession
::
kStreamID
=
"stream_id"
;
void
RtpSession
::
attachServer
(
const
Tcp
Server
&
server
)
{
_stream_id
=
const_cast
<
Tcp
Server
&>
(
server
)[
kStreamID
];
void
RtpSession
::
attachServer
(
const
Server
&
server
)
{
_stream_id
=
const_cast
<
Server
&>
(
server
)[
kStreamID
];
}
RtpSession
::
RtpSession
(
const
Socket
::
Ptr
&
sock
)
:
TcpSession
(
sock
)
{
...
...
src/Rtp/RtpSession.h
查看文件 @
92736db5
...
...
@@ -28,7 +28,7 @@ public:
void
onRecv
(
const
Buffer
::
Ptr
&
)
override
;
void
onError
(
const
SockException
&
err
)
override
;
void
onManager
()
override
;
void
attachServer
(
const
Tcp
Server
&
server
)
override
;
void
attachServer
(
const
Server
&
server
)
override
;
protected
:
// 通知其停止推流
...
...
src/Rtsp/RtpMultiCaster.cpp
查看文件 @
92736db5
...
...
@@ -127,7 +127,7 @@ RtpMultiCaster::RtpMultiCaster(SocketHelper &helper, const string &local_ip, con
//组播目标地址
peer
.
sin_addr
.
s_addr
=
htonl
(
*
_multicast_ip
);
bzero
(
&
(
peer
.
sin_zero
),
sizeof
peer
.
sin_zero
);
_udp_sock
[
i
]
->
setSe
ndPeerAddr
((
struct
sockaddr
*
)
&
peer
);
_udp_sock
[
i
]
->
bi
ndPeerAddr
((
struct
sockaddr
*
)
&
peer
);
}
_rtp_reader
=
src
->
getRing
()
->
attach
(
helper
.
getPoller
());
...
...
src/Rtsp/RtspPlayer.cpp
查看文件 @
92736db5
...
...
@@ -306,7 +306,7 @@ void RtspPlayer::handleResSETUP(const Parser &parser, unsigned int track_idx) {
rtpto
.
sin_port
=
ntohs
(
rtp_port
);
rtpto
.
sin_family
=
AF_INET
;
rtpto
.
sin_addr
.
s_addr
=
inet_addr
(
get_peer_ip
().
data
());
pRtpSockRef
->
setSe
ndPeerAddr
((
struct
sockaddr
*
)
&
(
rtpto
));
pRtpSockRef
->
bi
ndPeerAddr
((
struct
sockaddr
*
)
&
(
rtpto
));
//发送rtp打洞包
pRtpSockRef
->
send
(
"
\xce\xfa\xed\xfe
"
,
4
);
...
...
@@ -314,7 +314,7 @@ void RtspPlayer::handleResSETUP(const Parser &parser, unsigned int track_idx) {
rtpto
.
sin_port
=
ntohs
(
rtcp_port
);
rtpto
.
sin_family
=
AF_INET
;
rtpto
.
sin_addr
.
s_addr
=
inet_addr
(
get_peer_ip
().
data
());
pRtcpSockRef
->
setSe
ndPeerAddr
((
struct
sockaddr
*
)
&
(
rtpto
));
pRtcpSockRef
->
bi
ndPeerAddr
((
struct
sockaddr
*
)
&
(
rtpto
));
}
auto
srcIP
=
inet_addr
(
get_peer_ip
().
data
());
...
...
src/Rtsp/RtspPusher.cpp
查看文件 @
92736db5
...
...
@@ -313,13 +313,13 @@ void RtspPusher::handleResSetup(const Parser &parser, unsigned int track_idx) {
rtpto
.
sin_port
=
ntohs
(
rtp_port
);
rtpto
.
sin_family
=
AF_INET
;
rtpto
.
sin_addr
.
s_addr
=
inet_addr
(
get_peer_ip
().
data
());
rtp_sock
->
setSe
ndPeerAddr
((
struct
sockaddr
*
)
&
(
rtpto
));
rtp_sock
->
bi
ndPeerAddr
((
struct
sockaddr
*
)
&
(
rtpto
));
//设置rtcp发送目标,为后续发送rtcp做准备
rtpto
.
sin_port
=
ntohs
(
rtcp_port
);
rtpto
.
sin_family
=
AF_INET
;
rtpto
.
sin_addr
.
s_addr
=
inet_addr
(
get_peer_ip
().
data
());
rtcp_sock
->
setSe
ndPeerAddr
((
struct
sockaddr
*
)
&
(
rtpto
));
rtcp_sock
->
bi
ndPeerAddr
((
struct
sockaddr
*
)
&
(
rtpto
));
auto
srcIP
=
inet_addr
(
get_peer_ip
().
data
());
weak_ptr
<
RtspPusher
>
weakSelf
=
dynamic_pointer_cast
<
RtspPusher
>
(
shared_from_this
());
...
...
src/Rtsp/RtspSession.cpp
查看文件 @
92736db5
...
...
@@ -686,14 +686,14 @@ void RtspSession::handleReq_Setup(const Parser &parser) {
peerAddr
.
sin_port
=
htons
(
ui16RtpPort
);
peerAddr
.
sin_addr
.
s_addr
=
inet_addr
(
get_peer_ip
().
data
());
bzero
(
&
(
peerAddr
.
sin_zero
),
sizeof
peerAddr
.
sin_zero
);
pr
.
first
->
setSe
ndPeerAddr
((
struct
sockaddr
*
)
(
&
peerAddr
));
pr
.
first
->
bi
ndPeerAddr
((
struct
sockaddr
*
)
(
&
peerAddr
));
//设置rtcp发送目标地址
peerAddr
.
sin_family
=
AF_INET
;
peerAddr
.
sin_port
=
htons
(
ui16RtcpPort
);
peerAddr
.
sin_addr
.
s_addr
=
inet_addr
(
get_peer_ip
().
data
());
bzero
(
&
(
peerAddr
.
sin_zero
),
sizeof
peerAddr
.
sin_zero
);
pr
.
second
->
setSe
ndPeerAddr
((
struct
sockaddr
*
)
(
&
peerAddr
));
pr
.
second
->
bi
ndPeerAddr
((
struct
sockaddr
*
)
(
&
peerAddr
));
//尝试获取客户端nat映射地址
startListenPeerUdpData
(
trackIdx
);
...
...
@@ -925,13 +925,13 @@ void RtspSession::onRcvPeerUdpData(int interleaved, const Buffer::Ptr &buf, cons
}
else
if
(
!
_udp_connected_flags
.
count
(
interleaved
))
{
//这是rtsp播放器的rtp打洞包
_udp_connected_flags
.
emplace
(
interleaved
);
_rtp_socks
[
interleaved
/
2
]
->
setSe
ndPeerAddr
(
&
addr
);
_rtp_socks
[
interleaved
/
2
]
->
bi
ndPeerAddr
(
&
addr
);
}
}
else
{
//rtcp包
if
(
!
_udp_connected_flags
.
count
(
interleaved
))
{
_udp_connected_flags
.
emplace
(
interleaved
);
_rtcp_socks
[(
interleaved
-
1
)
/
2
]
->
setSe
ndPeerAddr
(
&
addr
);
_rtcp_socks
[(
interleaved
-
1
)
/
2
]
->
bi
ndPeerAddr
(
&
addr
);
}
onRtcpPacket
((
interleaved
-
1
)
/
2
,
_sdp_track
[(
interleaved
-
1
)
/
2
],
buf
->
data
(),
buf
->
size
());
}
...
...
tests/test_wsServer.cpp
查看文件 @
92736db5
...
...
@@ -30,7 +30,7 @@ public:
DebugL
;
}
void
attachServer
(
const
Tcp
Server
&
server
)
override
{
void
attachServer
(
const
Server
&
server
)
override
{
DebugL
<<
getIdentifier
()
<<
" "
<<
TcpSession
::
getIdentifier
();
}
void
onRecv
(
const
Buffer
::
Ptr
&
buffer
)
override
{
...
...
@@ -57,7 +57,7 @@ public:
DebugL
;
}
void
attachServer
(
const
Tcp
Server
&
server
)
override
{
void
attachServer
(
const
Server
&
server
)
override
{
DebugL
<<
getIdentifier
()
<<
" "
<<
TcpSession
::
getIdentifier
();
}
void
onRecv
(
const
Buffer
::
Ptr
&
buffer
)
override
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论