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
0514278c
Commit
0514278c
authored
3 years ago
by
ziyue
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修复webrtc播放不能秒开的问题
parent
dfa9001e
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
15 行增加
和
15 行删除
+15
-15
webrtc/WebRtcTransport.cpp
+15
-15
没有找到文件。
webrtc/WebRtcTransport.cpp
查看文件 @
0514278c
...
...
@@ -470,6 +470,21 @@ void WebRtcTransportImp::onStartWebRTC() {
_simulcast
=
getSdp
(
SdpType
::
answer
).
supportSimulcast
();
}
if
(
canSendRtp
())
{
RtcSession
rtsp_send_sdp
;
rtsp_send_sdp
.
loadFrom
(
_play_src
->
getSdp
(),
false
);
for
(
auto
&
m
:
getSdp
(
SdpType
::
answer
).
media
)
{
if
(
m
.
type
==
TrackApplication
)
{
continue
;
}
auto
rtsp_media
=
rtsp_send_sdp
.
getMedia
(
m
.
type
);
if
(
rtsp_media
&&
getCodecId
(
rtsp_media
->
plan
[
0
].
codec
)
==
getCodecId
(
m
.
plan
[
0
].
codec
))
{
auto
it
=
_pt_to_track
.
find
(
m
.
plan
[
0
].
pt
);
CHECK
(
it
!=
_pt_to_track
.
end
());
//记录发送rtp时约定的信息,届时发送rtp时需要修改pt和ssrc
_type_to_track
[
m
.
type
]
=
it
->
second
.
second
;
}
}
_reader
=
_play_src
->
getRing
()
->
attach
(
getPoller
(),
true
);
weak_ptr
<
WebRtcTransportImp
>
weak_self
=
static_pointer_cast
<
WebRtcTransportImp
>
(
shared_from_this
());
_reader
->
setReadCB
([
weak_self
](
const
RtspMediaSource
::
RingDataType
&
pkt
)
{
...
...
@@ -489,21 +504,6 @@ void WebRtcTransportImp::onStartWebRTC() {
}
strongSelf
->
onShutdown
(
SockException
(
Err_shutdown
,
"rtsp ring buffer detached"
));
});
RtcSession
rtsp_send_sdp
;
rtsp_send_sdp
.
loadFrom
(
_play_src
->
getSdp
(),
false
);
for
(
auto
&
m
:
getSdp
(
SdpType
::
answer
).
media
)
{
if
(
m
.
type
==
TrackApplication
)
{
continue
;
}
auto
rtsp_media
=
rtsp_send_sdp
.
getMedia
(
m
.
type
);
if
(
rtsp_media
&&
getCodecId
(
rtsp_media
->
plan
[
0
].
codec
)
==
getCodecId
(
m
.
plan
[
0
].
codec
))
{
auto
it
=
_pt_to_track
.
find
(
m
.
plan
[
0
].
pt
);
CHECK
(
it
!=
_pt_to_track
.
end
());
//记录发送rtp时约定的信息,届时发送rtp时需要修改pt和ssrc
_type_to_track
[
m
.
type
]
=
it
->
second
.
second
;
}
}
}
//使用完毕后,释放强引用,这样确保推流器断开后能及时注销媒体
_play_src
=
nullptr
;
...
...
This diff is collapsed.
Click to expand it.
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论