Commit Graph

79 Commits

Author SHA1 Message Date
Jasper Hugo 68c9935823 Implement XMPP pings (client -> server) 2022-03-06 17:53:37 +07:00
Jasper Hugo 44208e28b3 fmt 2022-03-06 16:24:02 +07:00
Jasper Hugo c68a7cbe0a Make it possible to disable certificate verification 2022-03-06 16:23:46 +07:00
Jasper Hugo 3f27c90489 Updates for GStreamer 1.20, XMPP parsing improvements
* Updated GStreamer to 1.20
* Updated libnice to 0.1.18
* Vendored a minimal set of modified xmpp-parsers elements rather than
  the whole thing
* Implemented retries of the initial Colibri connection
* Updated deps
2022-03-06 12:01:37 +07:00
Jasper Hugo abd8bcb142 Added OpenSSL as build dependency in shell.nix 2021-12-24 18:19:16 +07:00
Jasper 9d6d696b08
Clarify YouTube example 2021-12-15 21:10:33 +07:00
Jasper 98dc9a2b5e
Mention Dockerfile in README 2021-12-15 21:09:23 +07:00
Jasper c273049f26
Mention pkg-config dependency in README 2021-12-15 18:08:21 +07:00
Jasper Hugo 36110cca62 Update Dockerfile to use AVStack Alpine packages for GStreamer 1.19.x 2021-12-15 18:05:42 +07:00
Jasper Hugo 75d825a7e8 Update dependencies 2021-12-14 22:04:58 +07:00
Jasper Hugo cdb61f5a6b removed abs-send-time, added back grouping element 2021-12-14 21:42:47 +07:00
Jasper Hugo 594414138c Send the full presence when muting/unmuting 2021-11-19 12:08:57 +07:00
Jasper Hugo 6b33952074 Remove capsfilters from pipeline (fixes #5) 2021-11-05 10:52:17 +07:00
Jasper Hugo eb1d6f096b shell.nix: use overridden gst-* for building libnice 2021-11-05 10:49:54 +07:00
Jasper Hugo a38099eb34 update shell.nix for new gstreamer dependencies 2021-11-05 10:18:45 +07:00
Jasper Hugo e061f83524 update shell.nix for gstreamer 1.19.3 2021-11-05 09:42:30 +07:00
Jasper Hugo 46d2de0d56 Update deps, and update shell.nix for successful build on macos 2021-11-05 09:29:31 +07:00
Jasper e8a6f4dc16
Mention gst-plugins-bad dependency 2021-10-26 21:50:26 +07:00
Jasper Hugo a57ce262ff gst-meet now replaces {jid} and {jid_user} with empty strings if no JID
The real JID of MUC participants is not always available (noticed in the
log of #6)
2021-10-25 15:25:14 +07:00
Jasper Hugo c6292caff5 update colibri to 0.1.8
Fixes failure to deserialise EndpointStats due to missing serverRegion
field (noticed in log of #6)
2021-10-25 15:24:36 +07:00
Jasper Hugo 296801385c Specify max_height like lib-jitsi-meet rather than ideal_height 2021-10-25 14:57:52 +07:00
Jasper Hugo 0e63257b57 Update colibri to 0.1.7
Leave constraint values (ideal_height / max_height) out when unspecified
2021-10-25 14:57:27 +07:00
Jasper Hugo e8d42f66cc Update colibri to 0.1.6
improves ReceiverVideoConstraints serialisation, ref #6
2021-10-25 14:45:18 +07:00
Jasper Hugo f5da5fec99 clarified dependencies in readme 2021-10-25 11:11:25 +07:00
Jasper Hugo 745e819541 corrected feature flag names 2021-10-25 10:52:45 +07:00
Jasper Hugo 76febd522e added information about feature flags to the readme 2021-10-25 10:51:45 +07:00
Jasper Hugo 16a33d7448 removed unused imports & unused serde-with dependency 2021-10-25 10:39:19 +07:00
Emmanuel Gil Peyrot d5c7662c1d add yet another workaround in the xmpp-parsers fork for @name in ssma
This seems to be yet another proprietary extension, jicofo sets it to
either name='jvb-a0' or name='jvb-v0' depending on whether it is an
audio or a video content.  I’m tired of these meaningless extensions…
2021-10-25 10:28:10 +07:00
Jasper Hugo 9250084436 pluggable TLS implementations, defaulting to native-tls 2021-10-25 10:21:05 +07:00
Emmanuel Gil Peyrot d37e05bd98 mark self as audio/video muted when no audio/video element
This is more user-friendly than trying to debug why we don’t hear/see
anything from this one participant.
2021-10-25 10:11:53 +07:00
Emmanuel Gil Peyrot 66cfaa4da5 implement caps to avoid a panic
The previous disco#info was missing the required disco#info feature and
an identity, and the ecaps2 was computed from an empty disco#info
instead of the one we advertise.

In our case caps is a tiny optimisation which lets other participants
cache our disco#info to avoid querying us every time.

A future improvement will be to reply to ecaps2 queries as well.
2021-10-25 10:11:26 +07:00
Emmanuel Gil Peyrot c793d08bb6 wait for our self-presence to consider the room joined
The current code was only waiting until the first presence received from
the room, while our self-presence is the very last one to be received.
2021-10-25 10:07:33 +07:00
Emmanuel Gil Peyrot 7fa31bd796 make jingle more generic over codecs
This adds a very simple Codec struct, which describes each codec
supported by a RTP description.

It will make it much easier to add newer codecs in the future, like AV1.

This commit is best viewed with git log -p -w to ignore indent changes.
2021-10-25 10:06:52 +07:00
Emmanuel Gil Peyrot 5db78b11bf simplify RTP parsing 2021-10-25 10:06:52 +07:00
Emmanuel Gil Peyrot e22cf34f42 split ICE setup into its own function 2021-10-25 10:06:52 +07:00
Emmanuel Gil Peyrot c920fdf0a5 split RTP description parsing into its own function
This keeps the ugly Options used after in the code, in the future these
could be replaced with the ParsedRtpDescription struct instead.
2021-10-25 10:06:52 +07:00
linkmauve 0040d20151
don’t include region elements when empty (#4)
In small deployments, for instance when there is only one server for all
participants, the region doesn’t mean anything so we can remove the
elements instead of sending an empty value.
2021-10-11 21:36:10 +07:00
Emmanuel Gil Peyrot 9d2dcfb21c replaced empty ns hack with the actual namespace used
All children of a message/presence/iq are in the jabber:client namespace
in a c2s stream unless xmlns is specified.
2021-10-11 21:32:45 +07:00
Jasper Hugo fab8efe5fb Compatibility fixes
* Allow focus to be a bare or full JID (thanks @teowoz & @Tellyo)
* If extdisco fails, just continue without STUN/TURN (thanks @teowoz &
  @Tellyo)
* Updated deps for new colibri protocol crate
* rustfmt
2021-10-11 10:33:29 +07:00
Jasper Hugo 5c72befcef added repository, readme, documentation to lib-gst-meet manifest 2021-10-06 12:08:19 +07:00
Jasper Hugo 2b2ceca515 use new colibri crate & vendored xmpp-parsers 2021-10-06 12:06:27 +07:00
Jasper Hugo a6089293a6 vendored xmpp-parsers into the repository for now 2021-10-06 12:05:46 +07:00
Jasper Hugo 55aa89010c updated deps, updated gst-meet for new lib-gst-meet API, export xmpp-parsers 2021-09-27 22:37:55 +07:00
Jasper Hugo 2726b70902 updated shell.nix for gst 1.19.2 release 2021-09-27 22:34:50 +07:00
Jasper Hugo 037c2d944f XMPP improvements
- Handle unsolicited XMPP messages gracefully
- Split out generic XMPP connection handler which can be used for
  connecting to brewery MUCs
- Don't deadlock during Jingle handling
2021-09-07 23:52:04 +07:00
Jasper Hugo 5759d5c800 use patched minidom 2021-08-25 12:40:30 +07:00
Jasper Hugo 4575371d6d fmt 2021-08-25 11:21:43 +07:00
Jasper Hugo a868e7e781 updated deps 2021-08-25 11:21:03 +07:00
Jasper Hugo 9999cd212c better error reporting on connect failure 2021-08-25 11:20:48 +07:00
Jasper Hugo f414c9db66 RTX and TWCC working correctly 2021-08-24 15:40:08 +07:00