-
Notifications
You must be signed in to change notification settings - Fork 47
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Code autogenerated from Kurento/doc-kurento@4ce9614
- Loading branch information
1 parent
a1e5578
commit 21b261b
Showing
5 changed files
with
265 additions
and
84 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,7 +5,8 @@ Release Notes | |
.. toctree:: | ||
:maxdepth: 1 | ||
|
||
v6_16_1 | ||
v6_18_0 | ||
v6_17_0 | ||
v6_16_0 | ||
v6_15_0 | ||
v6_14_0 | ||
|
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
=================== | ||
6.17.0 (March 2022) | ||
=================== | ||
|
||
This is a very small release, made to incorporate the ability to inherit new modules from *RtpEndpoint*. | ||
|
||
To install Kurento Media Server: :doc:`/user/installation`. | ||
|
||
|
||
|
||
Changed | ||
======= | ||
|
||
Inheritable RtpEndpoint | ||
----------------------- | ||
|
||
The Kurento *RtpEndpoint* classes were *final*, meaning that it was not possible to inherit from them in order to create new, specialized versions of the endpoint. This was a problem for the fellow contributors at `Naeva Tec <https://www.naevatec.com/>`__, who were trying to write `SipRtpEndpoint <https://github.com/naevatec/kms-siprtpendpoint>`__, a new endpoint that contains specific behaviors to make it work well with SIP communications. | ||
|
||
This limitation got solved in this release. With the reorganization of several classes and introduction of a new internal library for the *RtpEndpoint*, it can now be inherited to create new classes based on it. | ||
|
||
Thanks to `@slabajo <https://github.com/slabajo>`__ (Saúl Labajo) for `Kurento/kms-elements#32 <https://github.com/Kurento/kms-elements/pull/32>`__ (*prepare for siprtp_module*) and `Kurento/kms-elements#33 <https://github.com/Kurento/kms-elements/pull/33>`__ (*RtpEndpoint library*). | ||
|
||
|
||
|
||
Other changes | ||
============= | ||
|
||
This list includes other changes and fixes contributed by users and/or fellow developers, who merit our sincere appreciation and thanks for sharing their work with the Kurento project: | ||
|
||
* `@pabs3 <https://github.com/pabs3>`__ (Paul Wise) for `Kurento/kurento-module-creator#3 <https://github.com/Kurento/kurento-module-creator/pull/3>`__ (*Add KurentoModuleCreatorConfig with path to FindKurentoModuleCreator*). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,232 @@ | ||
=================== | ||
6.18.0 (UNRELEASED) | ||
=================== | ||
|
||
One of the latest (if not the last) releases of the 6.x branch of Kurento; this one brings several deprecations that pave the way for introduction of the upcoming Kurento 7.0. | ||
|
||
To install Kurento Media Server: :doc:`/user/installation`. | ||
|
||
|
||
|
||
Added | ||
===== | ||
|
||
FLV Recording Profile for RTMP | ||
------------------------------ | ||
|
||
The *RecorderEndpoint* gained a new **FLV** recording profile, which means that the resulting files can be used directly for RTMP streaming. | ||
|
||
Thanks to `@alex1712 <https://github.com/alex1712>`__ (Alex) for `Kurento/kms-core#24 <https://github.com/Kurento/kms-core/pull/24>`__ and `Kurento/kms-elements#30 <https://github.com/Kurento/kms-elements/pull/30>`__ (*FLV media profile*). | ||
|
||
|
||
|
||
Changed | ||
======= | ||
|
||
WebRTC DTLS Quick Connection | ||
---------------------------- | ||
|
||
There was a design issue in the way Kurento established the WebRTC communications channel, that led it to mistakenly send the initial DTLS handsake packets before ICE had established a working network socket, leading to the dropping of such handsake packets. | ||
|
||
Thankfully, DTLS doesn't give up as soon as some packets are dropped; instead, it just follows a progressively larger timeout scheme. Eventually the ICE protocol would establish a working socket, and one of the DTLS reattempts would finally be able to travel through it. However, this whole delay meant that WebRTC connections were taking much more time than what they really should. | ||
|
||
Thanks to this change, now the DTLS handsake will be put on hold until ICE has finished its work and the network socket is well established and ready for comms; this way, the very first DTLS packets will already reach their destination, thus speeding up the whole process. | ||
|
||
Thanks to `@slabajo <https://github.com/slabajo>`__ (Saúl Labajo) for `Kurento/kms-elements#37 <https://github.com/Kurento/kms-elements/pull/37>`__ (*WebRTC DTLS handsake quick connection*). | ||
|
||
|
||
|
||
Deprecated: OpenCV extra modules | ||
================================ | ||
|
||
Kurento has always included several Computer Vision plugins and extension modules, for demonstration purposes. These were used to showcase the powerful, dynamic plug-and-play capabilities of Kurento Pipelines, providing a very visual and somewhat fancy way to convey how easy it is to manipulate video images in real time, with Kurento and OpenCV. | ||
|
||
However, Kurento's OpenCV modules had been written against the old, C-based API of OpenCV 2.0. Over time, OpenCV 3.0 evolved into a more modern C++ based API, while keeping some backwards-compatibility with older C code. This was enough for us to keep publishing the Kurento demonstration plugins on Ubuntu 16.04 "Xenial" and Ubuntu 18.04 "Bionic". However, on 2020 the release of Ubuntu 20.04 "Focal", **OpenCV 4.0 marks the point where the Kurento plugin code doesn't compile and must be retired**. | ||
|
||
The list of modules marked for retirement is as follows: | ||
|
||
* Plugins that came included in *kms-filters* module: | ||
|
||
- facedetector | ||
- faceoverlay | ||
- imageoverlay | ||
- logooverlay | ||
- movementdetector | ||
|
||
* Plugins that were offered as additional installable modules: | ||
|
||
- kms-chroma | ||
- kms-crowddetector | ||
- kms-datachannelexample | ||
- kms-markerdetector | ||
- kms-platedetector | ||
- kms-pointerdetector | ||
|
||
Starting with support for OpenCV 4.0, the old OpenCV 2.0 based plugin code cannot be compiled any more. Kurento project maintainers do not have the time, knowledge, or scheduling bandwidth to migrate these plugins into modern OpenCV 4.0 style code, so they will get discontinued until/unless some open-source community members can offer some help with porting them. If you'd like to see these plugins alive, and would be able to give us a hand, please contact us! :-) | ||
|
||
These removals will be efective starting from the next major release, Kurento 7.0. | ||
|
||
|
||
|
||
Deprecated: Renamed API methods | ||
=============================== | ||
|
||
This section details all API deprecations that occur with the intention of paving the way for a cleaned up API in Kurento 7.0. | ||
|
||
By following the renames detailed here, you should be able to make the jump to newer versions of Kurento without requiring any rewrites at the logic level. | ||
|
||
|
||
|
||
timestamp -> timestampMillis | ||
---------------------------- | ||
|
||
Several object classes contained a ``timestamp`` field, which wasn't fine-grained enough, so the ``timestampMillis`` field was introduced to replace the former. | ||
|
||
These classes are ``Stats`` (common parent of all Stats classes), and ``RaiseBase`` (common parent of all ``Event`` classes). | ||
|
||
* Old: ``timestamp`` - Seconds elapsed since the UNIX Epoch (Jan 1, 1970, UTC) | ||
* New: ``timestampMillis`` - Milliseconds elapsed since the UNIX Epoch (Jan 1, 1970, UTC) | ||
|
||
|
||
|
||
MediaObject and MediaElement | ||
---------------------------- | ||
|
||
These changes are located in the parent classes of all Kurento elements, so all Kurento classes are affected, such as ``RtpEndpoint``, ``WebRtcEndpoint``, ``PlayerEndpoint``, ``RecorderEndpoint``, etc. | ||
|
||
|
||
|
||
Media Events | ||
~~~~~~~~~~~~ | ||
|
||
A series of deprecations and renamings that normalize all events into the same naming convention. | ||
|
||
* Old: ``MediaFlowOutStateChange`` event | ||
* New: ``MediaFlowOutStateChanged`` event | ||
|
||
* Old: ``MediaFlowInStateChange`` event | ||
* New: ``MediaFlowInStateChanged`` event | ||
|
||
* Old: ``MediaTranscodingStateChange`` event | ||
* New: ``MediaTranscodingStateChanged`` event | ||
|
||
|
||
|
||
childs -> children | ||
~~~~~~~~~~~~~~~~~~ | ||
|
||
* Old: ``MediaObject.getChilds()`` | ||
* New: ``MediaObject.getChildren()`` | ||
|
||
|
||
|
||
setOutputBitrate -> minOutputBitrate, maxOutputBitrate | ||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
|
||
All ``MediaElement``-derived classes had a ``setOutputBitrate()`` method that could be used to set a specific target bitrate for the video stream. Instead, use the setters to specify a minimum and maximum desired target. To replicate the same behavior that ``setOutputBitrate()`` had, just provide the same value as both min and max. | ||
|
||
* Old: ``setOutputBitrate()`` | ||
* New: ``setMinOutputBitrate()``, ``setMaxOutputBitrate()`` | ||
|
||
|
||
|
||
minOuputBitrate, maxOuputBitrate -> minOutputBitrate, maxOutputBitrate | ||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
|
||
These changes fix a typo in the original property names. | ||
|
||
* Old: ``getMinOuputBitrate()``, ``setMinOuputBitrate()`` | ||
* New: ``getMinOutputBitrate()``, ``setMinOutputBitrate()`` | ||
|
||
* Old: ``getMaxOuputBitrate()``, ``getMaxOuputBitrate()`` | ||
* New: ``setMaxOutputBitrate()``, ``setMaxOutputBitrate()`` | ||
|
||
|
||
|
||
WebRtcEndpoint | ||
-------------- | ||
|
||
ICE Events | ||
~~~~~~~~~~ | ||
|
||
A series of deprecations and renamings that normalize all events into the same naming convention. | ||
|
||
* Old: ``OnIceCandidate`` event | ||
* New: ``IceCandidateFound`` event | ||
|
||
* Old: ``OnIceGatheringDone`` event | ||
* New: ``IceGatheringDone`` event | ||
|
||
* Old: ``OnIceComponentStateChanged``, ``IceComponentStateChange`` events | ||
* New: ``IceComponentStateChanged`` event | ||
|
||
* Old: ``OnDataChannelOpened``, ``DataChannelOpen`` events | ||
* New: ``DataChannelOpened`` event | ||
|
||
* Old: ``OnDataChannelClosed``, ``DataChannelClose`` event | ||
* New: ``DataChannelClosed`` event | ||
|
||
|
||
|
||
externalAddress -> externalIPv4, externalIPv6 | ||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
|
||
* Old: ``externalAddress`` setting | ||
* New: ``externalIPv4``, ``externalIPv6`` settings | ||
|
||
* Old: ``getExternalAddress()`` | ||
* New: ``getExternalIPv4()``, ``getExternalIPv6()`` | ||
|
||
* Old: ``setExternalAddress()`` | ||
* New: ``setExternalIPv4()``, ``setExternalIPv6()`` | ||
|
||
|
||
|
||
IceCandidatePair | ||
---------------- | ||
|
||
Unifies all Kurento "Id" members under the same naming convention. | ||
|
||
* Old: ``streamID`` | ||
* New: ``streamId`` | ||
|
||
* Old: ``componentID`` | ||
* New: ``componentId`` | ||
|
||
|
||
|
||
Stats | ||
----- | ||
|
||
inputAudioLatency, inputVideoLatency -> inputLatency | ||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
|
||
* Old: ``ElementStats.inputAudioLatency``, ``ElementStats.inputVideoLatency`` - Average latency, in nanoseconds. | ||
* New: ``ElementStats.inputLatency`` - Array of average latencies (``MediaLatencyStat[]``), in nanoseconds. | ||
|
||
|
||
|
||
audioE2ELatency, videoE2ELatency -> E2ELatency | ||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
|
||
* Old: ``EndpointStats.audioE2ELatency``, ``EndpointStats.videoE2ELatency`` - End-to-end latency, in nanoseconds. | ||
* New: ``EndpointStats.E2ELatency`` - Array of average latencies (``MediaLatencyStat[]``), in nanoseconds. | ||
|
||
|
||
|
||
Fixed | ||
===== | ||
|
||
* `#289 <https://github.com/Kurento/bugtracker/issues/289>`__ (*Kurento scaffolder produces not compilable code if using a wrong name*). | ||
* `#470 <https://github.com/Kurento/bugtracker/issues/470>`__ (*kmsaudiomixer outputs silence after running for 2 hours*). | ||
* `#616 <https://github.com/Kurento/bugtracker/issues/616>`__ (*Kurento Media Server not sending relay candidates, although configured, unless ANSWER is received or OFFER is processed*). | ||
* `#622 <https://github.com/Kurento/bugtracker/issues/622>`__ (*externalIpv4 and externalIpv6 affect all candidates instead of just host*). | ||
|
||
|
||
|
||
Other changes | ||
============= | ||
|
||
This list includes other changes and fixes contributed by users and/or fellow developers, who merit our sincere appreciation and thanks for sharing their work with the Kurento project: | ||
|
||
* `@dpocock <https://github.com/dpocock>`__ (Daniel Pocock) for `Kurento/kms-elements#35 <https://github.com/Kurento/kms-elements/pull/35>`__ (*CMakeLists.txt: explicitly list the Boost libraries required for linking*). |