Skip to content

Commit 616fe61

Browse files
committed
Merge branch 'release-0.24'
2 parents e8271d3 + be42cf4 commit 616fe61

File tree

5 files changed

+26
-2
lines changed

5 files changed

+26
-2
lines changed

debian/changelog

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
spreed-webrtc-server (0.24.10) trusty; urgency=medium
2+
3+
* Avoid to break when there is no mediaDevices.
4+
* Added compatibility fix for Chrome 38 which stopped working when called from Chrome 46+ (Munge remote offer UDP/TLS/RTP/SAVPF to RTP/SAVPF).
5+
* Only stop user media automatically, when all tracks have ended.
6+
* Stop waiting on video early if first video track is enabled but muted.
7+
8+
-- Simon Eisenmann <[email protected]> Fri, 15 Jan 2016 12:57:13 +0100
9+
110
spreed-webrtc-server (0.24.9) trusty; urgency=medium
211

312
* Added support for Firefox 43 API changes.

debian/gbp.conf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
[DEFAULT]
2+
debian-tag = v%(version)s

static/js/mediastream/usermedia.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -366,19 +366,23 @@ define(['jquery', 'underscore', 'audiocontext', 'mediastream/dummystream', 'webr
366366

367367
if (stream) {
368368
// Catch events when streams end.
369+
var trackCount = 0;
369370
var onended = _.bind(function(event) {
370-
if (this.started) {
371+
trackCount--;
372+
if (this.started && trackCount <= 0) {
371373
console.log("Stopping user media as a stream has ended.", event);
372374
this.stop();
373375
}
374376
}, this);
375377
if (stream.getTracks) {
376378
_.each(stream.getTracks(), function(t) {
377379
t.onended = onended;
380+
trackCount++;
378381
});
379382
} else {
380383
// Legacy api.
381384
stream.onended = onended;
385+
trackCount++;
382386
}
383387
// Set new stream.
384388
this.localStream = stream;

static/js/mediastream/utils.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -439,6 +439,15 @@ define([], function() {
439439
return sdp;
440440
},
441441
fixRemote: function(sdp) {
442+
if (window.webrtcDetectedBrowser === "chrome" && window.webrtcDetectedVersion <= 38) {
443+
// Chrome 46 started to send m lines as UDP/TLS/RTP/SAVPF
444+
// https://bugs.chromium.org/p/webrtc/issues/detail?id=2796
445+
// https://groups.google.com/forum/#!searchin/discuss-webrtc/psa$20savpf/discuss-webrtc/ZOjSMolpP40/gF5_1Tk8xRAJ
446+
// https://groups.google.com/forum/#!topic/mozilla.dev.media/vNCjLFgc97c
447+
// This change breaks very old versions of WebRTC. So we change it back locally
448+
// for Chrome <= 38 which makes things work fine again.
449+
sdp = sdp.replace(/UDP\/TLS\/RTP\/SAVPF/g, "RTP/SAVPF")
450+
}
442451
return sdp;
443452
}
444453
}

static/js/services/mediasources.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ define(['jquery', 'underscore', 'webrtc.adapter'], function($, _, adapter) {
2727
var MediaSources = function() {
2828

2929
// For now enable media sources only in Chrome until other browsers have some use for it.
30-
this.supported = $window.navigator.mediaDevices.enumerateDevices && adapter.webrtcDetectedBrowser === "chrome";
30+
this.supported = $window.navigator.mediaDevices && $window.navigator.mediaDevices.enumerateDevices && adapter.webrtcDetectedBrowser === "chrome";
3131
this.audio = [];
3232
this.video = [];
3333

0 commit comments

Comments
 (0)