Fixes the following error
File "/builds/vivia/gst-plugins-bad/gst-build/build/../subprojects/gst-examples/webrtc/check/basic.py", line 5, in <module>
from selenium import webdriver
ModuleNotFoundError: No module named 'selenium'
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-examples/-/merge_requests/17>
Reload the SSL context and restart the server if the certificate
changes. Without this, new connections will continue to use the old
expired certificate.
Pragmatically, an answer cannot be created until the offer is created as
the answer creation needs information from the offer. Practically, due
to implementation details, the answer was always queued after the set of
the offer and so the call flow did not matter.
The current code also hid a bug in webrtcbin where ice candidates would be
generated before the answer had been created which is against the JSEP
specification.
Change to the correct call flow for exemplary effect.
Tests a matrix of options:
- local/remote negotiation initiator
- 'most' bundle-policy combinations (some combinations will never work)
- firefox or chrome browser
Across 4 test scenarios:
- simple negotiation with default browser streams (or none if gstreamer
initiates)
- sending a vp8 stream
- opening a data channel
- sending a message over the data channel
for a total of 112 tests!
Avoid warning:
The character encoding of the HTML document was not declared.
The document will render with garbled text in some browser configurations
if the document contains characters from outside the US-ASCII range.
The character encoding of the page must be declared in the document
or in the transfer protocol.
Add a switch to the command line utility that makes it request
the initial offer from the peer instead of generating it.
Modify the webrtc.js example to support a new REQUEST_OFFER
message, and generate the offer when receiving it.
This writes an extended header and Picture-ID into each RTP packet
which makes Janus able to detect which frames are keyframes and
to request replacement keyframes.
Add some script configuration options to choose
between VP8 and H.264 near the top, to modify the video input
source, and to enable/disable RTX support
Otherwise all messages accumulate on the queue inside the bus and
nothing is ever removing them from there.
We handle messages elsewhere and only intercept them from the sync
handler.