From dc3756b8b2d39c711e1d7e18376f4c232712d02d Mon Sep 17 00:00:00 2001 From: "jinxue.cgh" Date: Wed, 23 Sep 2020 19:59:35 +0800 Subject: [PATCH] RTC: Compatible with SSRC without mslabel. --- trunk/src/app/srs_app_rtc_sdp.cpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/trunk/src/app/srs_app_rtc_sdp.cpp b/trunk/src/app/srs_app_rtc_sdp.cpp index 222f07094..facb8fbd1 100644 --- a/trunk/src/app/srs_app_rtc_sdp.cpp +++ b/trunk/src/app/srs_app_rtc_sdp.cpp @@ -769,6 +769,31 @@ srs_error_t SrsSdp::parse(const std::string& sdp_str) } } + // The msid/tracker/mslabel is optional for SSRC, so we copy it when it's empty. + for (std::vector::iterator iter = media_descs_.begin(); iter != media_descs_.end(); ++iter) { + SrsMediaDesc& media_desc = *iter; + + for (size_t i = 0; i < media_desc.ssrc_infos_.size(); ++i) { + SrsSSRCInfo& ssrc_info = media_desc.ssrc_infos_.at(i); + + if (ssrc_info.msid_.empty()) { + ssrc_info.msid_ = media_desc.msid_; + } + + if (ssrc_info.msid_tracker_.empty()) { + ssrc_info.msid_tracker_ = media_desc.msid_tracker_; + } + + if (ssrc_info.mslabel_.empty()) { + ssrc_info.mslabel_ = media_desc.msid_; + } + + if (ssrc_info.label_.empty()) { + ssrc_info.label_ = media_desc.msid_tracker_; + } + } + } + return err; }