All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
Starting from 6.10.0, all of these Kurento Media Server sub-projects
- kurento-module-creator
- kms-cmake-utils
- kms-core
- kms-elements
- kms-filters
- kms-jsonrpc
- kurento-media-server
have their ChangeLogs unified in kurento-media-server/CHANGELOG.
6.8.1 - 2018-10-23
- GStreamerFilter: Allow using the 'textoverlay' filter.
6.8.0 - 2018-09-26
- Hub, HubPort: Add support for DATA streams.
- GStreamerFilter now can set the inner element's properties "on the fly" during runtime.
- Use kms_utils_element_factory_make() for better element names in debug graphs
- ModuleManager: Review startup logging messages
- Agnosticbin: Send TRANSCODING signals only once
- #144 AgnosticBin: FIXME Reconfigure pipeline
- BaseRtpSession: Fix memory leaks
- MediaSet: Fix unreleased memory on object unref
6.7.2 - 2018-05-11
- KmsBaseRtpEndpoint: New property "offer-dir", which allows to specify the SDP Offer direction when it gets generated by KMS.
- KmsBaseRtpEndpoint: Don't reduce RTCP interval if REMB is not used.
- All: Apply multiple fixes suggested by clang-tidy.
- #241 (Add 'a=setup' to SDP Offers).
6.7.1 - 2018-03-21
- agnosticbin: Add new signal "media-transcoding".
- API KMD: Server implementation for event "MediaTranscodingStateChange".
- MediaTranscodingStateChange: Write documentation.
- MediaPipelineImpl: Fix NULL dereferencing.
6.7.0 - 2018-01-24
- CMake: Compile and link as Position Independent Code (
fPIC
). - Add more verbose logging in some areas that required it.
- Debian: Align all version numbers of KMS-related modules.
- Debian: Remove version numbers from package names.
- Debian: Configure builds to use parallel compilation jobs.
- Reset stats after RTP source gets reconnected. The RTP sources assume a starting point of 0, so KMS must also adjust its own status after a reconnection.
- #197 (Composite Hub making audio choppy) with PR#9 (kmsenctreebin.c use max-size-time instead of max-size-buffers), by @ruddell (Jon Ruddell).
6.6.3 - 2017-08-10
- PR#7 (Prevent frames from building up in the buffer if the CPU falls behind), by @kc7bfi (David Robison).
6.6.2 - 2017-07-24
- REMB: Add "COMEDIA"/automatic port discovery. Documentation.
- REMB: Enable for RTP connections. Previously, it would only work for WebRTC.
- Old ChangeLog.md moved to the new format in this CHANGELOG.md file.
- CMake: Full review of all CMakeLists.txt files to tidy up and homogenize code style and compiler flags.
- CMake: Position Independent Code flags ("-fPIC") were scattered around projects, and are now removed. Instead, the more CMake-idiomatic variable "CMAKE_POSITION_INDEPENDENT_CODE" is used.
- CMake: All projects now compile with "[-std=c11|-std=c++11] -Wall -Werror -pthread".
- CMake: Debug builds now compile with "-g -O0" (while default CMake used "-O1" for Debug builds).
- CMake: include() and import() commands were moved to the code areas where they are actually required.
- REMB: Limit estimations to the "double of the max bitrate" only in increment phase.
- REMB: Make "minVideoRecvBandwidth" always >= 30 kbps.
- Bugfix: Out of bound access on SDP medias.
- PR#5 (Use format macros to fix compiler errors on 32bit systems), by @fancycode (Joachim Bauch).
- When a non incremental PTS is discovered in an input stream, the internal DTS gets updated with the new PTS value.
6.6.1 - 2016-09-30
- Improved thread management when using filters. Filter processing uses its own thread and drops packages that are late.
- Improved compilation issues.
- Fix problem in PTS synchronization algorithm when remote is sending wrong RTCP SR packages that produces backwards PTS.
6.6.0 - 2016-09-09
- Support for UriEndpoint.
- SDP Agent: Add support for error notification using GError, this allows raising betters exceptions to client.
- ServerManager: Add method to get memory used by the server.
- SDP Agent: Make code cleaner.
- Improved RTP synchronization algorithm, this makes recorder behave better when recording from RtpEndpoint or WebRtcEndpoint.
- Allow C++ to listen to signals with a return value.
- Updated documentation.
- UriEndpoint: Add property to get state.
- UriEndpoint: Add event to notify state changes.
- Memory problems during Media Elements disconnections.
- Memory problems in flowOut/flowIn events detection.
- Memory leaks.
- Rare media deadlocks on Agnosticbin.
- Improved Media Elements connection, some cases were not working correctly, specially when creating multi stream elements.
6.5.0 - 2016-05-27
- Agnosticbin: Add support for RTP format (only at output).
- Changed license to Apache 2.0.
- Updated documentation.
- REMB algorithm improvements.
- Max/min video bandwidth parameters (now 0 means unlimited).
- Raise events from differents threads.
- Bugs in Flow IN - Flow OUT event (caused a segmentation fault).
- Changed some event/methods names and deprecated old ones (which will be removed on the next major release).
6.4.0 - 2016-02-24
- Prepare implementation to support multistream.
- Add flow in and flow out signals that indicates if there is media going in or out to/from a media element.
- Add leaky queue in filters to avoid them to buffer media if the proccess slower than buffers arrive.
- Improve latency stats to add support for multiple streams.
- REMB algorithm improvements.
- Bad timestamp for Opus codec.
- Latency stats calculation.
- Some problems in SDP Agent.
6.3.1 - 2016-01-29
- Fix problem with codec names written in lower/upper case.
6.3.0 - 2019-01-19
- SdpEndpoint: Add support for negotiating IPv6 or IPv4.
- Add compilation time to module information (makes debugging easier).
- KurentoException: Add exceptions for player.
- Update Glib to 2.46.
- SdpEndpoint: Fix bug on missordered medias when they are bundle.
- Agnosticbin: Fix many negotiation problems caused by new empty caps.
- MediaElement/MediaPipeline: Fix segmentation fault when error event is sent.
- Agnosticbin: Do not negotiate pad until a reconfigure event is received (trying to do so can cause deadlock).
- SDP Agent: Support "mid" without a group (fixes problems with Firefox).
- Fix problem with REMB notifications when we are sending too much NACK events.
- RtpEndpoint: Add address in generated SDP ("0.0.0.0" was added so no media could return to the server).
- SdpEndpoint: Add "maxAudioRecvBandwidth" property.
- BaseRtpEndpoint: Add configuration for port ranges.
- UriEndpoint: Add default uri for relative paths. Now uris without schema are treated with a default value set in configuration. Directory "/var/kurento" is used by default.
- Update GStreamer version to 1.7.
- RecorderEndpoint: Change audio format for WEBM from Vorbis to Opus. This is avoiding transcodification and also improving quality.
- Fixed #12 (Kurento/bugtracker#12)
- SdpEndpoint: Raises error when sdp answer cannot be processed.
- MediaPipeline: Add proper error code to error events.
- MediaElement: Fix error notification mechanisms. Errors where not raising in most cases.
- Improvements in format negotiations between elements, this fixes problems in RecorderEndpoint and Composite.