Commit Graph

96 Commits

Author SHA1 Message Date
Johnny
82bc416546 add exchangeSdp 2023-04-21 20:40:37 +08:00
mtdxc
4783ac0808
修复webrtc多候选地址无法来回切换的bug (#2266)
最后一个连通的候选地址会被赋值并锁定为_selected_session,如果之前的候选地址再发送数据,将通过_selected_session回复,导致无法切换为旧的候选地址。
2023-03-03 11:18:21 +08:00
老衲不出家
f05a9501fa
Unified code style (#2137) 2022-12-02 14:43:06 +08:00
monktan89
a12b7c8021 修正代码拼写错误 2022-11-30 18:24:35 +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
Dw9
fef9d31631
webrtc支持通过http参数指定是否优先tcp模式 (#2105)
* webrtc push/play支持通过http参数指定tcp

* force_tcp改成perferred_tcp

Co-authored-by: xiongziliang <771730766@qq.com>
2022-11-27 12:43:16 +08:00
xiongguangjie
0d6fa1281a add rtc tcp port config and ignore candidate when port is 0 2022-11-19 01:51:53 +08:00
Dw9
47530ce830
新增支持webrtc over tcp模式 (#2092)
* webrtc server/session/cadidate 改为tcp

* 先屏蔽检查isCurrentThread

* 接受和发送的数据处理tcp 2字节头

* 处理rtc tcp 分片

* 完善webrtc over tcp

* 精简rtp服务器相关代码

* 适配webrtc AV1编码: #2091

* webrtc tcp模式支持Firefox

* webrtc tcp模式支持线程安全

* c sdk支持webrtc tcp

Co-authored-by: ziyue <1213642868@qq.com>
2022-11-18 22:52:57 +08:00
xiongziliang
a916760ac3 整理webrtc c接口 2022-10-06 12:35:14 +08:00
ziyue
0b355759de 整理webrtc相关代码命名空间 2022-09-18 21:03:05 +08:00
xiongguangjie
7f86299c80 rtc stop push unregister mediasource 2022-09-07 19:10:06 +08:00
xiongziliang
20f1275c58 rtsp拉流、rtp单端口推流新增支持获取丢包率: #1877 2022-09-03 16:32:09 +08:00
Dw9
b7ef766701
支持单独的datachannel通道 (#1894)
* 支持单独的datachannel 通道

* 当仅有datachannel时 ,忽略rtp和rtcp超时

* 单独开启datachannel时,通过dtls包维持心跳

Co-authored-by: xiongziliang <771730766@qq.com>
2022-08-20 10:28:19 +08:00
xiongziliang
94839fd93c 添加bom头 2022-06-18 14:34:58 +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
mtdxc
301cbf0a83
支持多个rtc候选地址 (#1622)
* 支持多个rtc候选地址

* fixed missing extern_ips check
2022-05-12 15:21:09 +08:00
xiongziliang
fb003714e9 新增webrtc datachannel功能: #1216 2022-05-04 22:15:21 +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
ziyue
254bc6889e RTC: 链接迁移后确保老链接及时销毁 2021-12-15 15:55:43 +08:00
xiongziliang
90315ebce5 RTC: srtp发送减少一次内存拷贝,提高webrtc发送性能 2021-11-27 21:30:46 +08:00
xiongziliang
dd30ab22cf Performance: 使用循环池优化webrtc分发性能 2021-11-21 11:36:07 +08:00
Johnny
da0a7219e9 refactor: 梳理 rtx 处理逻辑 2021-11-19 11:46:10 +08:00
ziyue
5ee9b69568 webrtc新增自定义插件模式 2021-10-19 15:23:12 +08:00
ziyue
34365a2f8f 新增webrtc echo test双向会话示例 2021-10-16 10:52:28 +08:00
ziyue
8c1caeff50 合并pr:#1163 2021-10-16 10:25:23 +08:00
Johnny
25a1434e00 进一步改善 WebRtcTransportImp 的生命周期逻辑。 2021-10-15 18:56:49 +08:00
ziyue
82b78f4544 完善webrtc对象追踪相关日志 2021-10-15 17:14:59 +08:00
ziyue
7f3f47abbb 提取webrtc推流、播放代码为单独的派生类 2021-10-15 16:27:17 +08:00
johzzy
2ec3b0ccea
增加 WebRtcTransportManager (#1156)
增加 WebRtcTransportManager
2021-10-13 14:15:29 +08:00
Johnny
2a906ad04a 保留 WebRtcTransport::onCheckSdp 接口。 2021-10-12 17:07:04 +08:00
Johnny
0f4289a584 Refine(webrtc/sdp): 函数 WebRtcTransport::onCheckSdp() 拆分为WebRtcTransport::onCheckAnswer() 和 RtcSession::checkSdp() 2021-10-12 16:15:37 +08:00
Johnny
c7633fb5bb Refine(webrtc/sdp): 移除getSdp(SdpType type)。相较而言,直接使用_offer_sdp 和 _answer_sdp 更好。 2021-10-12 15:35:18 +08:00
xiongziliang
438fd952f2 前移时间戳生成逻辑,防止耗时代码干扰时间戳精度 2021-10-07 15:49:33 +08:00
xiongziliang
29cc6a94f2 初步实现twcc rtcp发送 2021-10-07 15:39:02 +08:00
xiongziliang
dbc377a1f9 初步添加twcc rtcp发送逻辑 2021-10-06 22:42:17 +08:00
ziyue
2b5cad97cf 完善webrtc相关对象生命周期管理逻辑 2021-09-15 20:08:18 +08:00
xiongziliang
d2a0b1e3e6 基本完成webrtc单端口改造 2021-09-10 22:39:15 +08:00
ziyue
02da99e285 初步实现webrtc单udp端口模式 2021-09-08 18:00:55 +08:00
ziyue
8352f119f2 修复webrtc MediaTrack对象循环引用导致内存泄露的问题 2021-09-07 16:33:57 +08:00
ziyue
1d161bcdc2 修复webrtc srtp相关功能在大端64位系统崩溃的问题 2021-08-13 16:07:27 +08:00
ziyue
5c52c636a3 完善nack/srtp相关代码 2021-07-28 11:18:09 +08:00
ziyue
c59a7a04c3 nack/rtx支持多次重传,提高抗丢包率 2021-07-27 20:42:25 +08:00
ziyue
6220db77e8 修复webrtc纯音频推流时不能注册流的bug:#963 2021-07-07 14:47:41 +08:00
ziyue
365aead8b6 修复注释 2021-06-25 17:24:32 +08:00
ziyue
edf30a04cf 优化代码 2021-06-25 17:17:48 +08:00
ziyue
18b7e45906 整理nack相关代码 2021-06-25 15:43:47 +08:00
ziyue
7406281c96 抽象RtpExtContext对象 2021-06-25 15:31:13 +08:00
ziyue
964cf39145 RtcpContext修改时间戳单位、整理WebRTC相关代码 2021-06-25 14:59:27 +08:00
ziyue
6c01cf336e 抽象MediaTrack与RtpChannel对象 2021-06-25 14:37:11 +08:00
ziyue
ebb947c698 完善simulcast与ssrc相关处理代码 2021-06-24 17:54:16 +08:00