Bug 1646092 - Do not add ssrc-group to sdp on recvonly msections; r=bwc

Chrome will not accept sdp with ssrc-group:FID on recvonly msections, causing
calls to fail to be established between Firefox and Chrome when only a
microphone is present on the Firefox side.

Differential Revision: https://phabricator.services.mozilla.com/D80034
This commit is contained in:
Dan Minor 2020-06-18 15:30:41 +00:00
Родитель 8ef4b55212
Коммит c8da0b9e5f
2 изменённых файлов: 7 добавлений и 3 удалений

Просмотреть файл

@ -256,8 +256,8 @@ bool JsepTrack::IsRtxEnabled(
void JsepTrack::AddToMsection(const std::vector<JsConstraints>& constraintsList,
sdp::Direction direction,
SsrcGenerator& ssrcGenerator,
bool requireRtxSsrcs, SdpMediaSection* msection) {
SsrcGenerator& ssrcGenerator, bool rtxEnabled,
SdpMediaSection* msection) {
UniquePtr<SdpSimulcastAttribute> simulcast(new SdpSimulcastAttribute);
UniquePtr<SdpRidAttributeList> rids(new SdpRidAttributeList);
for (const JsConstraints& constraints : constraintsList) {
@ -283,6 +283,10 @@ void JsepTrack::AddToMsection(const std::vector<JsConstraints>& constraintsList,
msection->GetAttributeList().SetAttribute(rids.release());
}
bool requireRtxSsrcs =
rtxEnabled && msection->GetDirectionAttribute().mValue !=
SdpDirectionAttribute::Direction::kRecvonly;
if (mType != SdpMediaSection::kApplication && mDirection == sdp::kSend) {
UpdateSsrcs(ssrcGenerator, constraintsList.size());

Просмотреть файл

@ -277,7 +277,7 @@ class JsepTrack {
void AddToMsection(const std::vector<JsConstraints>& constraintsList,
sdp::Direction direction, SsrcGenerator& ssrcGenerator,
bool requireRtxSsrcs, SdpMediaSection* msection);
bool rtxEnabled, SdpMediaSection* msection);
// See Bug 1642419, this can be removed when all sites are working with RTX.
void SetRtxIsAllowed(bool aRtxIsAllowed) { mRtxIsAllowed = aRtxIsAllowed; }