mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2024-11-22 19:00:01 +08:00
修复webrtc播放不能秒开的问题
This commit is contained in:
parent
dfa9001ed1
commit
0514278ce6
@ -470,6 +470,21 @@ void WebRtcTransportImp::onStartWebRTC() {
|
|||||||
_simulcast = getSdp(SdpType::answer).supportSimulcast();
|
_simulcast = getSdp(SdpType::answer).supportSimulcast();
|
||||||
}
|
}
|
||||||
if (canSendRtp()) {
|
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);
|
_reader = _play_src->getRing()->attach(getPoller(), true);
|
||||||
weak_ptr<WebRtcTransportImp> weak_self = static_pointer_cast<WebRtcTransportImp>(shared_from_this());
|
weak_ptr<WebRtcTransportImp> weak_self = static_pointer_cast<WebRtcTransportImp>(shared_from_this());
|
||||||
_reader->setReadCB([weak_self](const RtspMediaSource::RingDataType &pkt) {
|
_reader->setReadCB([weak_self](const RtspMediaSource::RingDataType &pkt) {
|
||||||
@ -489,21 +504,6 @@ void WebRtcTransportImp::onStartWebRTC() {
|
|||||||
}
|
}
|
||||||
strongSelf->onShutdown(SockException(Err_shutdown, "rtsp ring buffer detached"));
|
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;
|
_play_src = nullptr;
|
||||||
|
Loading…
Reference in New Issue
Block a user