소스 검색

fix(JSPC): local tracks not advertised

In case when the answer is being set for the first time, full sRD/sLD
cycle is required to have the local description updated and SSRCs
synchronized correctly. Otherwise SSRCs for streams added after invite,
but before the answer was accepted will not be detected. The reason for
that is that renegotiate can not be called when adding tracks and they
will not be reflected in the local SDP.
tags/v0.0.2
paweldomas 8 년 전
부모
커밋
04e34f7840
1개의 변경된 파일10개의 추가작업 그리고 1개의 파일을 삭제
  1. 10
    1
      modules/xmpp/JingleSessionPC.js

+ 10
- 1
modules/xmpp/JingleSessionPC.js 파일 보기

@@ -1557,7 +1557,16 @@ export default class JingleSessionPC extends JingleSession {
1557 1557
             this.peerconnection.setRemoteDescription(
1558 1558
                 remoteDescription,
1559 1559
                 () => {
1560
-                    resolve();
1560
+                    // In case when the answer is being set for the first time,
1561
+                    // full sRD/sLD cycle is required to have the local
1562
+                    // description updated and SSRCs synchronized correctly.
1563
+                    // Otherwise SSRCs for streams added after invite, but
1564
+                    // before the answer was accepted will not be detected.
1565
+                    // The reason for that is that renegotiate can not be called
1566
+                    // when adding tracks and they will not be reflected in
1567
+                    // the local SDP.
1568
+                    this._initiatorRenegotiate(
1569
+                        remoteDescription, resolve, reject);
1561 1570
                 },
1562 1571
                 error => reject(`setRemoteDescription failed: ${error}`)
1563 1572
             );

Loading…
취소
저장