RTC: Support update msid for sdp

pull/1969/head
winlin 4 years ago
parent c8af9e9ec4
commit c26cb9a15b

@ -332,6 +332,20 @@ vector<SrsMediaPayloadType> SrsMediaDesc::find_media_with_encoding_name(const st
return payloads; return payloads;
} }
srs_error_t SrsMediaDesc::update_msid(string id)
{
srs_error_t err = srs_success;
for(vector<SrsSSRCInfo>::iterator it = ssrc_infos_.begin(); it != ssrc_infos_.end(); ++it) {
SrsSSRCInfo& info = *it;
info.msid_ = id;
info.mslabel_ = id;
}
return err;
}
srs_error_t SrsMediaDesc::parse_line(const std::string& line) srs_error_t SrsMediaDesc::parse_line(const std::string& line)
{ {
srs_error_t err = srs_success; srs_error_t err = srs_success;
@ -1072,3 +1086,21 @@ bool SrsSdp::is_unified() const
return media_descs_.size() > 2; return media_descs_.size() > 2;
} }
srs_error_t SrsSdp::update_msid(string id)
{
srs_error_t err = srs_success;
msids_.clear();
msids_.push_back(id);
for (vector<SrsMediaDesc>::iterator it = media_descs_.begin(); it != media_descs_.end(); ++it) {
SrsMediaDesc& desc = *it;
if ((err = desc.update_msid(id)) != srs_success) {
return srs_error_wrap(err, "desc %s update msid %s", desc.mid_.c_str(), id.c_str());
}
}
return err;
}

@ -140,6 +140,7 @@ public:
SrsMediaPayloadType* find_media_with_payload_type(int payload_type); SrsMediaPayloadType* find_media_with_payload_type(int payload_type);
std::vector<SrsMediaPayloadType> find_media_with_encoding_name(const std::string& encoding_name) const; std::vector<SrsMediaPayloadType> find_media_with_encoding_name(const std::string& encoding_name) const;
const std::map<int, std::string>& get_extmaps() const { return extmaps_; } const std::map<int, std::string>& get_extmaps() const { return extmaps_; }
srs_error_t update_msid(std::string id);
bool is_audio() const { return type_ == "audio"; } bool is_audio() const { return type_ == "audio"; }
bool is_video() const { return type_ == "video"; } bool is_video() const { return type_ == "video"; }
@ -248,6 +249,8 @@ public:
std::vector<SrsMediaDesc> media_descs_; std::vector<SrsMediaDesc> media_descs_;
bool is_unified() const; bool is_unified() const;
// TODO: FIXME: will be fixed when use single pc.
srs_error_t update_msid(std::string id);
}; };
#endif #endif

Loading…
Cancel
Save