Skip to content

v6

Compare
Choose a tag to compare
@jcague jcague released this 10 Sep 10:45
8b4692c

Single Peer Connection for Chrome

This release adds preliminary support for publishing and subscribing streams in the same Peer Connection, which reduces CPU and publishing and subscribing delays.

We have been also working on improving Simulcast by adding new APIs to activate slideshow when the estimated bandwidth is low and to have high quality recordings with simulcast.

We have also fixed several bugs and some known issues that were causing crashes in the MCU.

Detailed PR List:

Single Peer Connection

ca97119 Remove closed singlePC connection in ErizoClient (#1301)
460f384 Add a new algorithm to allocate better bandwidth in Single PC (#1296)
e2a7eac Disable padding on capped bitrates (#1273)
ef89a6d Revert Use fixed values for bw estimation when slideshow is enabled (#1272)
016af02 Enable last padding packet again to avoid sticky bitrates (#1270)
cbd07e1 Use fixed values for bw estimation when slideshow is enabled (#1266)
558fa9f Fix unpublish and unsubscribe for Single PC (#1263)
42bea95 Assign room to stream (#1243)
6db9a17 Add lower layer limit option (#1199)
4e864f4 Added events from mediaStream to ErizoJS (#1194)
89be2f6 Add option to set limit of Erizos per Room (#1193)
3118a58 Refactor ErizoAgent with a new list of ErizoJS (#1192)
18250a5 Add maxVideoBW as a config instead of part of SDP when using Erizo (#1188)
99917f3 Improve support to forward REMB packets to each stream (#1186)
27ddc9b Add start and hard min bitrate (#1184)
a7cc8c4 Initial support to negotiate SDPs in Single Peer Connection (#1167)
c574ad3 Add a new API to enable Single PC in ErizoClient (#1165)
552323d Decouple Connection logic in ErizoJS (#1164)
4a517f1 Initial support for multiple MediaStreams in a single WebRtcConnection (#1162)
df4095a Add client and connection management in ErizoJS (#1159)
687d9e0 Refactored connection and pass erizoJSId to clients (#1138)
98a1663 Move offer creation logic out of Erizo (#1111)
716a942 MediaStreams now use their own worker (#1107)

Simulcast

6dd7547 API to enable slideshow keyframes below a spatial layer (#1297)
c5db134 Fix second temporal layer in vp8 simulcast (#1283)
24c955a Add support to Screensharing and h264 simulcast (#1257)
84faaa0 Uses new promise-based API to fix simulcast in Firefox (#1202)
bc4e67c Add full simulcast support to recordings (#1127)

Print stats as logs

79c382c Add maxVideoBW to stats (#1291)
5ed00d2 New option to print periodic stats as logs (#1268)

Technical Debt

fccb8b8 Update to Ubuntu 16.04 (#1300)
59dd6b6 Updated docs to clarify maxVideoBW and defaultVideoBW (#1191)
4acf76b Recordings supported video-orientation. (#1169)
8a745da Improve MS Edge support (#1151)
71b38f9 Use OpenSSL API for DTLS retransmissions (#1145)
049f99c Make licode work on gcc 7 and clang 3.9 (#1123)

Bug fixes

8b4692c Fix concurrency issues in video bitrate stats access (#1305)
93ca6e6 copy sdpInfo when passed to and from WebRtcConnection (#1304)
7474983 Cleaned up sdp management (#1303)
520e265 Initialize event listener to nullptr (#1299)
cbcfcb1 Avoid race conditions while running a sort function in the new bw distributor (#1298)
12f8713 Stop receiving MediaStream events when subscriber is closed (#1294)
c0c50a0 Fix some random bugs in cpp tests (#1288)
5b49a12 Fix for mishandling of videoOpt in Stream.js (#1255)
8cfe3dc vp9 payload len (#1274)
df51f7e Fix setting b=as in p2p sub (#1256)
fc5d092 When closing streams, also unbind from all events. (#1250)
2700763 Check if the handler is initialized before reading or processing (#1271)
18c5562 Fix WebRtcConnection close by updating publishers immediately (#1237)
52d86c7 Added clion configs to gitignore (.idea folder) (#1246)
da05c61 Small code review like avoiding redundant objects copy. (#1247)
ebf80fd Fix circleci scripts (#1248)
69ff387 Update build script to automatically detect the number of CPUs (#1226)
74a63e1 Fix concurrency in Nuve create room(#1225)
3083b5f Fix unpublish in p2p (#1236)
601195c Sanitise token signature checking (#1235)
d14fef6 Added pipeline shared_ptr check before dereferencing it (#1238)
b1ec153 Fix crashes in addRemoteCandidate when subscriber is not removed from publisher (#1227)
696339e Do not check if room param is NaN in basic example server. (#1231)
a748d25 Fix the way ICE propagates connection state events (#1232)
7c5945c Fix build script and generation of Eclipse CDT (#1215)
595fc75 Fix room removal in p2p (#1214)
083de49 Fix Spine install script (#1213)
04d9c0e Use a variable instead of event object to concatenate candidate attr (#1212)
b73432f fix geneateEclipseProject (#1207)
5d58e0e Fix p2p connections (#1201)
45b8096 Fix issues that happened during first trials of Single Peer Connection (#1200)
6a6d161 Fix cases where we would not respect the limit of Erizos per Room (#1196)
72af884 Fix crashes calling uv_finish_close (#1190)
4b5d3d7 Fix RTCP forwarding in Single PC (#1183)
bf04757 Fix timeout for quality layer switching (#1181)
d56e03e Add a codec parser in front of the pipeline (#1179)
01a684c Fix several crashes and bugs in Single Peer Connection (#1174)
b4bb832 Fix/erizo client build errors (#1171)
d694a99 Fix some crashes when Erizo is closing MediaStreams and WebRtcConnections (#1160)
1f39dbe Fix new version of Chrome that throws errors on accessing cssRules (#1158)
6b0da4d Fix Rtp padding generator for older firefox build. (#1152)
0b09edb Fix typo in API name in docs (#1157)
e83e4c9 Avoid to announce recv ssrc in a recvonly connection (#1148)
440e8a8 Fix screensharing when loading ErizoClient in an Electron App (#1137)
77bcd68 set a default mediaConfiguration to avoid addon crash (#1133)
0b2b8a8 Fix calls to updateSpec function that made ICE failed in Erizo (#1131)
bff8db8 fix stream failed event not being correctly dispatched (#1130)