Commit Graph

595 Commits

Author SHA1 Message Date
老衲不出家
f05a9501fa
Unified code style (#2137) 2022-12-02 14:43:06 +08:00
monktan89
68ea5465cc 修复addStreamProxy后,马上startSendRtp,触发的无人观看事件回调是MediaSourceNull的信息,导致无法关闭流bug(#2120) 2022-11-29 11:33:16 +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
xiongziliang
50fa671564 修复析构中调用getOwnerPoller抛异常导致崩溃的bug:#2117 2022-11-26 10:16:47 +08:00
ziyue
68948288e0 TcpSession/UdpSession统一为Session类 2022-11-19 09:33:10 +08:00
xiongziliang
9bb6a2f828 全面整理转协议相关配置文件 2022-11-12 23:56:28 +08:00
xiongziliang
946945ce7b 优化代码
整理代码
2022-11-12 22:06:09 +08:00
xiongziliang
b54f50c7c0 修复hls流注销时相关bug:#2082 2022-11-12 09:57:47 +08:00
xiongguangjie
bc63142712 add rtp server timeout hook 2022-11-10 16:58:02 +08:00
xiongziliang
44fd6b86bc 完善版本信息 2022-11-06 00:38:14 +08:00
xiongziliang
0053148139 优化MultiMediaSourceMuxer相关代码 2022-11-05 20:47:33 +08:00
ziyue
d04761c2c6 Merge branch 'FrameDispatcher_addDelegate_refactor' of github.com:mtdxc/ZLMediaKit 2022-11-01 16:36:43 +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
xiongguangjie
0a71e06d4a united some code style 2022-10-19 14:55:39 +08:00
xiongguangjie
7b87985f74 Merge remote-tracking branch 'origin/master' 2022-10-19 14:27:49 +08:00
xiongguangjie
0d2e035215 rtsp and rtp h264 lowlatency mode config 2022-10-19 14:20:53 +08:00
ziyue
ff6e9f4fc7 修复流注销时,hls无法播完最后一个切片的问题: #1955 2022-10-18 19:23:20 +08:00
ziyue
ac1abb34da 新增媒体流flush机制:#1996 2022-10-16 19:54:17 +08:00
xiongguangjie
bbdcc44eb0 mute audio maker avoid uint32_t cycle and 8k aac a frame is 128ms 2022-10-11 16:53:27 +08:00
xiongziliang
c790254f46 修复关闭mp4录制不能触发无人观看事件问题:#2010 2022-10-06 13:06:54 +08:00
夏楚
037dd646d1
Merge pull request #1994 from Dw9/master
修复rtsp 推pcm L16, 空指针的异常
2022-09-26 10:27:30 +08:00
Dw9
6f1a45db8a 修复推rtsp L16崩溃 2022-09-25 12:13:09 +08:00
夏楚
b9a4b3e71a
消除编译警告 2022-09-24 19:07:45 +08:00
ziyue
15affeff1d 优化关闭媒体源相关逻辑: #1963 2022-09-18 20:36:47 +08:00
xiongziliang
12551be33c 提炼ProtocolOption赋值相关逻辑 2022-09-16 23:31:37 +08:00
custompal
08789454c3
rtsp支持指定播放单一track (#1937) 2022-09-13 16:27:00 +08:00
cqm
999e0b274e 简化代码:
- MediaSource引入shortUrl和getUrl来简化日志输出
- WebApi引入fillSockInfo
2022-09-07 11:47:15 +08:00
xiongziliang
5825f8b469 修复错误注释 2022-09-03 16:32:10 +08:00
xiongziliang
20f1275c58 rtsp拉流、rtp单端口推流新增支持获取丢包率: #1877 2022-09-03 16:32:09 +08:00
PioLing
0948a3df31
支持在addStreamProxy和on_publish中控制单个流是否开启时间戳覆盖 (#1930) 2022-09-03 09:54:09 +08:00
custompal
04aa3ef41f 增加获取媒体流播放器列表功能 2022-08-30 21:05:19 +08:00
xiongzilaing
679c79802f 整理媒体事件相关代码,删除无须重载时的多余代码逻辑 2022-08-28 17:25:56 +08:00
xiongziliang
6a4297845f 新增发送rtp被动关闭hook 2022-08-27 10:53:47 +08:00
xiongziliang
c2ab45f78d 完善线程安全设计 2022-08-27 10:17:06 +08:00
ziyue
208b0865bd 修复全局变量初始化顺序错乱导致崩溃的问题 2022-08-23 14:11:32 +08:00
xiongziliang
c6a0e3ad66 rtp发送启停支持触发观看人数统计事件 2022-08-20 13:16:25 +08:00
xiongziliang
9f0c15a4f0 startSendRtp接口支持rtcp接收超时主动停止 2022-08-20 12:48:27 +08:00
Dw9
30984d2076
mp4录制支持作为观看者参与播放人数统计 (#1880) 2022-08-16 11:47:24 +08:00
ziyue
9c3b8a6a95 时间戳改为64位 2022-08-08 17:13:39 +08:00
CharleyWangHZ
2685f3cdc2
Update MediaSource.h 2022-07-28 16:43:03 +08:00
xiongguangjie
d622481619 fix multi aac frame in one frame result flv.js play audio error 2022-06-26 00:54:31 +08:00
xiongziliang
d30869d0c9 支持获取http反向代理真实客户端ip: #1388 2022-06-18 22:10:46 +08:00
xiongziliang
ba0eaf26fc 时间戳跳变最大阈值调整为3秒 2022-06-18 21:08:34 +08:00
custompal
771844d065
去除rtp_sender_mtx (#1722)
* 去除rtp_sender_mtx
* 无人观看定时器指定为MediaSource对象所属poller以确保读取观看数是线程安全的

Co-authored-by: xiongziliang <771730766@qq.com>
2022-06-18 13:22:57 +08:00
xiongguangjie
5479820748 const payload type variable start's letter is lower case 2022-06-16 09:59:09 +08:00
xiongguangjie
6a337adc91 for rtp server can config pt 2022-06-15 00:20:53 +08:00
xiongguangjie
f8373302d0 change srt streamid like srs srt streamid 2022-06-11 21:37:41 +08:00
xiongziliang
fd11c53a78 Merge branch 'feature/srt' of github.com:ZLMediaKit/ZLMediaKit 2022-06-11 15:07:58 +08:00
xiongziliang
97116e1208 完善getOwnerPoller相关逻辑 2022-06-11 13:08:58 +08:00
xiongziliang
b6d3ec5251 完善获取丢包率pull request; 新增MediaSource::getOwnerPoller接口 2022-06-11 12:56:03 +08:00
Leon
be995f9cd2 !17 【功能请求】 /index/api/getMediaList接口 增加LOSS字段用于统计每个轨道丢包率反馈
* update webrtc/WebRtcPusher.h.
* update webrtc/WebRtcPusher.cpp.
* update webrtc/WebRtcTransport.h.
* update webrtc/WebRtcTransport.cpp.
* update src/Common/MediaSource.h.
* update src/Common/MediaSource.cpp.
* update server/WebApi.cpp.
2022-06-11 04:31:06 +00:00
xiongguangjie
89b135400c Merge remote-tracking branch 'origin/master' into feature/srt 2022-06-04 15:47:47 +08:00
xiongziliang
b23cbaa0f8 on_publish hook新增continue_push_ms参数,用于断连续推延时控制 2022-06-04 11:06:35 +08:00
xiongguangjie
b9f66ca1ec add srt push string 2022-06-03 20:38:35 +08:00
xiongguangjie
1891c4e391 add srt push type 2022-06-03 15:02:07 +08:00
xiongziliang
ea6ef2779e 新增url判空逻辑 2022-05-29 21:36:34 +08:00
夏楚
e2908e9775
cmake构建时自动生成mk_export头文件,解决msvc链接设备问题 (#1660)
* 解决msvc下链接问题
* CMAKE添加自动生成mk api export头文件
* 兼容非cmake构建时情况

Co-authored-by: baiyfcu <baiyfcu@gmail.com>
2022-05-26 20:30:43 +08:00
ziyue
9736badcea 优化编解码相关代码 2022-05-25 15:51:17 +08:00
xiongziliang
8231c5c293 新增GB28181 tcp passive被动发送接口(startSendRtpPassive) 2022-05-14 23:25:22 +08:00
xiongziliang
9e6ff0e798 优化头文件引用: #1627 2022-05-13 20:48:22 +08:00
WuPeng
5bc313bafe 增加长期保存hls切片的功能,segKeep=0为不长期保存,segKeep=1为长期保存。此功能部分等效于segNum=0的情况,不同的是这个保留不会在m3u8文件中体现。 2022-05-10 17:32:50 +08:00
ziyue
d037acbf62 完善ipv6支持 2022-05-08 17:06:10 +08:00
ziyue
a44334acaf 全面支持ipv6 2022-05-08 16:33:33 +08:00
xiongziliang
a95bf960e0 完善ipv6支持 2022-05-08 09:25:47 +08:00
xiongziliang
2818e371b8 完善startSendRtp接口 2022-04-03 18:37:22 +08:00
xgj
9d532cf16b fix startsendrtp pt error 2022-04-01 19:12:37 +08:00
xgj
61625f458f for webapi startsendrtp can send raw rtp 2022-04-01 18:28:09 +08:00
xiongziliang
b127d8c2a9 rtsp/GB28181随机端口,支持端口范围设置 2022-03-13 20:50:25 +08:00
xiongziliang
0f1120b8a6 on_publish hook新增多种选项 2022-03-12 14:34:48 +08:00
xiongziliang
4dc621e1bb 转协议选项抽象为ProtocolOption对象 2022-03-12 13:24:23 +08:00
ziyue
d88fe077ed on_publish hook新增originType字段 2022-03-02 18:03:44 +08:00
ziyue
4af83cbe7c 修复ENABLE_MEM_DEBUG时编译失败的问题 2022-03-01 19:00:50 +08:00
xiongguangjie
9c45fca761
根据配置禁用mmap缓存 (#1429) 2022-02-17 10:35:10 +08:00
ziyue
595182cebb Revert "当调用mk_media_source_close(ptr, 1);时,主动注销流 (#1401)"
This reverts commit c97aa8483e.
2022-02-09 14:21:35 +08:00
xiongziliang
0402646f7c 防止命名空间歧义 2022-02-05 01:01:29 +08:00
夏楚
c72cf4cbcc
整理命名空间 (#1409)
* feat: remove using namespace mediakit in header files.

(cherry picked from commit d44aeb339a8a0e1f0455be82b21fe4b1b536299f)

* feat: remove using namespace mediakit in FFmpegSource.h

* feat: remove using namespace mediakit in RtpExt.h

* feat: remove using namespace mediakit in header files.

* feat: remove using namespace std in header files.

* feat: remove using namespace std in header files when zltoolkit remove std in header

* 补充命名空间

* 整理命名空间

* 整理命名空间2

* 修复macos ci

* 修复编译问题

* 修复编译问题2

* 修复编译问题3

Co-authored-by: Johnny <hellojinqiang@gmail.com>
Co-authored-by: Xiaofeng Wang <wasphin@gmail.com>
2022-02-02 20:34:50 +08:00
joshuafc
c97aa8483e
当调用mk_media_source_close(ptr, 1);时,主动注销流 (#1401)
* 当调用mk_media_source_close(ptr, 1);时,主动注销流

主动调用上述函数时,期望不再等待RtmpSession.cpp:49处getPoller()->doDelayTask(continue_push_ms, [push_src]() { return 0; });捕获的指针,等待析构时反注册,而是立即反注册。

* `MediaSource::close`逻辑执行成功后执行`unregist`
2022-01-27 14:56:18 +08:00
xiongziliang
3bf6ec8939 修复获取推流所有权导致引用计数紊乱的bug: #1397 2022-01-26 00:37:51 +08:00
ziyue
0ae9a8c8c8 Revert "添加递归溢出检测代码: #1363"
This reverts commit 8937d9ea92.
2022-01-24 11:38:36 +08:00
ziyue
8937d9ea92 添加递归溢出检测代码: #1363 2022-01-17 14:47:55 +08:00
ziyue
5b6ff0af27 完善mingw编译环境的适配 2022-01-11 14:09:57 +08:00
ziyue
f5efd232a9 rtsp/rtmp推流支持断连续推: #1240, #1300 2022-01-10 16:43:57 +08:00
alexliyu7352
a441168004
修正不使用resetWhenReplay选项时, MediaSource会重复注册的问题 (#1330) 2022-01-04 14:47:41 +08:00
ziyue
c0afcc48e5 malloc大内存警告环境变量改名为MEM_WARN_SIZE 2021-12-31 10:26:36 +08:00
xiongziliang
9cf6fea03e 修复编译问题 2021-12-30 22:12:36 +08:00
ziyue
84f3aa0748 完善内存统计并在malloc大内存时打印backtrace 2021-12-30 20:34:56 +08:00
ziyue
940fe333db 尝试解决全局malloc统计相关变量提前销毁的bug 2021-12-30 15:28:27 +08:00
ziyue
1a6a62a304 malloc确保内存对齐 2021-12-29 20:57:35 +08:00
夏楚
15297a3ca3
添加内存malloc次数分布统计 (#1322) 2021-12-29 20:48:15 +08:00
夏楚
878ce87329
支持线程内存malloc统计 (#1317) 2021-12-27 17:40:15 +08:00
alexliyu7352
0b2e55429d
HLS: 加速track就绪速度 (#1286)
* 加速track的准备速度

* 重命名为isAllTrackReady

* 无须缓冲帧时,暂不用转换为可缓存帧

Co-authored-by: 夏楚 <771730766@qq.com>
2021-12-17 14:47:17 +08:00
ziyue
8f60ec9900 Refine: 精简复用MediaSink相关代码 2021-12-01 21:38:31 +08:00
ziyue
4700ab77de Feature: 新增转协议超时等相关配置项( #1241) 2021-11-30 18:04:43 +08:00
ziyue
0b79de9d13 MediaSource: 禁止重复推送一个已经注册的流 2021-11-19 15:33:16 +08:00
xiongziliang
a5fc3b04d3 Refine: 删除多余代码 2021-11-13 00:31:32 +08:00
xiongziliang
b0343acf8c Refine: 提炼精简代码 2021-11-13 00:24:38 +08:00
ziyue
e51a78ebdc MediaSink: 确保收到数据后才触发TrackReady回调 2021-11-10 14:35:37 +08:00
ziyue
b7e187d7af Player: 添加kWaitTrackReady选项决定播放器是否等待所有track ready再回调 2021-11-10 13:56:04 +08:00
ziyue
b892ac346f MediaSink: 优化静音音频相关逻辑性能 2021-11-10 12:41:06 +08:00
ziyue
1ce841ce42 MediaSink: 修复静音音频添加逻辑bug 2021-11-10 12:04:32 +08:00
ziyue
817542cd0c Mutex: 删除一些不必要的互斥锁 2021-11-10 11:38:54 +08:00
ziyue
143979f354 Stamp: 兼容时间戳跳跃的情况 2021-11-10 11:38:54 +08:00
ziyue
fdfde17ec7 Demuxer/Player: 修改解复用与播放器底层逻辑,确保触发播放成功回调时不丢帧 2021-11-10 11:38:54 +08:00
ziyue
ded5d83e04 MediaSink: 静音音频确保最后添加 2021-11-10 11:38:54 +08:00
ziyue
e249a03dc2 修复调用stopSendRtp接口无法触发无人观看事件的bug:#1189 2021-10-27 13:40:59 +08:00
ziyue
4067f2beb6 ps rtp推流接口(startSendRtp)支持推送本地mp4录像 2021-10-21 10:21:52 +08:00
ziyue
cf1adf1c92 兼容一些不规范的rtsp流 2021-10-20 10:58:05 +08:00
ziyue
8aa2d0ce07 add RTC_SCHEMA macros 2021-10-19 15:22:48 +08:00
ziyue
488026c0b8 删除多余代码 2021-10-16 16:58:13 +08:00
ziyue
f5f58196b5 修改常量命名 2021-10-16 16:58:03 +08:00
ziyue
b10fc52384 CHECK宏支持自定义错误提示 2021-10-16 16:24:40 +08:00
Johnny
722097be05 调整 RtspSession::_push_src类型,统一为 RtspMediaSource::Ptr _push_src; 2021-10-15 18:25:06 +08:00
ziyue
dd81497e5c 修复rtp pts 时间戳回退导致ntp时间戳计算异常的bug:#1152 2021-10-13 15:52:12 +08:00
ziyue
15edbeac3e 整理http相关代码 2021-09-30 16:10:09 +08:00
夏楚
a548fcd709
Feature/dev (#1143)
* 防止每次cmake后导致重复编译
2021-09-30 11:27:42 +08:00
xiongziliang
507eadf20b Merge branch 'master' of github.com:ZLMediaKit/ZLMediaKit 2021-09-28 22:49:59 +08:00
xiongziliang
7d1b2583e6 优化代码 2021-09-28 22:44:02 +08:00
ziyue
3bc0769ccb 完善mk_media接口 2021-09-27 14:34:26 +08:00
ziyue
c493f0da1b 完善添加静音音频相关功能 2021-09-27 14:12:11 +08:00
ziyue
e20718fbde 确保静音音频track不影响后续添加的正常音频track 2021-09-27 13:27:07 +08:00
ziyue
afec4b62b9 全局自动添加静音音频 2021-09-27 13:20:34 +08:00
ziyue
e9008afca0 addTrack/inputFrame接口支持返回值;新增全局添加静音音频接口 2021-09-27 13:12:53 +08:00
ziyue
83ee396405 全局关闭音频时,加快单视频流注册速度 2021-09-14 16:27:11 +08:00
夏楚
ad1ae2ac66
修复ntp时间戳计算精度导致的bug:#1086 2021-09-04 09:28:41 +08:00
ziyue
c2bf2928d0 完善key-value解析代码 2021-09-03 18:11:20 +08:00
ziyue
5f2e4ff2c0 修复http文件目录相关bug:#1083 2021-09-03 17:58:23 +08:00
ziyue
415bc95dda 完善ntp时间戳计算逻辑 2021-09-02 21:39:10 +08:00
ziyue
57e91054af 合并日志相关pr: #1077 2021-08-30 20:47:11 +08:00
kevin cheng
7d456a0513 Merge branch 'master' of https://github.com/ZLMediaKit/ZLMediaKit 2021-08-30 19:04:50 +08:00
kevin cheng
5bd169e6de 新增C API 广播日志到上层应用 2021-08-30 19:03:20 +08:00
ziyue
04bf829540 非rtsp协议减少一帧延时 2021-08-30 18:05:21 +08:00
ziyue
2242577661 优化解析复杂数据结构配置项时的性能 2021-08-27 11:11:05 +08:00
ziyue
848774271f 合并并完善http虚拟目录相关代码 2021-08-26 19:50:19 +08:00
ziyue
03e9c09c42 修复FullUrl()未url转义导致的bug 2021-08-26 19:10:04 +08:00
baiyfcu
626bf3dcf9 添加http文件服务可挂载物理目录,新增ENABLE_API_STATIC_LIB
sa
2021-08-25 14:30:31 +08:00
ziyue
b3ad0891e6 修复除0的bug 2021-08-22 15:13:20 +08:00
ziyue
10522e4ea5 完善getOriginUrl接口 2021-08-16 17:31:13 +08:00
ziyue
4dbe0a1d3e 合并pr:#1025 2021-08-12 20:37:46 +08:00
ziyue
30b139eaf0 Merge branch 'feature_bafc' of https://github.com/xia-chu/ZLMediaKit 2021-08-12 11:18:34 +08:00
ziyue
e3d519dde6 无人观看自动关闭流时才打印日志 2021-08-12 10:54:57 +08:00
ziyue
094f7553c9 合并pr(rtp最大大小可配置):#1028 2021-08-12 10:44:12 +08:00
monktan
7ed7e5386c rtp包最大大小可配置 2021-08-11 15:48:15 +08:00
baiyfcu
0ed902509a player增加speed,pause扩展,seek支持秒级定位,MP4按时间戳生成文件 2021-08-09 18:28:43 +08:00
ziyue
018fa40946 打印codec信息时,打印url信息 2021-08-05 14:49:52 +08:00
ziyue
42ef41cb58 修复rtp时间戳映射机制相关bug: #998 2021-07-22 20:31:02 +08:00
ziyue
566a49e227 修复getMediaTracks接口相关功能 2021-07-20 13:15:57 +08:00
ziyue
4b34e58d3c 移除MultiMuxerPrivate对象,修复rtp发送时无sps pps帧的问题 2021-07-20 12:42:53 +08:00
wxf
ece7186e6c 改为按 Session 查找媒体源以支持 TCP/UDP Session 2021-07-15 11:25:48 +08:00
ziyue
09d7670fdf 收到sender report包前,通过系统时间戳产生ntp时间戳 2021-07-14 21:41:13 +08:00