mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-15 14:25:52 +00:00
Bug 1425956 - Part 3: Remove duplicate track ids on incoming SDP. r=drno
MozReview-Commit-ID: Ldac3oB5ocz --HG-- extra : rebase_source : 9066ff2aae30aee610ad6807ad566bfaedd0ea51 extra : source : f1dcabc223896a5280041480596f6c9ba8d78a99
This commit is contained in:
parent
95c68733b2
commit
3361602026
@ -364,6 +364,10 @@ JsepSessionImpl::RemoveDuplicateTrackIds(Sdp* sdp)
|
||||
for (size_t i = 0; i < sdp->GetMediaSectionCount(); ++i) {
|
||||
SdpMediaSection& msection(sdp->GetMediaSection(i));
|
||||
|
||||
if (mSdpHelper.MsectionIsDisabled(msection)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
std::vector<std::string> streamIds;
|
||||
std::string trackId;
|
||||
nsresult rv = mSdpHelper.GetIdsFromMsid(*sdp,
|
||||
@ -390,6 +394,9 @@ JsepSessionImpl::RemoveDuplicateTrackIds(Sdp* sdp)
|
||||
mediaAttrs.SetAttribute(newMsids.release());
|
||||
}
|
||||
trackIds.insert(trackId);
|
||||
} else if (rv != NS_ERROR_NOT_AVAILABLE) {
|
||||
// Error has already been set
|
||||
return rv;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1313,18 +1320,6 @@ JsepSessionImpl::ParseSdp(const std::string& sdp, UniquePtr<Sdp>* parsedp)
|
||||
return NS_ERROR_INVALID_ARG;
|
||||
}
|
||||
|
||||
std::vector<std::string> streamIds;
|
||||
std::string trackId;
|
||||
nsresult rv = mSdpHelper.GetIdsFromMsid(*parsed,
|
||||
parsed->GetMediaSection(i),
|
||||
&streamIds,
|
||||
&trackId);
|
||||
|
||||
if (NS_FAILED(rv) && (rv != NS_ERROR_NOT_AVAILABLE)) {
|
||||
// Error has already been set
|
||||
return rv;
|
||||
}
|
||||
|
||||
static const std::bitset<128> forbidden = GetForbiddenSdpPayloadTypes();
|
||||
if (msection.GetMediaType() == SdpMediaSection::kAudio ||
|
||||
msection.GetMediaType() == SdpMediaSection::kVideo) {
|
||||
@ -1350,6 +1345,9 @@ JsepSessionImpl::ParseSdp(const std::string& sdp, UniquePtr<Sdp>* parsedp)
|
||||
}
|
||||
}
|
||||
|
||||
nsresult rv = RemoveDuplicateTrackIds(parsed.get());
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
*parsedp = Move(parsed);
|
||||
return NS_OK;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user