- For loading components with inputs/outputs directives, has been necessary to use the 'ng-dynamic-component' library because of unsupported on the official Angular issue https://github.com/angular/angular/issues/15360
- Allowed the dynamic components load
- Grouped panels into panel component
Allows applications to set a custom string for the the connection ID,
which is a great help for debugging purposes, as it will appear in
all server logs and also will be used to set media server object names
(with obj.setName() API)
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".
* ov-room to ov-session
* ov-participant to ov-stream
* ov-chat to ov-chat-panel
* ov-participant-panel to ov-participants-panel
* ConnectionWrapper to StreamModel
- Commented not necessary code in user-settings which forced a new publisher init if device labels were empty
- Added more conditional cases initializing the default publisher in webrtc service
- Added video background color
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.
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')
```
Fill a new SessionProperties member "forcedVideoCodecResolved" to
contain the resolved value of "forcedVideoCodec", once the new
MEDIA_SERVER_PREFERRED has been taken into account and translated into
the appropriate option for each media server.
The logic to decide how to translate MEDIA_SERVER_PREFERRED into a
concrete forcedVideoCodec value is placed once in the REST entry point
of session creation (SessionRestController.java). Afterwards,
SessionProperties is just used as a simple storage for all session
features, and serialized / passed around between server and client.
MEDIA_SERVER_PREFERRED: A recommended choice is done for you,
based on the media server that is currently in use.
This is the default setting, and is equivalent to these values:
- For *mediasoup*, `NONE` is selected.
- For *Kurento*, `VP8` is selected.