修复webrtc simulcast推流崩溃的bug

This commit is contained in:
ziyue 2021-09-07 16:22:34 +08:00
parent 0fd44f13d9
commit 209d47cf3b
2 changed files with 5 additions and 2 deletions

@ -1 +1 @@
Subproject commit 36d1122f42ab6b92d0ca8f57df0462acc632efc7 Subproject commit a827f0bdcb4221c19ab1a243ebd1f01fa7dc50f2

View File

@ -436,8 +436,11 @@ void WebRtcTransportImp::onStartWebRTC() {
if (m_offer->type != TrackApplication) { if (m_offer->type != TrackApplication) {
//记录rtp ext类型与id的关系方便接收或发送rtp时修改rtp ext id //记录rtp ext类型与id的关系方便接收或发送rtp时修改rtp ext id
track->rtp_ext_ctx = std::make_shared<RtpExtContext>(*m_offer); track->rtp_ext_ctx = std::make_shared<RtpExtContext>(*m_offer);
track->rtp_ext_ctx->setOnGetRtp([this, &track](uint8_t pt, uint32_t ssrc, const string &rid) { weak_ptr<MediaTrack> weak_track = track;
track->rtp_ext_ctx->setOnGetRtp([this, weak_track](uint8_t pt, uint32_t ssrc, const string &rid) {
//ssrc --> MediaTrack //ssrc --> MediaTrack
auto track = weak_track.lock();
assert(track);
_ssrc_to_track[ssrc] = track; _ssrc_to_track[ssrc] = track;
InfoL << "get rtp, pt:" << (int) pt << ", ssrc:" << ssrc << ", rid:" << rid; InfoL << "get rtp, pt:" << (int) pt << ", ssrc:" << ssrc << ", rid:" << rid;
}); });