Releases: lynckia/licode
v11
Detailed PR List:
7f0cfa1 Bump formidable and supertest (#1917)
9c288f5 Bump tar from 6.1.11 to 6.2.1 in /erizoAPI (#1915)
b8b7886 Bump express from 4.17.3 to 4.19.2 in /erizo_controller (#1913)
2893701 Bump express from 4.17.3 to 4.19.2 in /nuve (#1914)
5ab91da Bump express from 4.17.3 to 4.19.2 in /extras/basic_example (#1912)
48d0ae1 Bump follow-redirects from 1.15.4 to 1.15.6 in /test (#1910)
72f963a Bump follow-redirects from 1.15.4 to 1.15.6 (#1911)
f9cf20b Bump ip from 2.0.0 to 2.0.1 (#1908)
ec8e597 Bump ip from 2.0.0 to 2.0.1 in /erizoAPI (#1909)
c08f979 Bump nanoid and mocha (#1842)
8cda18f Fix Conan and OpenSSL for mac (#1907)
72ba0d5 Bump decode-uri-component from 0.2.0 to 0.2.2 (#1859)
8f31ed7 Bump axios from 0.21.2 to 1.6.0 in /test (#1902)
4c8ba40 Deflake Nicer Tests (#1906)
cc56e33 Fix conan builds (#1905)
83e8faa Bump follow-redirects from 1.14.7 to 1.15.4 (#1904)
4482710 Bump follow-redirects from 1.14.7 to 1.15.4 in /test (#1903)
6774aa2 Bump qs and body-parser (#1895)
72c1c59 Bump browserify-sign from 4.2.1 to 4.2.2 (#1901)
2f8deb5 Bump debug from 4.1.1 to 4.3.4 in /test (#1897)
455f281 Bump mongodb from 3.6.7 to 3.6.10 in /nuve (#1896)
5467189 Bump tough-cookie and node-gyp in /erizoAPI (#1891)
bfbb9ed Bump tough-cookie and node-gyp (#1892)
250d849 Bump xml2js and aws-sdk in /test (#1880)
ff787fe Bump semver from 5.7.1 to 5.7.2 in /test (#1893)
27a7d65 Bump word-wrap from 1.2.3 to 1.2.4 (#1894)
9515914 Bump semver from 7.3.4 to 7.5.3 in /erizoAPI (#1890)
8878fa6 Remove unnecessary preventDefault (#1889)
bf85162 Bump socket.io-parser from 4.2.1 to 4.2.4 (#1888)
3ca84fd Bump socket.io-parser from 4.2.2 to 4.2.3 in /erizo_controller (#1886)
532b236 Bump loader-utils from 1.4.0 to 1.4.2 (#1856)
a47f025 Bump minimatch from 3.0.4 to 3.1.2 in /erizoAPI (#1884)
af8ce9a Bump minimatch from 3.0.4 to 3.1.2 in /test (#1883)
8eecc44 Bump async from 2.6.3 to 2.6.4 (#1813)
e308579 Bump express from 4.17.1 to 4.17.3 in /nuve (#1864)
3e3474e Bump express from 4.17.1 to 4.17.3 in /erizo_controller (#1865)
cac3be6 Bump express from 4.17.1 to 4.17.3 in /extras/basic_example (#1866)
476da59 Bump cookiejar from 2.1.2 to 2.1.4 (#1871)
e79e6f3 Bump json5 from 1.0.1 to 1.0.2 (#1870)
a69387e Fix google closure compiler for macosx (#1877)
db06146 Bump qs from 6.5.2 to 6.5.3 (#1860)
5dfc48a Update conan to 1.54 (#1875)
efa2f60 Bump qs from 6.5.2 to 6.5.3 in /erizoAPI (#1867)
18130ba Bump ua-parser-js from 0.7.32 to 0.7.33 (#1872)
7c16621 SocketIO update to 4.5.0 (#1817)
b5375ee Update conan to 1.53 (#1853)
dac5ecd Bump karma from 6.3.2 to 6.3.16 (#1804)
1342d16 Bump minimist from 1.2.5 to 1.2.7 in /nuve (#1839)
f5d3ff8 Bump terser from 4.8.0 to 4.8.1 (#1824)
d62bc17 Bump follow-redirects from 1.14.7 to 1.14.8 (#1800)
8b7c921 Bump follow-redirects from 1.14.7 to 1.14.8 in /test (#1799)
0b4e2b2 Update to adapter.js (#1844)
92ece67 Node (#1818)
45e6443 Update to conan 1.52 (#1837)
3b97b5b Remove duplicate spatial layer judgments (#1834)
a2946d4 Update conan to 1.51 (#1833)
f2db2d3 MongoDB update (#1822)
5c82bec Use ontrack and onremovetrack instead of onaddstream and onremovestream (#1823)
d7935de Fix overuse estimator crash (#1820)
f221680 Properly mark packet type when receiving packets in WebrtcConnection (#1819)
5410432 RTSP and files play fix (#1815)
ad1ac9f Add transport-cc (#1814)
v10
Detailed PR List:
f9fca4e Avoid generating malformed padding packets (#1816)
19b1c47 Fix recording not stopping (#1812)
5623df2 Implement new padding manager calculation algorithm (#1810)
cb8fad8 Bump log4js from 6.3.0 to 6.4.0 in /extras/basic_example (#1794)
5753a79 Bump log4js from 1.0.1 to 6.4.0 in /spine (#1793)
59f1e16 Bump log4js from 6.3.0 to 6.4.0 in /nuve (#1792)
2110238 Bump log4js from 6.3.0 to 6.4.0 in /erizo_controller (#1791)
4f8e19e Fixes to recording (#1808)
ed24236 Adjust min bitrate with the number of streams (#1809)
2a30dbb Add connectionQualityLevel to Stats (#1807)
83b3ba3 Update circleCi image (#1806)
4bb40ab Fix ConnectionQualityLevel Events (#1805)
8c58f8e Prioritize having live videos in StreamPriorityBandwidthDistributor (#1801)
7df7628 Update webrtc library (#1797)
a892fbe Enable padding when in slideshow below_min_layer (#1790)
a612d02 Bump engine.io from 4.1.1 to 4.1.2 (#1781)
24c0c08 Bump aws-sdk from 2.747.0 to 2.814.0 in /test (#1770)
867e38e Bump aws-sdk from 2.566.0 to 2.814.0 in /erizo_controller (#1769)
31f49aa Bump aws-sdk from 2.566.0 to 2.814.0 in /nuve (#1768)
0dfc4d5 Bump ws from 7.3.1 to 7.5.6 in /test (#1789)
b2ab91a Bump follow-redirects from 1.13.1 to 1.14.7 in /test (#1782)
1619607 Bump copy-props from 2.0.4 to 2.0.5 (#1788)
6c8510e Bump follow-redirects from 1.14.1 to 1.14.7 (#1783)
7671d7c Bump axios from 0.21.1 to 0.21.2 in /test (#1755)
01c16c0 Bump ansi-regex from 5.0.0 to 5.0.1 in /test (#1760)
3910f40 Bump tar from 4.4.8 to 4.4.19 (#1749)
deb705e Bump tar from 6.1.0 to 6.1.11 in /erizoAPI (#1747)
bee3653 Fix to recording (#1786)
cd997c5 Bump path-parse from 1.0.6 to 1.0.7 (#1744)
c2866eb Change conan version (#1787)
f044d9e Use better variable names in SessionDescription (#1778)
2af0268 Notify about low conn quality levels if bw is not enough for first layers (#1776)
654aa32 Optimize padding and add stats for packets (#1774)
36b8a35 Fix crash when calling enableFallback/Slideshow below min layer (#1772)
d0c4dbc Fix conan builds (#1773)
58722d1 Make connection quality level depend on strategy (#1767)
fe3826e Give the option to reuse rooms with the same name (#1771)
9fff095 Hack to avoid not passing candidates in libnice (#1766)
273f5ed Fix WebRTCConnections not properly waiting for IceConnections to close. (#1765)
10414fa Fix race condition in scheduler (#1763)
dd417f6 Bring back the option to use libnice (#1752)
f79bbf2 Update Mac deps and reduce CI time with new log4cxx (#1745)
d5b7b65 Fix connection failed event (#1751)
6aaf5c1 Add ice disconnected timeout (#1746)
c60fb3b Add Backoff and ramp up periods in padding manager (#1741)
ed85550 Close all connections before exiting erizoJS (#1740)
1a85da4 Fix initializing connection target bw (#1738)
802e42b Implement target connection bandwidth (#1736)
9de56dc Repair GenericOneByteExtension memory leak. (#1735)
2cccc6f Fix issues with setMaxVideoBW and updateSimulcastLayersBitrate (#1733)
28e6434 Update Basic Example with more options (#1732)
c609b63 Bump color-string from 1.5.3 to 1.5.5 (#1731)
d71d6e6 Fix some negotiation logs (#1730)
550bcc3 Take into account passing undefined in updatesimulcastlayersbitrate (#1727)
f3ccb54 Estimate bandwidth in connection and don't limit by REMBs (#1726)
fed7d86 Fix stream republishing (#1725)
d460f3c Fix Simulcast Quality Layers (#1723)
9f646c8 Fix mediaStream priority initialization (#1721)
ef1b4fb Fix various issues related to unencrypted transport, stream priority and multiple publishers (#1719)
39db637 Fix the way we set the stream priority in ErizoAPI (#1718)
279d4d8 Implement Unified Plan (#1602)
da4c767 Handler API (#1690)
36a7742 Fix potential data race when updating targetIsMaxVideoBw (#1714)
311f046 Add max option for strategy (#1713)
9f342f5 Fix issues with socket.io v2.4.0 (#1711)
71fb501 Adjust bandwidth estimation stats for stream priority distributor (#1712)
075c942 Bump elliptic from 6.5.3 to 6.5.4 (#1685)
420a9f1 Bump hosted-git-info from 2.8.5 to 2.8.9 (#1710)
01d9027 Bump lodash from 4.17.20 to 4.17.21 in /nuve (#1709)
80d70f5 Bump lodash from 4.17.20 to 4.17.21 (#1708)
b21f135 Bump lodash from 4.17.20 to 4.17.21 in /erizo_controller (#1707)
8e15014 Bump bson from 1.0.9 to 1.1.6 in /nuve (#1706)
485943a Bump yargs-parser from 5.0.0 to 5.0.1 (#1693)
80fc5ab Bump y18n from 3.2.1 to 3.2.2 (#1691)
943d551 Bump socket.io from 2.0.4 to 2.4.0 in /erizo_controller (#1678)
v9
Detailed PR List:
436d498 Bump xmlhttprequest from 1.5.0 to 1.7.0 in /spine (#1705)
20afb98 Bump axios from 0.20.0 to 0.21.1 in /test (#1671)
5552186 Fix typedef structs and compiler version for erizoAPI (#1704)
4f57663 Fix Safari publish problem (#1703)
3bb99eb QualityManager cleanup (#1698)
e87be72 Fix bad check (#1701)
21ac798 Add stream priority to main stats (#1699)
058db9c Add protections when unpublishing, subscribing and unsubscribing streams (#1697)
cf2ad29 Stop padding if the distributor does not assign all the available bitrate (#1696)
14166af Update client with setStreamPriorityStrategy (#1694)
c6af765 Add stream prioritization (#1682)
e354da8 Address issues when building erizo (#1687)
007d29f Updated mongo and conan versions (#1684)
51aa3d7 Add Performance Metrics about ErizoJS to Prometheus (#1675)
c5d8b19 Fix new url format for mongodb (#1677)
1fc53ef Add stats about erizoJS event loop lag (#1674)
a9a29f8 Update Nuve MongoDB client (#1670)
dddc6fb Fix Firefox onnnegotiation needed (#1669)
0ad7dc5 Bump ini from 1.3.5 to 1.3.8 (#1668)
862f8e9 Fix a crash in depacketizer that happened when we reset it (#1665)
5c48b69 Fixed installation in Ubuntu 20 (#1664)
98f86e2 Fix addStream not triggering createOffer (#1659)
7529cda Implement ICE restarts (#1572)
c217119 Updated installation doc (#1657)
ed1ce4e Enable basic features by default in basic example (#1656)
84c31a7 Fix a typo when calling to logger API (#1652)
9831a5d Refactor websocket reconnections to ack messages (#1619)
0f781ce Bump lodash from 4.17.15 to 4.17.20 (#1648)
3b8cd63 Bump lodash from 4.17.15 to 4.17.20 in /erizo_controller (#1647)
a795f81 Bump elliptic from 6.5.2 to 6.5.3 (#1621)
95bff77 Two minor fixes in metrics and tests (#1646)
8a1eb05 Update to Ubuntu 20.04 (#1635)
b0b99a5 Add metrics about promises duration and delay (#1644)
f4e1006 Add more info to StreamFailed events (#1643)
03bca1d Add stats about the delay added to running tasks in Workers (#1642)
56f494c Update remove client in erizoJS (#1638)
57965d8 Fix memory leaks and optimize code (#1636)
e898774 Fix problems with logs (#1626)
4b01584 Add more detail to unhandled promises error log (#1634)
c2c3b98 Force v8 promise resolving to publish/subscriber faster (#1633)
1b95307 Remove FuturesManager (#1632)
6038d5c Add more info with connection-failed events (#1631)
1d97c8a Add parameterized tests for edge negotiation tests (#1630)
95fdef6 Add first negotiation tests (#1629)
196ff1b Print nicer logs (#1628)
e9a44a7 Check that the qualityManager is initialized (#1620)
3da3b8d Add qualityLevel stat (#1617)
b040a1a New Client API to update active simulcast layers for publishers (#1612)
6c19bcd Update x509 cert version to 3 (#1610)
afcec80 Initialize timer to trigger connection quality level events (#1608)
a7d50bd Centralize the way we get configuration flags in BasicExample (#1607)
fea9fd3 Add more info to logs (#1606)
f554a95 Make global variables part of window in basicExample (#1605)
6a26436 Catch the exception if the player dom element fails when being removed (#1601)
696f926 Add SR info to algorithm in ConnectionQualityCheck (#1599)
310558b Let us use predefined superservice credentials (#1600)
bc96a35 Added logging for basicExample (#1596)
7fa5917 Fix default nuveUrl (#1598)
8aa0c2d Update timings to trigger connection quality levels (#1597)
1d660a8 Give a better structure to client logs (#1595)
1386403 Use log modules in Erizo Client (#1592)
e71cec4 Fix stream used for check - should use the one for the stream in erizo (#1590)
5d57b23 Fix Firefox SDP negotiation and Simulcast (#1589)
9dc4525 Fix minor issues in docker docs (#1588)
abd52d8 Use more configuration values in the Basic Example (#1587)
a3ce98d Wrong configuration item used (#1586)
87a64b7 Fix wrong check when installing on ubuntu (#1585)
8a0aeb8 Emit re/connection events (#1571)
1c8e609 Fix Opus download URL (#1576)
af3e550 Update nICEr (#1567)
8a1c0ab Bump minimist from 1.2.0 to 1.2.5 in /nuve (#1557)
1287c12 Fix race conditions between publish/unpublish (#1559)
a2df683 User WeakPtr instead of raw pointers in MediaDef (#1558)
2f2ec34 Avoid using publisher from OTM (#1556)
ad4af20 Check for null pointers in OTM (#1554)
4e048a0 Fix a wrong negotiation timeout (#1552)
48ac857 Fix an issue in ErizoController with getopt (#1551)
bf44dd2 Put back audio delay hack and add stats (#1550)
f20c7bd Cleanup of SdpInfo and handle ICE Candidates from JS (#1549)
abb186a Trigger connection-failed events when negotiation times out (#1547)
v8
This release is focused on three main areas:
- Video quality:
- better distribution of available bandwidth in singlePC.
- better handling of PLIs.
- fixes to BWE algorithms and RTP/RTCP.
- Negotiation:
- Sending offers from erizo for subscriptions.
- Streamlined negotiation with queues in both client and server side.
- Better stream management.
- Dependencies cleanup and update:
- We’re now using Node v12 and C++ 14,
- new versions of Conan, mocha, eslint, Winston…
- we no longer require libnice and glib
And, as always, many fixes and compatibility updates.
Detailed PR List:
b121802 Improve the way we look for Erizo Client Connections internally (#1544)
a1bc273 Skip ice candidate if peer and stream objects are NULL (#1534)
3f4faad Add sdp version control to start sending bytes when negotiation has finished (#1518)
2a842f7 Send SDP Offers from Erizo by default (#1543)
7a1e2f4 Skip extension renegotiations (#1542)
70c761a Fix negotiation when removing streams (#1541)
dff3da1 Queue negotiation messages in ErizoJS (#1527)
85607ae Add an option to specify OpenSSL dir in nICER (#1538)
264fcc3 Add null check for transport. (#1536)
fb367b8 Fix MongoDB installation in mac (#1535)
7949e8f Update mocha and winston (#1529)
08dde5d Fix audio/video only streams with Firefox (#1514)
3eaa691 Update conan version to 1.21 (#1531)
afb7c76 Fix issues with video mute in trackMuteHandler (#1525)
7f72f03 Add package-lock and fix indentation issues (#1524)
7d553dc Better handling of SSL errors (#1523)
8824401 Fix PT negotiation with format parameters (#1517)
83a7796 Add option to send offer from erizo in subscriptions (#1516)
bb69da4 Fix paths in docs and update info about docker (#1515)
b8698d7 Add networkInterface as an option to docker run (#1513)
e424da9 Fix cloning of SimulcastInfos (#1510)
51d6426 Update docs to latest mkdocs version (#1511)
32a1658 Fix RR handling for SenderBWE (#1507)
188d23d Fix/periodic plis keyframe check (#1509)
fcdfdaa UseNicer is no longer needed (#1508)
ecf9a0d Update C++ to version 14 (#1506)
4128c9c Remove libnice and glib (#1505)
d546d84 Bump eslint from 3.19.0 to 4.19.1 (#1504)
27749a4 Update to Node v12 (#1500)
cb2d43c Install JS deps via new package.json files (#1499)
5fffe48 Remove Resizer and use CSS object-fit instead (#1498)
df60a82 Update RTCP SR timestamps in Simulcast (#1489)
feebd7c Fix intervals in periodic Plis (#1497)
d878442 Add periodic Pli handler (#1493)
818282d Fix mongojs version used in nuve (#1496)
527823d Calculate target bitrate from max constrained layer (#1490)
7693e93 Do not count padding bitrate as video bitrate stat (#1488)
d094beb Avoid audio drifting by updating audio SRs (#1487)
cc1f77d Fix the way we detect abs send time to update it (#1486)
d3ba48b Fix Stats retrieved from Ackuaria when connection is closed (#1485)
d359b28 Fix Audio SDES packets that were corrupted in OTM (#1483)
0a172a6 Add commit and public ip info to prometheus metrics (#1482)
59c19c9 Implement Pli Priority Handler (#1480)
458edbc Add new Padding Manager in WebRtcConnection (#1476)
15c6180 Fix arguments for removeSubscriber in removeSubscriptions (#1479)
2d69aba Add WebRtcConnection stats to json (#1474)
4024010 Also search REMBs and RRs after SRs (#1473)
d9dc184 Move SenderBandwidthEstimationHandler to WebRtcConnection (#1472)
8612391 Add remb value to subscriber stats (#1470)
6136772 Client API documentation for explaining MediaDevices.getDisplayMedia() (#1471)
8349b09 Enabling GetDisplayMedia for screensharing (#1468)
e8fabdb Fix the way we get subscribers for ErizoJS metrics (#1469)
2edef3b Fix log to use the new variable and fix stats (#1467)
1a4e0a4 Ensure we use Setup actpass role when setting remote offers in Erizo Client (#1464)
0694784 Add more metrics to ROV (#1465)
a54eb4a Refactor Stream Management in ErizoController (#1463)
edac94f Reduce MediaStream stats frequency (#1461)
2560dad Fix conan library by using latest version (#1462)
b568e51 Add a new mechanism to enable fallback mode on high audio losses (#1450)
df8bf3c Fix basic example port (#1460)
7fd6e07 Put padding removal after bandwidth estimation in pipeline (#1458)
0ffda9b Add a basic pipeline to webrtcconnection (#1456)
69f1a97 Fix ExternalInput for RTSP sources (#1453)
b789309 Use nICEr as the default ICE connection (#1455)
1b0154c Add Nuve and Basic Example ports to licode config (#1454)
818f372 Use nICEr as the default ICE connection
v7
Bug fixes and stabilization of Single Peer Connections
This release fixes lots of bugs that were introduced while working on adding support
for Single Peer Connection and before. There have been also some interesting additions
such us ROV, which is a new remote client that gives access to the internals of licode
in real time, and we improved some features like Simulcast and mute/unmute.
Detailed PR List:
9326e95 Call callback even if mediaStream is not present or is closed (#1451)
6df6273 Resolve getStats promise even if the stream cannot be locked (#1449)
dec57de Update adapter.js (#1448)
5af7246 Fix crashes when getting local sdp (#1447)
fa5ff61 Add a client API to update simulcast layer bitrate (#1445)
a1cbdeb Log the right message when media is rejected (#1444)
67f9102 Do not call uv_close from uv loop other than the main one (#1443)
28d4f90 Make getLocalSdpInfo async (#1441)
a62f59a Fix concurrency issues in ErizoAPI/MediaStream (#1442)
603a863 Set hardcoded maxVideoBW to a higher value (#1440)
c98519f Fix wrong connectionIds when using multiple erizoJS processes (#1439)
9b06533 Wait for mediaStreams to be closed before removing them from the list in ErizoJS (#1437)
3a2ae7e Use warning messages instead of errors (#1436)
667b3cc Fixed race conditions with promises when closing Nodes (#1429)
245fb64 Use shared_ptr instead of raw pointer for erizo OTM in erizoAPI (#1428)
f1fc7d2 Add docker latest tag for staging releases (#1427)
ed5253d Fix an issue with the release process (#1426)
ad852d5 Use promises when closing MediaStreams (and all sinks and sources) (#1425)
28ba178 Add origin info to streamEvent failed (#1424)
9ecd6b5 Fix SDP negotiation for resubscriptions (#1423)
d7507f2 Add Black keyframes in mute video (#1421)
9ebf7f5 Fix the way we detect layers in VP9 parser (#1420)
6b0b3c4 Set MaxVideoBW in ErizoJS when starting pub (#1419)
eb9a755 Minor typo issue (#1418)
562ac12 Implement customizing bitrate layer for simulcast (#1417)
d8d1f3d BWE Fixes for publisher estimation in chrome >72 (#1413)
563e584 Add more information to Room logs (#1411)
89c0d8e fix dtls multi-thread crash issue (#1409)
12b279b Fix h264 keyframe parse error (#1405)
d391121 Check if already unsubscribing when ice fails (#1410)
2625c24 update muteVideo and muteAudio for publishers with no subscribers (#1408)
b7623f4 call stream-unsubscribed when callback received and stream has failed (#1406)
ce1f09a add ExtensionId translator (#1400)
8b6b768 Connections now persist with Clients when in singlePC (#1402)
2aeefd4 Fix unsubscribe from the last stream in a connection (#1401)
2425fc4 Revert some unstable commits (#1397)
9c0d932 Kill Erizo Controller if CH is not reachable (#1394)
6e8c90d Fix audio issues caused by not creating offers (#1392)
e0c0bd0 change DTLSv1_2_method to DTLS_method (#1386)
2365d9e Fix unresolved promises and some minor fix (#1385)
31fec21 Added FSM to protect peerConnection use in basestack (#1387)
a6b7988 Decouple SDP negotiation from streams (#1377)
a814c1e Fix FIR check in QualityFilterHander (#1381)
ab2dfcb Fix warnings when building node addon (#1379)
86a4fd3 Update to 1.2 version of DTLS (#1380)
980b0d6 Add auto subscriptions API (#1361)
a30fc2c Remove socket listeners on channel disconnect (#1375)
6bff400 Fix negotiations by better protecting access to PeerConnection (#1371)
7d3ebef escape HTML tag (#1370)
0c34386 Added a periodic task that checks uptime in erizoJS (#1369)
cebc869 Added option to set a prefix for prometheus stats (#1365)
e8e5892 Add ROV - The licode tool for inspection and app-level stats (#1362)
f3aabf5 Fix exceptions due to too high marker rates (#1359)
d9cad1e Check if wrtc still exists (#1357)
f2384ef Fix negotiation problems in Single PeerConnection (#1355)
2eb262c Fix multiple minor issues when running Address Sanitizer (#1345)
a707296 Add start button in basicExample for onlySubscribe (#1347)
53ab4bf Properly set default callback in callRpc (#1348)
d55781c Add a new stream-unsubscribed event (#1343)
404f8c7 Fix issues when unsubscribing streams (#1342)
5b7e124 Minor fix in node.js client documentation (#1341)
85cada3 Use random SSRCs for subscribers (#1340)
d92f973 Fix memory corruption with latest nicer (#1339)
3c274db Go back to pre-es6 version of the db.eval function (#1337)
b136f91 FakeKeyframeGeneratorHandler only acts if transport is ready (#1335)
99e5473 Increment nICEr version (#1334)
cfe9e81 Add fake keyframe handler (#1332)
e21c150 Use eslint for nuve (#1321)
a7016fb Use of new version of nICEr (it allows more concurrent connections) (#1327)
1de9ef8 Set a google-closure-compiler version (#1325)
76331f3 Fix events on erizoList (#1323)
e972306 Do SSL/DTLS init on addon start instead of in DtlsClient Init (#1324)
4ddea91 Add info to log whether a stream quality is capped by layer constraints (#1320)
575e97f Update node js version (#1319)
5f3883c Burst size is now calculated depending on the packets to be sent (#1314)
4ecf9d9 Use forEach in the Map instead of Map.values() (#1316)
64d0b66 fix wrong skew correction in the scheduler (#1302)
f2e0ccf Add/use es lint for all erizoController components (#1308)
03b381f Fix SDP negotiation when a stream is audio only (#1307)
b37a5c1 Fixed crash when enablingSlideShowBelowSpatialLayer when un initialized (#1309)
v6
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)
v5
Detailed PR List:
340ef69 Fix wrong max audio bandwidth setting (#1126)
a255d03 Integrate depacketizer in ExternalOuput adding h264 (#1124)
4d20b76 Fix random unit test failure (#1122)
9450e93 Depacketizer component (#1094)
017b1dd Use private variables to save the codec type of the output format. (#1116)
6989eff Fix a crash that still happens when closing NicerConnection (#1118)
ca2e02c Fix wrong log parsing when creating releases (#1115)
b0e566c Fix async function in NicerConnection (#1114)
25e6a6f Add setup to every mediastream and avoid to set ACTPASS in dtls role as default. (#1112)
a48cdd6 check if targetClient is undefined (#1110)
32d4128 fix mediaSource overwriting for Firefox screen constraint (#1106)
ac94786 Add relay info to ICE candidates (#1104)
29663a5 Need to set video time base before push packets. (#1109)
3340d45 Generate SDPInfo in ErizoJS (#1105)
2f59e9f Handle Nuve addToken error (#1101)
334b536 Remove double quotes in the release description (#1102)
3a07e1f implemented proper sdp parser for older implementation of simulcast (Firefox) (#1100)
1d16bdb Fix missing generated nack (#1099)
65cfd90 Use strings to send the SDP within signalling messages. (#1098)
8e29026 Stop compiling client's code when running gulp watch (#1095)
316d6ec Fix for dangling pointer in logging (#1093)
25c1e6a fix temporary mutex and data race in NicerConnection (#1083)
2bd9aad H264 annex b parser (#1092)
46b6034 Firefox simulcast (#1078)
6b666e1 [NuveClient] replace Crypt/Base64 modules with native ones (#1090)
dd6cc6c Fix Simulcast with new SDP parser (#1089)
ac9b138 Separate Media from WebRTCConnection (#1077)
a2d1a28 Added parameter playsinline to video player (#1087)
e6cd88b Send SDP as JSON instead of String between clients and Erizo (#1075)
57bba5e Fixed screen sharing when no video param is included in config (#1069)
7dc4db2 Remove usage of throw errors in Erizo (#1071)
15cc8ef Updated feature review (#1068)
e191255 fix #919 docker crash on 2nd start (#1060)
a69ece9 Add close ErizoController on KeepAlive failure (#1067)
dfb674e Update AdapterJS to version 5.0.6 (#1057)
4c92ddb Fix Erizo SDP parser (#1056)
1b126ec Fix Erizo Client Resizer and use stream.srcObject (#1055)
b3e27cc Add support to configure codecs per room (#1051)
d73fd8d Pass media config to ExternalOutput and make video configuration dynamic (#1049)
ebd04d2 Apply coding style to ExternalOutput (#1048)
d607e1f Fix fmtp parsing in SDPInfo to use h.264 profiles (#1047)
4561131 Fix some Erizo crashes and client logs (#1046)
6547cc6 Add an options to force the client to use only TURN candidates (#1043)
21e4b87 Fix Socket events in Erizo Client (#1044)
95dc9e4 Add support to slideshow h264 videos (#1042)
3ddccc2 Erizo Controller refactoring to add Clients and Channels (#1041)
b4b1e8b Update global to lower case (#1039)
b70d0db Fix stream attributes change events (#1037) (#1038)
435d517 Accept a value zero in video constraints. (#1036)
ef1294f Make QualityManager decide the best layer upon constraints (#1035)
3fab39b Add an API to limit the max subscribed video resolution and framerate (#1034)
9c06d19 Add erizoJS debug option in configuration (#1033)
6b792c3 Add the option to mute audio/video before publishing/subscribing (#1032)
716cd8e Fix usage of liberizo debug version from ErizoJS (#1031)
33516f0 Install git client before release
3997dd0 Merge branch 'master' of github.com:ging/licode
88b14c9 Fix creation of releases
a6c6104 Apply maxVideoBW also to subscribers (#1030)
68b78a4 Send async events from pub to subs (#1029)
7a6a186 Add options to erizo build process (#1028)
3ce30d8 LayerDetectorHandler reads also resolution and framerate (#1026)
b1cadf7 CamelCase for old dataPacket (#1025)
ee4f012 Added first stress tests and improve test scripts (#1018)
v4
Detailed PR List:
Docker support
b1699fd Add another docker layer for dependencies (#972)
4a3c703 Fix docker push with multiple tags (#981)
d84ee2a Create a release script and improve docker image (#980)
ec74090 Fixed Docker image for firefox adding network settings (#882)
76f53df New dockerfile and start script (#871)
Ice refactor - Use NiceR
6798d94 Added input udp port range for nICEr (#931)
4847fe5 Fix issues when using Spine and NicerConnection (#922)
2b1f155 Fix spine with new erizo api and nicer (#921)
b595e39 Add ioThreadPool and all nICEr logic (#884)
c9a2a39 Add IceConnection Interface (#877)
15bd864 Add nICEr and nrappkit dependencies to CMake (#873)
ErizoClient Refactor
0cd22e5 Fix hasAudio and hasVideo to return always a boolean. (#1012)
174355d Added a gulp task per target (#1011)
4789eb1 Avoid sending messages when socket is not connected (#991)
b73b1b1 Enable sourcemap for bundle (#987)
bdb1f54 Avoiding rewriting old erizo.js (#983)
28944e3 Fix weird socket.io issues (#974)
16d4f88 Fix adaptation schemes (#973)
342fb9a Use webpack to build ErizoClient (#948)
99d5466 Fix some erizo client bugs since latest refactoring (#946)
b84d049 Add default functions to callbacks in Erizo Client (#944)
ab0b227 Upgrade socket.io to v2.0.3 (#943)
7cb23b6 Reduce some lines of code in Erizo Client (#941)
9705d7a Use adapter.js (#940)
b2ad483 Refactor Room.js in Erizo Client (#939)
8d84978 Use ESLint in Erizo Client. (#937)
a5d8f2f Added more options to customize logs in ErizoClient (#887)
251350e Added namespace to css classes in erizoClient (#883)
Bugfixes/misc:
76e3d39 Fix a leak when cancelling scheduled tasks (#1022)
179984f Fix Spine to use different rooms (#1020)
d940617 Add scripts to run performance tests (#1015)
adcf2f5 spine add stats and ES6 refactor (#1014)
eea593b Move IncomingStatsHandler to parse Incoming RTCP packets from subscriber (#1003)
eb3ee59 Fixed publishing in Spine (#1002)
033ab9d Added logger to ErizoFC (#1000)
5143d4d Update CODE_OF_CONDUCT.md
a3bbfec Use template for License (#999)
c5678cb Improved open source docs (#997)
8e375c3 Disable docs in libav configure (#993)
5b6f250 External input improvements (#990)
e18fbef Fix P2P Room Connection (#975)
b6edec9 Fix issues with audio only streams. (#986)
8c15d21 Added needed folders to release mechanism
d577431 Fix wrong place for ssh key import in release script
4127783 Added github to the list of known hosts in circleci
445984a Add deps to release and prerelease jobs.
e3a47c4 Fix wrong indentation in circleci config file
a6124fa Fix/deps cleanup (#979)
b045013 Add support to CircleCI (#967)
e520dcf Fix resizer (#965)
1bb1dca Updates vp8 picture id when switching spatial qualities (#962)
1a1e988 Fix/use mirror for libav (#961)
92a18e0 Fix slideshow mode in basic example. (#959)
77ae7e8 Cap max bitrate in sender bwe (#958)
2a5c82a Fix npm installation in scripts (#957)
ca1bafe Fix issues with screensharing in Chrome and with Resizer (#954)
9581026 Use fixed log4js version (#956)
41f608b Fix an issue when enabling padding the first time (#950)
8cc5475 Added location curl option (#949)
3dff5b5 Add a hidden API to disable forced layers in Simulcast (#903)
0ce79ce Fix wrong REMB detection with Chrome 60 (#942)
78599cd Add connectivity stats to spine (#932)
985ad02 Slight optimization in the packet's hot path (#927)
38686e3 Fixed documentation index page (#930)
70b3e8e Remove wrong script command (#928)
ee36400 Fix dtls fragmented certificate (#926)
44ad4ac Use OpenSSL to un/protect srtp packets and upgrade libsrtp to v2.1 (#925)
e709593 Fix erizoJS start and timeouts (#923)
b4b1639 Enable Mute Video option in the API to stop receiving data from server (#916)
b5eecf3 Add OTM to spine to enable pipeline (#917)
7491011 fix a crash when requesting stream stats in a p2p room (#911)
c73fdcc Minor change to fix travis script (#910)
c813ef2 Enabling rtcp stats subscriptions (#892)
33c7f5a Fix crashes when trying to use destroyed SSL clients (#902)
90355f6 Stack video horizontallly in basic example¨ (#896)
0b1ce9f Removed unused rpc public file (#895)
13e1f5a Add support for Electron screensharing (#894)
987badd Add/pass chrome desktop (#888)
68bcef8 Remove Simulcast WIP message (#881)
25dd1c5 Prevent the premature peerconnection close on Firefox (#878)
1347d51 Added template for reporting issues (#880)
f4ed697 Fixed Readme and nav bar in docs (#875)
v3
Simulcast has landed!
By enabling simulcast on a Chrome publisher (API details here) your video quality will no longer be dragged down by the worst connection in the room.
Enjoy your automatic spatial and temporal scalability.
As a bonus, we have tons of bugfixes and little improvements for you.
Detailed PR List:
Simulcast
a07da5f Make Simulcast API public (#861)
7f98067 Remove padding in publisher (#838)
9668b17 Fix ExternalOutput with Simulcast (#866)
1bd84a6 Disable padding when max layer is 0/0 (#820)
0a75766 Fixes unit tests and bad sequence number translations (#818)
f448295 Fixed jshint (#815)
d971639 Add Slideshow Fallback (#828)
f3a87a9 Fixed RtcpRrGeneratorTest.shouldReportDelaySinceLastSr test (#829)
0fb1dd2 Add a Token Bucket to limit RTX rate (#826)
e483800 Fix padding removal handler (#868)
27dc114 Fix padding removal handler (#847)
c30da45 Fix PLI sending rates (#827)
10283a2 Fixed padding remove implementation (#841)
d58f757 QualityManager will be disabled unless is_scalable (#821)
a6cef9d Update Quality Manager to add Rtp Padding (#801)
e8ceb00 quality manager logic (#797)
012f1ef Add a padding generator handler (#794)
de95e07 Fixed CPU use for the quality_layers page (#791)
233b979 Add layer bitrate calculation handler + Test page (#790)
f38a596 Add a handler to control PLI sending rate (#788)
5b1e27a Add a mechanism to drop padding bytes and packets (#786)
103c2ba Terminate RTCP Feedback in Scalable Video (#785)
b19c6a7 Fix several loops in SequenceNumberTranslator (#784)
82afe70 Fix quality filter with timestamp switching (#782)
dd4fe81 Handler to filter packets from higher quality layers (#775)
Added Stats
ee6f252 fixed MovingAverageStat when value < old_value (#865)
2a5ea08 Update charts in quaility_layers to show all streams (#810)
f8ce911 Add RoomId option to quality layers (#814)
5f7434b Add tabs and improve quality layers (#812)
e19c905 Add more stats (#809)
8c0575b Resolve conflicts when updating stats from different threads (#805)
d4e0587 Layers graph (#792)
e41532e Add moving average stats (#789)
Slideshow improvements
e04984d Fix slideshow keyframe detection (#825)
f664031 Fixed out of bounds insert in slideshowhandler (#831)
Bug fixes
a9d71e9 Fix 813 (#824)
7abd4f8 Minor log adjustment after libnice 0.1.4 fallback (#858)
a1368f7 Revert to libnice 0.1.4 also in Mac and Travis (#857)
69e2630 Revert libnice to version 0.1.4 temporarily (#855)
b45d994 Fixed a minor bug in stats (#863)
cb5207f Fix a SegFault when reading from closed connections (#804)
c0edb59 fix stream status after adding external input success (#852)
e0b41bb Fix a crash when deleting WebRtcConnection (#834)
b919915 Minnor doc fix (#836)
d313336 Copying nuve and erizoClient dist files in initBasicExample script (#823)
1bce5b3 Check if conn is ready before pipeline (#816)
a119ec0 P2p fix (#787)
b140244 Add nullptr check when delivering audio (#803)
c032023 fixed crash in nackGeneration because of an out of bounds index (#783)
Misc.
43d55d8 Fix/device id firefox (#848)
0a0ebb1 hardware disconnection event (#779)
7e07cf3 candidates won't be added when firefox was in audio publish only. (#854)
9925c65 Generate a 18 digits safe integer (#764)
445a14b Avoid using java in nuveClient installation (#837)
522b3f6 Closure compiler in javascript (#819)
9878707 Fix wrong reset in SeqNum Translator (#817)
0eaf57b Added the possibility of dynamically creating p2p rooms in basic example (#807)
70a94e9 Fix bad quality filter behaviour with VP9 SVC (#806)
ef96dc6 Add the option to update the max video bw in the subscriber (#798)
dca0135 Treat warnings as errors in GCC (#795)
dd5dcf8 Add/nack generation (#780)
v2
Release Notes
This is the first release of our new versioning scheme.
It groups all the work we've done in the last 14/16 months.
- Adaptation Schemes - Bandwidth monitoring for problematic subscriber connections.
- SlideShowMode - A low-bandwidth mode for subscribers that reduces framerate.
- Spine - A CLI Erizo client that supports sending and receiving media.
- New Threading model for Erizo.
- Server side stats. New implementation for Licode Stats and a new API to get those stats from the client side.
- Tons of stability work/bugfixes:
- Unit Tests
- Signaling path error checking
- Code linting
- Nuve crash recovery
- And many more