Commit Graph

266 Commits

Author SHA1 Message Date
taotaobujue
7865f2c360
修复udp单端口模式下rtp鉴权失败后无法关闭流的问题(#2985)
如果rtp推流鉴权失败,在udp模式下延时断开连接,等待超时自动关闭,防止频繁创建销毁RtpSession对象,
tcp模式则立即断开链接。
2023-11-15 11:02:12 +08:00
xiongziliang
4ea7565344 修复startSendRtp接口开启rtcp时触发断言异常的bug
此问题由pr(#2924)引入
2023-11-12 19:55:18 +08:00
xbpeng121
884f1d760b
提高对不规范国标TCP推流的兼容性 (#2966)
问题: 建立tcp链接后,并不是从rtp包头开始发数据,所以无法解析出正确的包。
解决方案:在tcp数据报文中搜索0x000001bb(关键帧的system header),找到后偏移固定字节恢复rtp包头。
2023-11-10 21:53:43 +08:00
waken
6888f20d74
新增openRtpServerMultiplex接口,支持创建多路复用RTP服务器端口 (#2954)
#2953
2023-11-09 11:26:13 +08:00
xiongziliang
2628690673 国标udp多端口模式支持收到sr rtcp后回复rr rtcp
确保国标停止rtp推流后也可以仅靠rtcp保活
2023-11-05 13:26:42 +08:00
leibnewton
0a19627d86
修复startSendRtp成功后udp套接字被关闭的问题 (#2468 #2924)
对端端口未打开,udp得到connection refused的错误而关闭。
2023-10-25 15:14:08 +08:00
xia-chu
ebde21a314 修复openRtpServer开启tcp模式后打开端口失败的bug
两次监听同个tcp端口将导致打开tcp模式失败
2023-10-23 20:49:54 +08:00
ljx0305
7ee2d66eaa
统一代码命名风格 (#2910)
openRtpServer时,如果开启tcp模式,从tcp端口池获取
2023-10-19 17:55:30 +08:00
xia-chu
d286ac1d73 NoticeCenter支持安全类型转换,解决监听者参数类型不一致导致的bug 2023-09-02 11:22:28 +08:00
夏楚
00b3c5184a
修复RtpProcess析构中抛异常导致崩溃的问题 (#2714)
WarnP(this) 时会调用get_peer_ip()接口,此接口可能抛异常;
析构中抛异常可导致程序直接退出。
2023-07-29 13:24:07 +08:00
夏楚
5ca4ed53b2
防止析构函数抛异常导致崩溃问题 (#2546) 2023-06-11 22:07:15 +08:00
Johnny
0232caf068 add MediaTuple 2023-05-30 11:01:27 +08:00
dengjfzh
18dbbc8d19
降低TCP RTP 2字节头被误判为EHOME头的风险 (#2502)
当TCP RTP包大小为256字节时,可能触发RtpSplitter::onSearchPacketTail误判为EHOME格式。
这个修改一旦检测到数据不是EHOME格式,则后续不再进行尝试,以减小误判的风险。
2023-05-27 22:27:10 +08:00
dengjfzh
032a2ac91d
修复TCP RTP 2字节头被误判为4字节头的问题 (#2499)
当RFC4571封装的RTP包大小在0x2400到0x24ff之间时,会被误认为是RTSP Interleaved
封装的数据。因为0x24正好是'$'的ASCII码,而RtpSplitter::onSearchPacketTail通过'$'来识别RTSP
Interleaved数据。暂时没有想到什么好的办法能够百分之百的正确区分RFC4571数据和RTSP
Interleaved数据。增加一个状态变量记录之前的状态,一旦检测到数据不是RTSP
Interleaved格式,则后续不再进行尝试,以减小误判的可能性。
2023-05-26 17:34:47 +08:00
Johnny
bfec1b1e0e fix typo 2023-05-02 20:41:13 +08:00
xia-chu
d2349f01bd 使用static_pointer_cast优化性能 2023-04-28 22:04:38 +08:00
xiongziliang
c8a20f85f6 直接打印SockException类 2023-04-23 00:10:18 +08:00
xiongziliang
de8249592e Session类构造析构跟踪日志统一在底层网络框架打印 2023-04-22 23:58:17 +08:00
xiongziliang
7a95c87a29 优化代码
空构造和析构函数替换为缺省
去除多余分号
2023-04-22 21:59:26 +08:00
xiongziliang
b5a0a2e858 新增动态更新rtp server过滤ssrc接口updateRtpServerSSRC(#2390) 2023-04-21 23:08:48 +08:00
Dw9
978143c86d
rtp级联(ps/ts/es)新增支持gop缓存功能 (#2395)
该修改主要解决rtp级联(调用startSendRtp接口)未做gop缓存导致上级无法秒开的问题。
同时通过RingBuffer对象线程隔离的特性,实现了在断连续推场景下归属线程切换导致的线程安全问题。
用户如未使用rtp级联功能,请修改配置文件关闭GOP缓存(rtp_proxy.gop_cache=0)以便节省内存。

---------

Co-authored-by: 夏楚 <771730766@qq.com>
2023-04-17 12:19:24 +08:00
王成
3a6f660619
新增Assert异常类型,解决国标重复推流不注销问题 (#2393)
Co-authored-by: wangcheng <wangcheng@xwmail.com>
Co-authored-by: xia-chu <771730766@qq.com>
2023-04-14 15:10:48 +08:00
xiongziliang
384c8677ea startSendRtp接口在发送ps时支持只发送音频: #2217 2023-04-01 23:48:57 +08:00
ljx0305
1dec350dcd
修正on_rtp_server_timeout hook时获取的端口非真实端口 (#2297)
在调用openRtpServer接口时,如果传入的端口为0(随机端口), 那么在触发on_rtp_server_timeout hook时的端口为0
2023-03-15 14:54:18 +08:00
xiongziliang
539d6299f0 rtp服务器单端口模式收到相同ssrc推流时延时关闭RtpSession对象(防止频繁创建销毁对象) 2023-02-28 22:56:29 +08:00
xiongziliang
c2e1083493 复用rtp/rtcp判断逻辑过滤非rtp包: #2247 2023-02-28 22:23:30 +08:00
xiongziliang
8f108395a5 rtp服务器过滤非rtp包: #2247
防止非法数据干扰后续处理逻辑对rtp ssrc/pt等的绑定
2023-02-26 21:13:49 +08:00
xiongziliang
5bcfba1da4 startSendRtpPassive接口新增连接超时参数:close_delay_ms 2023-02-17 23:02:09 +08:00
xiongziliang
8f0ba6988b openRtpServer接口新增only_audio参数,优化语音对讲场景 2023-02-17 22:48:39 +08:00
xiongziliang
44f4e9acd4 openRtpServer udp多端口模式默认绑定发送端地址,防止多路同时推流时ssrc冲突问题 2023-01-08 21:35:50 +08:00
xiongziliang
0374e7a660 startSendRtp接口支持同时接收流:#2109,#2149 2023-01-07 22:36:30 +08:00
ziyue
77e46353ce 新增支持mjpeg es rtp流
mpegts/g711 payload改成固定模式
2022-12-30 18:04:15 +08:00
老衲不出家
f05a9501fa
Unified code style (#2137) 2022-12-02 14:43:06 +08:00
mtdxc
754073918a
Header refactor (#2115)
* 优化MultiMediaSourceMuxer头文件包含

* 将MediaSinkDelegate和Demux移到MediaSink中

* MediaSource头文件重构, 独立出PacketCache.h
精简Frame和Track的头文件

* Rtmp头文件重构

* Rtsp头文件重构

* webrtc头文件重构

* 规范.h头文件包含,并将其移到.cpp中:
- 尽量不包含Common\config.h
- Util\File.h
- Rtsp/RtspPlayer.h
- Rtmp/RtmpPlayer.h

* 删除多余的Stamp.h和Base64包含
2022-11-29 11:07:13 +08:00
ziyue
188ee1f61a 消除编译警告 2022-11-19 09:37:49 +08:00
ziyue
68948288e0 TcpSession/UdpSession统一为Session类 2022-11-19 09:33:10 +08:00
ziyue
255ccb4265 精简rtp服务器相关代码 2022-11-18 16:43:00 +08:00
xiongguangjie
87353534af fix rtp server process removed server not clear 2022-11-14 14:04:57 +08:00
xiongziliang
946945ce7b 优化代码
整理代码
2022-11-12 22:06:09 +08:00
samosirl
6ffbcbfde5
优化Ehome协议兼容性 (#2063) 2022-11-12 21:03:54 +08:00
夏楚
a37268f003 格式化代码 2022-11-12 01:52:49 +00:00
xiongguangjie
bc63142712 add rtp server timeout hook 2022-11-10 16:58:02 +08:00
Aven
af554bc376
update media-server (#2075)
* fix c2065 and c2051 error on windows, and the head file mpeg-ts-proto.h is also deprecated

* update media-server to 357ef88
2022-11-09 17:44:38 +08:00
ziyue
5877d3942e RtpServer确保超时回收 2022-11-01 17:54:41 +08:00
ziyue
2cdeddeb2c RtpServer支持udp与tcp模式并存 2022-11-01 17:27:27 +08:00
ziyue
d04761c2c6 Merge branch 'FrameDispatcher_addDelegate_refactor' of github.com:mtdxc/ZLMediaKit 2022-11-01 16:36:43 +08:00
ziyue
bfe118d94e 修复RtpProcess析构导致的线程问题 2022-11-01 16:05:23 +08:00
ziyue
f5a032c9a0 Merge branch 'master' of github.com:ZLMediaKit/ZLMediaKit 2022-11-01 14:08:36 +08:00
cqm
ac3d7bd21f add addDelegate with std::function, remove FrameWriterInterfaceHelper 2022-11-01 12:03:04 +08:00
ziyue
520945c2e9 提高线程安全性 2022-11-01 10:53:38 +08:00