Bug 1425873 - Part 2: Sync send stream ids even when there is no send track. r+drno
MozReview-Commit-ID: 7s3f1Q8sCI1
--- a/media/webrtc/signaling/src/peerconnection/TransceiverImpl.cpp
+++ b/media/webrtc/signaling/src/peerconnection/TransceiverImpl.cpp
@@ -412,39 +412,41 @@ TransceiverImpl::SyncWithJS(dom::RTCRtpT
return;
}
RefPtr<dom::MediaStreamTrack> sendTrack = sender->GetTrack(aRv);
if (aRv.Failed()) {
return;
}
+ std::string trackId = mJsepTransceiver->mSendTrack.GetTrackId();
+
if (sendTrack) {
nsString wideTrackId;
sendTrack->GetId(wideTrackId);
- std::string trackId = NS_ConvertUTF16toUTF8(wideTrackId).get();
+ trackId = NS_ConvertUTF16toUTF8(wideTrackId).get();
MOZ_ASSERT(!trackId.empty());
+ }
- nsTArray<RefPtr<DOMMediaStream>> streams;
- sender->GetStreams(streams, aRv);
- if (aRv.Failed()) {
- return;
- }
+ nsTArray<RefPtr<DOMMediaStream>> streams;
+ sender->GetStreams(streams, aRv);
+ if (aRv.Failed()) {
+ return;
+ }
- std::vector<std::string> streamIds;
- for (const auto& stream : streams) {
- nsString wideStreamId;
- stream->GetId(wideStreamId);
- std::string streamId = NS_ConvertUTF16toUTF8(wideStreamId).get();
- MOZ_ASSERT(!streamId.empty());
- streamIds.push_back(streamId);
- }
+ std::vector<std::string> streamIds;
+ for (const auto& stream : streams) {
+ nsString wideStreamId;
+ stream->GetId(wideStreamId);
+ std::string streamId = NS_ConvertUTF16toUTF8(wideStreamId).get();
+ MOZ_ASSERT(!streamId.empty());
+ streamIds.push_back(streamId);
+ }
- mJsepTransceiver->mSendTrack.UpdateTrackIds(streamIds, trackId);
- }
+ mJsepTransceiver->mSendTrack.UpdateTrackIds(streamIds, trackId);
// Update RTCRtpParameters
// TODO: Both ways for things like ssrc, codecs, header extensions, etc
dom::RTCRtpParameters parameters;
sender->GetParameters(parameters, aRv);
if (aRv.Failed()) {