Mercurial > libervia-backend
view doc/libervia-cli/pipe.rst @ 4240:79c8a70e1813
backend, frontend: prepare remote control:
This is a series of changes necessary to prepare the implementation of remote control
feature:
- XEP-0166: add a `priority` attribute to `ApplicationData`: this is needed when several
applications are working in a same session, to know which one must be handled first.
Will be used to make Remote Control have precedence over Call content.
- XEP-0166: `_call_plugins` is now async and is not used with `DeferredList` anymore: the
benefit to have methods called in parallels is very low, and it cause a lot of trouble
as we can't predict order. Methods are now called sequentially so workflow can be
predicted.
- XEP-0167: fix `senders` XMPP attribute <=> SDP mapping
- XEP-0234: preflight acceptance key is now `pre-accepted` instead of `file-accepted`, so
the same key can be used with other jingle applications.
- XEP-0167, XEP-0343: move some method to XEP-0167
- XEP-0353: use new `priority` feature to call preflight methods of applications according
to it.
- frontend (webrtc): refactor the sources/sink handling with a more flexible mechanism
based on Pydantic models. It is now possible to have has many Data Channel as necessary,
to have them in addition to A/V streams, to specify manually GStreamer sources and
sinks, etc.
- frontend (webrtc): rework of the pipeline to reduce latency.
- frontend: new `portal_desktop` method. Screenshare portal handling has been moved there,
and RemoteDesktop portal has been added.
- frontend (webrtc): fix `extract_ufrag_pwd` method.
rel 436
author | Goffi <goffi@goffi.org> |
---|---|
date | Sat, 11 May 2024 13:52:41 +0200 |
parents | 267e4987b58b |
children |
line wrap: on
line source
================================================== pipe: send/receive data stream through shell pipes ================================================== ``pipe`` commands allow you to send or receive data stream through a Unix shell pipe. Libervia will create a network connection (using XMPP and Jingle) between you an your contact. in == Receive data stream. Data will be send to stdout, so it can be piped out or simply print to the screen. You can specify bare jids of entities to accept stream for, by default all streams are accepted. example ------- Receive a video stream, and redirect it to mpv_ so show the video:: $ li pipe in | mpv - .. _mpv: https://mpv.io/ out === Send data stream. Data comes from stdin, so you may use pipe in something or just write some text. The only expected argument is the full jid of the device where the stream must be piped out. example ------- Send a video to louise:: $ li pipe out louise@example.org/libervia.123 < some_video.webm Send output from ``cal`` command to louise:: $ cal | li pipe out louise@example.org/libervia.123