Fixed missing PLI when restoring previously paused streams in VideoRoom (thanks @flaviogrossi!) [PR-2922]
Fixed deadlock when using the moderate API in the VideoRoom [Issue-2956]
Check if IPv6 is disabled to avoid failure when creating forwarder sockets in AudioBridge and VideoRoom [PR-2916]
Fixed invalid computation of Streaming mountpoint stream age (thanks @RouquinBlanc!) [PR-2928]
Also return reason header protocol and cause if present in BYE in the SIP plugin (thanks @ajsa-terko!) [PR-2935]
Fixed segfault in UNIX transport teardown caused by pathnames of different sizes
Added new demos on WebAudio and Virtual Backgrounds [PR-2941]
Fixed potential race conditions in multistream VideoRoom demo [Issue-2929]
Other smaller fixes and improvements (thanks to all who contributed pull requests and reported issues!)
[v1.0.0] - 2022-03-03
Refactored Janus to support multistream PeerConnections [PR-2211]
Moved all source files under new 'src' folder to unclutter the repo [PR-2885]
Fixed definition of trylock wrapper when using pthreads [Issue-2894]
Fixed broken RTP when no extensions are negotiated
Added checks when inserting RTP extensions to avoid buffer overflows
Added missing support for disabled rid simulcast substreams in SDP [PR-2888]
Fixed TWCC feedback when simulcast SSRCs are missing (thanks @OxleyS!) [PR-2908]
Added support for playout-delay RTP extension [PR-2895]
Fixed partially broken H.264 support when using Firefox in VideoRoom
Fixed new VideoRoom rtp_forward API ignoring some properties
Fixed deadlock and segfault when stopping Streaming mountpoint recordings [Issue-2902]
Fixed RTSP support in Streaming plugin for cameras that expect path-only DESCRIBE requests (thanks @jp-bennett!) [PR-2909]
Fixed RTP being relayed incorrectly in Lua and Duktape plugins
Added Duktape as optional dependency, instead of embedding the engine code [PR-2886]
Fixed crash at startup when not able to connect to RabbitMQ server
Improved fuzzing and checks on RTP extensions
Removed distinction between simulcast and simulcast2 in janus.js [PR-2887]
Other smaller fixes and improvements (thanks to all who contributed pull requests and reported issues!)
[v0.11.8] - 2022-02-11
Added initial (and limited) integration of RED audio [PR-2685]
Added support for Two-Byte header RTP extensions (RFC8285) and, partially, for the new Depencency Descriptor RTP extension (needed for AV1-SVC) [PR-2741]
Fixed rare race conditions between sending a packet and closing a connection [PR-2869]
Fix last stats before closing PeerConnection not being sent to handlers (thanks @zodiak83!) [PR-2874]
Changed automatic allocation on static loops from round robin to least used [PR-2878]
Added new API to bulk start/stop MJR-based recordings in AudioBridge [PR-2862]
Fixed broken duration in spatial AudioBridge recordings
Fixed broken G.711 RTP forwarding in AudioBridge (thanks @AlexYaremchuk!) [PR-2875]
Fixed broken recordings in NoSIP plugin
Fixed warnings when postprocessing Opus recordings with DTX packets
Other smaller fixes and improvements (thanks to all who contributed pull requests and reported issues!)
[v0.11.7] - 2022-01-24
Added faster strlcat variant that uses memccpy for writing SDPs [PR-2835]
Fixed occasional crash when updating WebRTC sessions [Issue-2840]
Changed SDP syntax for AV1 from "AV1X" to "AV1" [Issue-2844]
Fixed signed_tokens property not being saved to permanent rooms in VideoRoom (thanks @timsolov!) [PR-2843]
Made record directory changeable via "edit" in both AudioBridge and VideoRoom
Added configurable expected loss to AudioBridge to actually send FEC [PR-2802]
Fixed SIP plugin not working when using Sofia SIP >= 1.13 [Issue-2683]
Fixed occasional crashes in SIP plugin [Issue-2853]
Take note of video orientation extension when recording video in SIP plugin (thanks @adnanel!) [PR-2836]
Allow 180 besides 183 to have SDP as well (thanks @lejlasolak!) [PR-2849]
Fixed post-processor compilation issue with newer versions of FFmpeg [Issue-2833]
Added option to print extended info on MJR file as JSON in postprocessor (thanks @adnanel!) [PR-2858]
Allow pcap2mjr to autodetect SSRC
Fixed problems compiling post-processor with older versions of FFmpeg
Other smaller fixes and improvements (thanks to all who contributed pull requests and reported issues!)
[v0.11.6] - 2021-12-13
Added strlcat helper to detect and report truncations [PR-2792]
Grow buffer as needed when generating SDPs [PR-2797]
Fixed occasional segfaults when hanging up VideoRoom subscribers
Fixed RTSP issues when fmtp is missing (thanks @lionelnicolas!) [PR-2190]
Fixed RTSP not following redirects, when used (thanks @lionelnicolas!) [PR-2195]
Fixed SRTP-SDES and renegotiation issues in NoSIP plugin (thanks @ihusejnovic!) [PR-2196]
Other smaller fixes and improvements (thanks to all who contributed pull requests and reported issues!)
[v0.10.0] - 2020-06-01
Added support for negotiation of codec profiles (mainly VP9 and H.264) [PR-2080]
Added new callback to let plugins know when the datachannel first becomes available, and then any time it's writable (empty buffers) [PR-2060]
Added support for data channel subprotocols [PR-2157]
Added new event handler for GrayLog using GELF (thanks @mirkobrankovic!) [PR-1788]
Added per-user override of global room 'audio_active_packets' and 'audio_level_average' properties to AudioBridge and VideoRoom (thanks @mirkobrankovic!) [PR-2158]
Notify speaker that started/stopped talking too, when talking events are triggered in VideoRoom and AudioBridge (thanks @maxboehm!) [PR-2172]
Allow listing of private rooms/mountpoints if an admin_key is used (thanks @robby2016!) [PR-2161]
Fixed RTCP support not triggering PLIs for new simulcast mountpoint viewers [Issue-2156]
Fixed buffering of keyframes not working in Streaming plugin (thanks @TomFFF!) [PR-2170]
Added support for buffering of keyframes to RTSP mountpoints too (thanks @lionelnicolas!) [PR-2180]
Fixed renegotiation support in SIP plugin when audio/video is added (thanks @ihusejnovic!) [PR-2164] [PR-2173]
Fixed menus in html documentation when using Doxygen >= 1.8.14 (thanks @i8-pi!) [PR-2155]
Other smaller fixes and improvements (thanks to all who contributed pull requests and reported issues!)
[v0.9.5] - 2020-05-18
Fixed sessions not being cleaned up when disabling session timeouts and the transport disconnects (thanks @nicolasduteil!) [PR-2143]
Added option to keep candidates with private host addresses when using nat-1-1, and advertize them too instead of just replacing them
Added auth token, if available, to 'attached' event (handlers) and to Admin API (handle_info)
Added new API to start/stop recording a VideoRoom as a whole, and a new option to prevent participants from starting/stopping their own recording (thanks @wheresjames!) [PR-2137]
Fixed rare deadlock when wrapping up Streaming plugin mountpoints [PR-2141]
Fixed rare deadlock when destroying AudioBridge rooms
Added synchronous request to check if an announcement is playing in the AudioBridge
Fixed AudioBridge announcement not waking up sleeping forwarder
Added global room mute/unmute support to AudioBridge
Added configurable DSCP support for outgoing RTP packets to SIP and NoSIP plugins (thanks @GerardM22!) [PR-2150]
Added support for RTP extensions (audio-level, video-orientation) to NoSIP plugin [Issue-2152]
Added option to configure ciphers suite for secure WebSockets (thanks @agclark81!) [PR-2135]
Added timer to janus.js to avoid spamming onmute/onunmute events and flashing videos [PR-2147]
Added a new tool to convert .pcap captures to .mjr recordings [PR-2144]
Other smaller fixes and improvements (thanks to all who contributed pull requests and reported issues!)
[v0.9.4] - 2020-05-04
Updated code not to wait forever for local candidates when half-trickling and sending an SDP out
Fixed occasional CPU spiking issues when dealing with ICE failures (thanks @sjkummer!)
Fixed occasional stall when gathering ICE candidates (thanks @wheresjames!)
Fixed the incorrect value being set via DSCP, when configured
Fixed occasional race condition when hanging up VideoRoom subscribers
Fixed Audiobridge and Streaming plugins not playing the last chunk of .opus files (thanks @RSATom!)
Fixed duplicate subscriptions (and SRTP/SRTCP errors) on multiple watch requests in Streaming plugin
Updated Streaming and TextRoom plugins to stop using legacy datachannel negotiation
Fixed occasional crash in HTTP transport when dealing with unknown requests
Fixed occasional disconnect in WebSockets (thanks @tomnotcat!)
Made RabbitMQ exchange type configurable in both transport and event handler (thanks @voicenter!)
Other smaller fixes and improvements (thanks to all who contributed pull requests and reported issues!)
[v0.9.3] - 2020-04-22
Change libsrtp detection in the configure script to use pkg-config
Fixed compilation error with gcc10
Fixed RTCP issue that could occasionally lead to broken retransmissions when using rtx
Added option to specify DSCP Type of Service (ToS) for media streams
Fixed a couple of race conditions during renegotiations
Fixed VideoRoom and Streaming "destroy" not working properly when using string IDs
Fix occasional segfault in VideoRoom (thanks @cb22!)
Fixed AudioBridge "create" not working properly when using string IDs
Added support for playing Opus files in AudioBridge rooms
Added support to Opus files for file-based mountpoints in Streaming plugin
Added support for generic metadata to Streaming mountpoints
Streaming plugin now returns mountpoint IP address(es) in "create" and "info", when binding to specific IP/interface
Fixed occasional segfault when using helper threads in Streaming plugin
Fixed occasional race conditions in HTTP transport
Added support for specifying screensharing framerate in janus.js (thanks @agclark81!)
Cleaned up code in janus.js (thanks @alienpavlov!)
Other smaller fixes and improvements (thanks to all who contributed pull requests and reported issues!)
[v0.9.2] - 2020-03-26
Converted HTTP transport plugin to single thread (now requires libmicrohttpd >= 0.9.59)
Fixed .deb file packaging (thanks @FThrum!)
Added foundation for aiortc-based functional testing (python)
Fixed occasional audio/video desync
Added asynchronous resolution of mDNS candidates, and an option to automatically ignore them entirely
Updated default DTLS ciphers (thanks @fippo!)
Added option to generate ECDSA certificates at startup, instead of RSA (thanks @Sean-Der!)
Fixed rare race condition when claiming sessions
Fixed rare crash in ice.c (thanks @tmatth!)
Fixed dangerous typo in querylogger_parameters (copy/paste error)
Fixed occasional deadlocks in VideoRoom (thanks @mivuDing and @agclark81!)
Added support for RTSP Content-Base header to Streaming plugin
Fixed double unlock when listing private rooms in AudioBridge
Made AudioBridge prebuffering property configurable, both per-room and per-participant
Added G.711 support to AudioBridge (both participants and RTP forwarders)
Added called URI to 'incomingcall' and 'missed_call' events in SIP plugin (in case the registered user is associated with multiple public URIs)
Fixed race conditions and leaks in VideoCall and VoiceMail plugins
Other smaller fixes and improvements (thanks to all who contributed pull requests and reported issues!)
[v0.9.1] - 2020-03-10
Added configurable global prefix for log lines
Implemented better management of remote candidates with invalid addresses
Added subtype property to differentiate some macro-types in event handlers
Improved detection of H.264 keyframes (thanks @cameronlucas3!)
Added configurable support for strings as unique IDs in AudioBridge, VideoRoom, TextRoom and Streaming plugins
Fixed small memory leak when creating Streaming mountpoints dynamically
Fixed segfault when trying to start a SIP call with a non-existing refer_id (thanks @tmatth!)
Fixed errors negotiating video in SIP plugin when multiple video profiles are provided
Updated SIP plugin transfer code to answer with a 202 right away, instead of sending a 100 first (which won't work with proxies)
Added several features and fixes several nits in SIP demo UI
Fixed janus.js error callback not being invoked when an HTTP error happens trying to attach to a plugin (thanks @hxl-dy!)
Other smaller fixes and improvements (thanks to all who contributed pull requests and reported issues!)
[v0.9.0] - 2020-02-21
Refactored core-plugin callbacks
Added RTP extensions termination
Removed requirement to enable ICE Lite to use ICE-TCP, even though it may cause issues (thanks @sjkummer!)
Added support for transport-wide CC on outgoing streams (feedback still unused, though)
Dynamically update NACK queue size depending on RTT
Fixed risk of RTP header memory misalignment when dealing with rtx packets
Users muted in AudioBridge by an admin are now notified as well (thanks @klanjabrik!)
Other smaller fixes and improvements (thanks to all who contributed pull requests and reported issues!)
[v0.8.2] - 2020-02-04
Added Travis CI integration (thanks @fippo for kickstarting it!)
New configuration property to add protected folders not to save recordings and pcap captures to
Fixed rare race condition when joining and destroying a VideoRoom session
Improved parsing of headers in RTSP messages (thanks @kefir266!)
Fixed segfault in AudioBridge when leaving a room before PeerConnection is ready
Fixed '500' errors being sent in response to incoming OPTIONS in the SIP plugin (thanks @ycherniavskyi!)
Fixed helpers not being able to send SUBSCRIBE requests in SIP plugin
Added option to fix audio skew compensation, if present, to janus-pp-rec
Other smaller fixes and improvements (thanks to all who contributed pull requests and reported issues!)
[v0.8.1] - 2020-01-13
Added binary data support to data channels
Fixed segfault at startup if event handlers or loggers directory couldn't be opened (thanks @kazzmir!)
Fixed potential segfault when closing logging at shutdown
Allowed RTCP ports to be picked randomly using 0, in Streaming plugin
Fixed occasional memory leak when destroying mountpoints in Streaming plugin
Fixed memory leak in SIP plugin
Updated 'referred_by' field to contain the value of SIP referred-by header, and not just the URI (thanks @pawnnail!)
Don't keep TextRoom plugin loaded if data channels were not compiled
Removed SIPre plugin from the repo
Fixed late initialization of janus.js constructor callbacks
Changed janus.js to use sendBeacon instead of XHR when closing/refreshing page
Other smaller fixes and improvements (thanks to all who contributed pull requests and reported issues!)
[v0.8.0] - 2019-12-12
Added changelog file to the repo and docs (thanks @oscarvadillog!)
Added new category of plugins for modular logging (stdout and file still there, and part of the core)
Removed option to enable rtx (now always supported, when negotiated)
Added gzip compression helper method to the core utils
Fixed RTSP SETUP issues when url contains query string parameters
Added option to gzip events when using the Sample Event Handler
Streamlined janus.js (thanks @oscarvadillog!)
Other smaller fixes and improvements (thanks to all who contributed pull requests and reported issues!)
[v0.7.6] - 2019-11-27
Split SDP lines when parsing on line feed only, and trim carriage feed instead (\n instead of \r\n)
Reduced default twcc_period (how often to send feedback when using Transport Side BWE) from 1s to 200ms
Added option to skip (and disable) unreachable STUN/TURN server at startup (thanks @sjkummer!)
Fixed video desynchronization when doing G.722/iSac audio
Other generic fixes on A/V desync
Added support for multiple concurrent calls for the same account to the SIP plugin
Added support for blind and attended transfers to the SIP plugin
Added way to inject custom Contact params in REGISTER to the SIP plugin
Added way to intercept non-standard headers in SIP messages to SIP plugin (thanks @ihusejnovic!)
Fixed missing SIP CANCEL when hanging up outgoing unanswered calls in SIP plugin
Added support for domain names (and IPv6) to RTP forwarders in AudioBridge and VideoRoom
Fixed broken b=TIAS SDP attribute support for Firefox in VideoRoom (thanks @MvEerd!)
Fixed and improved VP9 SVC support in VideoRoom and Streaming plugins
Added IPv6 support to Streaming plugin
Fixed potential segfault in Streaming plugin (thanks @garry81!)
Fixed occasional latching issues for RTSP in Streaming plugin
Other smaller fixes and improvements (thanks to all who contributed pull requests and reported issues!)
[v0.7.5] - 2019-10-28
Added warning at startup if libnice version is outdated (at least 0.1.15 recommended)
Added option to specify CWD when launching Janus as a daemon (thanks @l7s!)
Extended the STUN test via Admin API to support binding to a specific port, and return the public one
Fixed simulcast issue when needing to automatically drop to lower layers
Fixed potential endless loop when binding ports in the Streaming plugin
Made creating Streaming mountpoints more asynchronous (especially for RTSP)
Added support for SIP SUBSCRIBE/NOTIFY to SIP plugin
Added ability to add custom headers to SIP BYE (thanks @mmujic!)
Added option to specify IP to bind to for media in SIP plugin (thanks @razvancrainea!)
Fixed occasional segfault when leaving a VideoRoom
Added audio level dBov average to talk events in VideoRoom plugin (thanks @aconchillo!)
Added new synchronous API to mute other participants in the AudioBridge plugin (thanks @klanjabrik!)
Fixed typo in SDP processing in Duktape/JavaScript plugin, and tied Duktape logging to the one in the Janus core (thanks @l7s!)
Tied Lua logging to the one in the Janus core
Added command line option to janus-pp-rec to specify the output format (thanks @rscreene!)
Added new WebSocket and Nanomsg event handlers
Other smaller fixes and improvements (thanks to all who contributed pull requests and reported issues!)
[v0.7.4] - 2019-09-06
Fixed duplicate values in config that could result in wrong property being used
Fixed occasional race condition when processing SDPs (thanks @Bug-Fairy!)
Fixed broken SDP when rejecting audio/video m-line
Fixed Admin API not responding after sending messages to unresponsive plugins
Fixed some issues with RTSP support in Streaming plugin
Added option to keep recording Streaming mountpoints even when disabled
Allow SIP plugin to negotiate SRTP separately for audio and video
Fixed autoaccept_reinvites=FALSE not working when accepting calls in SIP plugin, and improved re-INVITEs support in general (thanks @pawnnail!)
Added possibility to have different addresses for remote audio and video in SIP, SIPre and NoSIP plugins (thanks @pawnnail!)
Make sure remote addresses are reset when call ends in SIP, SIPre and NoSIP plugins (thanks @pawnnail!)
Added SIP Reason Header (RFC3326) info to "hangup" event in SIP plugin, if available (thanks @ihusejnovic!)
Added method to list participants in a TextRoom (thanks @mtltechtemp!)
Added method to send a room announcement in TextRoom plugin
Fixed occasional segfault in TextRoom when using Admin API to send requests (thanks @MvEerd!)
Added support for MQTT v5, and fixed reconnection issue (thanks @feymartynov!)
Fixed occasional crashes when using more than one event handler at the same time
Added configurable bitrate values for rid-based simulcast to janus.js (thanks @vivaldi-va!)
Other smaller fixes and improvements (thanks to all who contributed pull requests and reported issues!)
[v0.7.3] - 2019-07-10
Added Admin API method to make synchronous requests to plugins
Fixed broken media when removing/adding it again in renegotiations
Fixed several issues related to datachannels
Fixed occasional memory leak in the core when ending sessions from plugins (thanks @uxmaster!)
Changed Janus API 'slowlink' event to use lost packets instead of NACKs, and made it configurable with a dynamic threshold
Fixed broken SDES length in compound RTCP packets (thanks @glenn-hpcnt!)
Fixed DTLS window size support in the core (thanks @garry81!)
Added status messages to MQTT transport (thanks @feymartynov!)
Changed default for sender-side bandwidth estimation in VideoRoom to TRUE
Fixed occasional segfaults when using RTP forwarders with RTCP support
Added VideoRoom RTP forwarder events to event handlers notifications
Added a configurable RTP range to the Streaming plugin settings
Fixed broken H.264 simulcast support in Streaming plugin
Refactored janus-pp-rec to support command line options
Fixed occasional segfault when post-processing VP8 recordings
Other smaller fixes and improvements (thanks to all who contributed pull requests and reported issues!)
[v0.7.2] - 2019-06-07
Removed requirement for both sdpMid and sdpMLineIndex to be in trickle messages
Set ICE remote credentials when receiving remote SDP, instead of later
Fixed occasional segfaults when using WebSocket as a transport
Fixed segfault in WebSocket transport when using ACL
Added new Admin API messages to destroy a session, detach a handle and hangup a PeerConnection (same as Janus API)
Fixed leak when RTP forwarding with RTCP feedback in the VideoRoom plugin
Added support for third spatial layer when using VP9 SVC in VideoRoom (assuming EnabledByFlag_3SL3TL is used)
Fixed segfault when changing rooms in AudioBridge
Made sure the SIP stack doesn't accept new calls until the previous one has freed all resources
Fixed occasional segfault when pushing SIP messages to event handlers
Added option to locally cleanup handles when destroying a session in janus.js
Fixed exception in janus.js when using datachannels
Other smaller fixes and improvements (thanks to all who contributed pull requests and reported issues!)
[v0.7.1] - 2019-05-20
Added experimental debug mode with disabled WebRTC encryption (to use with the --disable-webrtc-encryption in Chrome unstable)
Added Janus API ping/pong mechanism to Admin API as well
Added Admin API methods to check address resolving capabilities and test a provided STUN server
Added check on ICE gathering process start (fixes issue with exhausted port range)
Added support for temporal layer in H.264 simulcast via frame marking
Made sure a PLI is sent on all layers, when simulcast is used
Fixed a crash when using event handlers in SIP plugin
Fixed some race conditions on hangups in SIP plugin
Added option to lock RTP forwarding functionality via an admin key/secret (VideoRoom and AudioBridge)
Fixed regression in Streaming plugin RTCP support
Added option to override payload type for RTSP mountpoints in Streaming plugin
Fixed a few issues saving permanent mountpoints in Streaming plugin
Separated checks for PeerConnection and getUserMedia support in janus.js (since plain HTTP hides getUserMedia now)
Added sanity checks on createOffer/createAnswer in janus.js
Fixed regression in simulcasting when doing SDP munging in janus.js
Other smaller fixes and improvements (thanks to all who contributed pull requests and reported issues!)
[v0.7.0] - 2019-05-10
Added support for multiple datachannel streams in the same PeerConnection
Forced DTLS 1.2 on older OpenSSL versions
Added first integration of SDP support in the fuzzers
Fixed several leaks in SDP utils
Explicitly disabled support for encrypted RTP extensions (was causing SDP inconsistencies)
Added count of incoming retransmissions to Admin API and Event Handlers stats
Improved check for H.264 keyframe (thanks bwerther!)
Modified "cap REMB" behavior to "replace REMB"
Fixed missing notification of lurkers when first joining VideoRoom with notify_join=TRUE
Improved support for incoming re-INVITEs in SIP plugin
Fixed check in WebSocket transport that could lead to crashes
Fixed occasional segfaults when postprocessing H.264 recordings
Added new callback to janus.js to intercept the SDP before it is sent, e.g., for munging purposes (thx @carlcc!)
Fixed direction property error in janus.js on Safari (thx @alienpavlov!)
Other smaller fixes and improvements (thanks to all who contributed pull requests and reported issues!)
[v0.6.3] - 2019-03-20
Removed folder with self-signed certificate (unneeded and confusing)
Added many fixes and improvements to the RTCP code
Fixed typos that caused issues when sending retransmissions using RFC4588
Fixed typo when sending empty RR coupled with REMB
Made sure the CNAME is always the same for all m-lines in an SDP
Added support for mid RTP extension
Improved support for rid-based simulcasting
Fixed publish errors in MQTT transport and event handler
Fixed issue when switching Streaming mountpoints powered by helper threads
Added info on whether VideoRoom publisher is simulcasting to join events
Added option for new VideoRoom subscribers to specify simulcast substream/layer to subscribe to in join request (before it was configure-only)
Added type definitions for janus.js (thanks Elias!)
Other smaller fixes and improvements (thanks to all who contributed pull requests and reported issues!)
[v0.6.2] - 2019-03-04
Added RTP/RTCP fuzzing targets and tools
Fixed occasional crash when pushing the local SDP to event handlers, when enabled
Fixed NACK issue when receiving an out of order keyframe
Added option to configure the TWCC feedback period
Added option to include opaqueID in Janus API events
Added option to negotiate Opus inband FEC in the VideoRoom
Added option to specify temporary extension when recording AudioBridge rooms, and event handler notification for when recording is over
Fixed occasional playout issue after recording, using Record&Play demo
Fixed typo in janus.js that affected replacing audio tracks in renegotiations
Changed default maxev (number of events in long poll results) to 10 in janus.js
Updated path of getDisplayMedia in janus.js to reflect current spec (thanks cb22!)
Fixed ambiguous check in Janus.isWebrtcSupported in janus.js
Other smaller fixes and improvements (thanks to all who contributed pull requests and reported issues!)
[v0.6.1] - 2019-02-11
Added several fixes to RTP/RTCP parsing after fuzzing tests
Added fixes to keyframe detection after fuzzing tests
Fixed some demos not working after update to Chrome 72