Commit Graph

597 Commits (757923bbc4a1e3db75f67b5bd418f45c6d37a3a4)

Author SHA1 Message Date
Juan Navarro a11210a7ee openvidu-browser: adaptive simulcast config depending on source video
Do not blindly enable simulcast; instead, analyze the properties of the
source track in order to decide upon a good configuration:

* Take into account Google Chrome decision table which dictates how many
simulcast layers will be sent at most:
https://source.chromium.org/chromium/chromium/src/+/main:third_party/webrtc/media/engine/simulcast.cc;l=90-114;drc=d3251968d1b3dbe7e1353a3f15970b47173103e9

* Limit bitrate and resolution on webcam videos, or framerate on
screenshare videos.
2022-01-28 14:03:26 +01:00
Juan Navarro 786f1009fb openvidu-browser: Stream.typeOfVideo backwards compatibility fix
Stream.typeOfVideo was a string and cannot be changed into an Enum
without breaking some client applications.

However, it is possible for us to start using an Enum internally, and
exporting this property as a union of strings, which is what is
generated by "keyof typeof Enum".
2022-01-28 13:56:46 +01:00
pabloFuente 4fe0a4fda2 openvidu-browser: add TypeOfVideo 2022-01-27 14:42:01 +01:00
pabloFuente f158119d68 openvidu-browser: error message when calling deprecated LocalRecorder#record(string) 2022-01-26 18:51:20 +01:00
pabloFuente 925a51482d openvidu-browser: replace mime-types with mime dependency 2022-01-26 18:34:50 +01:00
pabloFuente 8976cba6ce openvidu-browser: update dependencies versions 2022-01-26 17:59:31 +01:00
pabloFuente 3aae9a0ab1 openvidu-browser: revert wrong imports 2022-01-26 17:59:15 +01:00
pabloFuente 0010ac1157 openvidu-browser: install inherits and events packages 2022-01-26 17:38:23 +01:00
pabloFuente 4ca3839821 openvidu-browser: fix LocalRecorder 2022-01-26 17:23:16 +01:00
Pablo Fuente Pérez 6d37e4ce1f
Merge pull request #688 from Flamenco/patch-2
Check for outboundStreamOpts before accessing it
2022-01-26 14:31:06 +01:00
pabloFuente ad8e8938d4 openvidu-browser: ensure Promise return on every resolve and reject 2022-01-26 12:18:05 +01:00
Flamenco 39c9cec7d1
Ensure video element mirroring is removed
When reusing a video element between a local stream with mirroring, and a remote stream with no mirroring, the element's mirror transform was not getting removed.
2022-01-25 14:11:31 -05:00
Flamenco 75b88175cb
Check for outboundStreamOpts before accessing it
This method should be the same as the others in regards to checking for valid property.
It seems the extra logic for `isElectron` evaded the correct checking when calling from an incoming stream.

Error reported:
TypeError: Cannot read properties of undefined (reading 'publisherProperties')
```
2022-01-25 12:49:23 -05:00
pabloFuente 1965a6b44f Update doc API with new Typedoc camelcase syntax in links 2022-01-14 13:31:26 +01:00
pabloFuente c30091ee06 openvidu-browser: new event documentation 2022-01-13 13:54:34 +01:00
pabloFuente 58edee6b97 openvidu-browser: extend accessDialogOpened event time from 1500 to 2000 ms 2022-01-13 13:50:01 +01:00
pabloFuente 9f20cc2485 openvidu-browser: update Copyright date 2022-01-13 11:18:47 +01:00
pabloFuente 200c1db526 openvidu-browser: fix TypeDoc config to properly exclude unwanted folders 2022-01-12 03:38:45 +01:00
pabloFuente 3763904f73 openvidu-browser: update TypeDoc for TS compatibility 2022-01-12 03:02:31 +01:00
pabloFuente 695c13769c openvidu-browser: update TS version. Fix "signal:X" event typings 2022-01-12 01:48:40 +01:00
pabloFuente 4e304b18d4 openvidu-browser: fix RTCIceCandidate and Blob errors 2022-01-12 01:36:53 +01:00
pabloFuente 82bd984bbe openvidu-browser: add event maps to achieve typings for all Events 2022-01-10 12:46:39 +01:00
pabloFuente 777b329e9f openvidu-browser: optional handler property in Session.off method 2022-01-10 11:39:24 +01:00
pabloFuente e09d0f171e openvidu-browser: hide semver imports. Fix RTCIceCandidate with null "address" 2022-01-10 11:37:31 +01:00
Pablo Fuente Pérez 358fb1af3a
Merge pull request #678 from OrkhanAlikhanov/master
openvidu-browser: improve typings for session event dispatcher methods
2022-01-10 11:36:06 +01:00
Juan Navarro 8e5f5d4cf4
openvidu-server, browser: Add Simulcast Publisher config (#680)
Simulcast is a per-Publisher configuration that allows to enable
Simulcast senders on the client's PeerConnection of each sender.

Simulcast is a WebRTC feature that sends multiple simultaneous streams
with different video qualities, in order to let the media server decide
which quality is best for which Subscriber on the receiving side.

Enabled by default.
2022-01-05 15:12:51 +01:00
Orkhan Alikhanov 250e5293e9 openvidu-browser: improve typings for session event dispatcher methods 2021-12-27 17:28:13 +04:00
pabloFuente e6b4f23fcf openvidu-browser: reconnection support for OpenVidu Enterprise 2021-12-23 15:28:23 +01:00
pabloFuente 24ba648015 openvidu-browser: heartbeatRequestTimeout set to 5 seconds 2021-12-23 11:30:55 +01:00
pabloFuente 18c7e5d524 openvidu-browser: close WebSocket with code and reason 2021-12-23 11:18:42 +01:00
pabloFuente c8597b450e openvidu-browser: remove unused method 2021-12-23 11:13:09 +01:00
Juan Navarro aba3311076 openvidu-browser: minor comment to match same in android & kurento 2021-11-05 15:52:47 +01:00
pabloFuente 8e418bfd16 Check openvidu-browser and openvidu-server compatibility 2021-10-27 14:04:19 +02:00
pabloFuente 4e6e37fe39 openvidu-browser: improved RecordingEvent docs 2021-10-15 10:56:45 +02:00
gtunon cf2cc34525 coturnPort as a number 2021-10-07 07:28:34 +02:00
gtunon 57faf14b21 Coturn port conf 2021-10-01 09:09:04 +02:00
pabloFuente 2e5f605225 /latest to /stable 2021-09-29 11:44:18 +02:00
jenkinsopenvidu 5ee08a2d62 Update to version v2.20.0 2021-09-22 16:16:07 +00:00
pabloFuente 8eae2e0eab openvidu-browser: OpenVidu.life logic 2021-09-10 14:41:30 +02:00
Juan Navarro 9dd62009fb openvidu-browser: remove inline outdated description of OpenViduAdvancedConfiguration
The resulting HTML docs are bad because they show an incomplete
description of the OpenViduAdvancedConfiguration type, which is then
duplicated (and more complete) in that type's description.
2021-09-09 17:40:01 +02:00
csantosm 8ce647c35b openvidu-browser: Handled promise rejection on getCommonStats 2021-09-01 11:36:20 +02:00
csantosm 3d46a2c473 openvidu-browser: Replaced error to warning log 2021-08-03 16:02:34 +02:00
jenkinsopenvidu 5a5e99c50c Update to version v2.19.0 2021-07-26 12:01:34 +00:00
pabloFuente 6ac6adbeea openvidu-browser: support other browsers in iOS 2021-07-13 11:49:05 +02:00
pabloFuente 0d739982a8 openvidu-browser: provide mediaServer as a WebRtcPeerConfiguration property 2021-07-08 12:39:08 +02:00
pabloFuente e1b6fb6179 openvidu-browser: fix subscription process when transcievers API not available 2021-07-07 12:54:23 +02:00
Juan Navarro e66c5d1070 openvidu-browser: simulcast default 3 layers and 4:2:1 scaling
Leaves maxBitrate undefined so the browser chooses which are the best
values.
2021-07-02 15:06:00 +02:00
Juan Navarro cf613aedfc openvidu-browser: simulcast on Firefox 2021-06-30 19:24:23 +02:00
pabloFuente 6d93fc3405 Forcibly reconnect subscribers upon publisher reconnection if necessary 2021-06-30 16:00:13 +02:00
pabloFuente 00d64ded9b openvidu-browser: onForciblyReconnectSubscriber 2021-06-30 15:33:05 +02:00
pabloFuente ffcb56cc0d openvidu-browser: simulcast configuration 2021-06-28 11:37:00 +02:00
cruizba 322ac2e843 openvidu-browser: Better naming for openvidu browser logs 'debug_app' option 2021-06-24 14:27:47 +02:00
cruizba ea56c09199 openvidu-browser: Remove unnecesary console.log in OpenViduLogger.ts 2021-06-23 22:03:57 +02:00
cruizba 42c833faf4 openvidu-browser: Add option 'debugApp' to send logs from app and from openvidu-browser 2021-06-23 21:37:26 +02:00
pabloFuente 1b22fd5c3a openvidu-browser: typed Session event handlers 2021-06-23 13:02:05 +02:00
Carlos Santos 66b1ce790d
openvidu-browser: Fixed bug when addTransceiver not available (#634)
After generateOffer() refactoring, the deprecated legacy method wasn't adding the meadstream tracks on peerConnection object as it used to do.
2021-06-22 13:31:25 +02:00
pabloFuente 3f0756984a openvidu-browser: log JSNLog messages in dev mode. Better initPublisher log 2021-06-22 12:58:00 +02:00
cruizba 7e739bc2d4 Fix comment context. Add end empty line 2021-06-21 15:07:32 +02:00
cruizba a54bcd773d Fix #631. Disable JSNLogger when openvidu-browser library is loaded 2021-06-21 14:52:01 +02:00
pabloFuente 1e4472f89d openvidu-browser: extend error logs to avoid empty objects 2021-06-21 12:54:29 +02:00
csantosm deb01720f3 openvidu-browser: Added rtt and remb stats 2021-06-18 12:19:04 +02:00
pabloFuente 3569d49df6 openvidu.browser: log error when addTransceiver not available 2021-06-16 12:58:00 +02:00
Juan Navarro e0f79e815e
openvidu-browser: rewrite generateOffer() to correctly handle all send/recv cases (#577)
* openvidu-browser: rewrite generateOffer to use Transceivers

Uses Transceivers if these are available in the underlying WebRTC
implementation; otherwise it falls back to the legacy "offerToReceiveX"
config of pc.createOffer()

* openvidu-browser: move Transceiver creation in createOffer/createAnswer

* WebRtcPeer: avoid getter syntax that doesn't compile with old Angular in testapp

* WebRtcPeer: finish rewriting createOffer() & createAnswer() with Transceivers

createOffer() can be used either for sending a "send" or "recv" offer to
the media server; this is needed for the KMS SDP negotiation semantics.

createAnswer() is used when in MEDIASOUP SDP negotiation mode, where the
media server is the one sending an SDP Offer to the browser.
2021-06-11 17:33:35 +02:00
pabloFuente 2fcf136fa3 openvidu-browser: fix disposeWebRtcPeer exception when no WebRtcPeer is available 2021-06-09 15:14:25 +02:00
pabloFuente 8e07cfd3d5 openvidu-browser: update package.json dependencies 2021-06-08 10:52:23 +02:00
pabloFuente 1f3bef9e01 openvidu-browser: fixed TypeDoc links 2021-06-03 11:23:17 +02:00
jenkinsopenvidu 516d3d76dc Update to version v2.18.0 2021-06-01 16:10:54 +00:00
pabloFuente d2f020415e openvidu-browser: TypeDoc "nodeCrashed" events reason 2021-06-01 15:02:12 +02:00
pabloFuente da527b4816 openvidu-brower: NO_STREAM_PLAYING_EVENT only for Subscriber 2021-05-31 15:42:48 +02:00
pabloFuente 21615755f9 Support subscription with different client-server negotiation order 2021-05-31 15:20:54 +02:00
pabloFuente 8e5836a21b openvidu-server: mediaServer joinRoom response parameter 2021-05-28 12:40:46 +02:00
pabloFuente b4c6c2b4a7 openvidu-browser: fix log for getRemoteConnection 2021-05-28 10:39:19 +02:00
pabloFuente d320da622c openvidu-browser: typed OpenViduAdvancedConfiguration#publisherSpeakingEventsOptions 2021-05-27 21:53:01 +02:00
pabloFuente 7895ac0562 openvidu-browser: automatic reconnection capabilites on ICE failure states 2021-05-27 21:30:01 +02:00
pabloFuente ac0e93ea27 openvidu-browser: rename WebRtcPeer handler methods 2021-05-27 21:28:17 +02:00
pabloFuente fccd21eefd openvidu-browser: OpenVidu#getWsReadyState 2021-05-26 13:03:10 +02:00
pabloFuente 05718efc2e openvidu-browser: fix ExceptionEvent NO_STREAM_PLAYING_EVENT (triggered by Session) 2021-05-26 13:01:35 +02:00
pabloFuente 6a049918d6 openvidu-browser: ExceptionEvent.NO_STREAM_PLAYING_EVENT 2021-05-25 20:22:31 +02:00
pabloFuente 8d39c2006e openvidu-browser: websocket abort reconnection upon MasterNode crash 2021-05-24 14:56:17 +02:00
pabloFuente a135ea0aec openvidu-browser: support Master Node crash 2021-05-24 14:55:47 +02:00
pabloFuente 0117e7ece4 openvidu-browser: WebRtcStats supported platform list updated 2021-05-19 10:46:43 +02:00
pabloFuente 52fee08e45 openvidu-browser: update broken RTCPeerConnection check 2021-05-19 10:46:00 +02:00
pabloFuente 5de36ddb15 openvidu-browser: extend ExceptionEvent with ICE_CONNECTION_DISCONNECTED 2021-05-17 13:30:08 +02:00
cruizba 429955e561 openvidu-browser: Configure JSNLog only when session id changes 2021-05-11 19:23:42 +02:00
cruizba 43339f7df8 openvidu-browser: Don't add HTMLElements to openvidu-browser logs 2021-05-11 18:53:53 +02:00
pabloFuente e5b4c725be openvidu-browser: Unified Plan support by default 2021-05-04 10:14:29 +02:00
cruizba 68eac029c1 Max length for log messages sent to not miss important information 2021-04-29 23:37:44 +02:00
cruizba b7da22180c Change to debug more possible long logs 2021-04-29 21:28:53 +02:00
cruizba 6fa2487ee0 Disable debug logs sending of openvidu-browser 2021-04-29 21:08:12 +02:00
cruizba b1be6e0bd5 Change log level from info to debug on possible big logs entries 2021-04-29 20:47:21 +02:00
cruizba a8917c17ac openvidu-pro: Index browser logs based on finalUserId 2021-04-29 18:45:26 +02:00
pabloFuente 7c494b0476 Send finalUserId to openvidu-browser on RPC joinRoom 2021-04-29 14:03:42 +02:00
cruizba e08057c6d2 Don't base64 some logs info headers 2021-04-29 13:26:54 +02:00
pabloFuente 09342806f2 openvidu-browser: remove extra debug logging when sending RPC request 2021-04-22 10:44:49 +02:00
cruizba e3f66a75ec openvidu-browser: Send logs for with sessionId and first connectionId. Avoid polling after unauthorized logs requests. 2021-04-08 16:17:35 +02:00
cruizba 5287ed631f openvidu-browser: Parametrized send openvidu browser logs, disabled by default 2021-04-07 17:29:51 +02:00
cruizba 89e73262aa openvidu-browser: Increased maxBatchLog to retaing logs after failed requests 2021-04-01 03:11:45 +02:00
cruizba cd8f89614a openvidu-browser: Add jsnlog as dependency 2021-03-31 17:22:19 +02:00
cruizba 5841d15a86 openvidu-pro: Adapt openvidu-browser and openvidu-server ce to send browser logs related with openvidu-browser in OpenVidu Pro 2021-03-31 17:12:37 +02:00
pabloFuente da3fb64073 openvidu-browser: fix Session.unpublish (check Connection.stream before deletion) 2021-03-31 12:49:21 +02:00