Skip to content

Commit 16ca09e

Browse files
authored
Don't remove streams that still have tracks (#2104)
If a renogotiation ends up with one track being removed, we removed the whole stream, which would cause us to lose, for example, audio rather than just video.
1 parent 129fb7f commit 16ca09e

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

src/webrtc/call.ts

+6-1
Original file line numberDiff line numberDiff line change
@@ -1717,7 +1717,12 @@ export class MatrixCall extends EventEmitter {
17171717

17181718
const stream = ev.streams[0];
17191719
this.pushRemoteFeed(stream);
1720-
stream.addEventListener("removetrack", () => this.deleteFeedByStream(stream));
1720+
stream.addEventListener("removetrack", () => {
1721+
if (stream.getTracks().length === 0) {
1722+
logger.info(`Stream ID ${stream.id} has no tracks remaining - removing`);
1723+
this.deleteFeedByStream(stream);
1724+
}
1725+
});
17211726
};
17221727

17231728
private onDataChannel = (ev: RTCDataChannelEvent): void => {

0 commit comments

Comments
 (0)