-
Notifications
You must be signed in to change notification settings - Fork 413
Internals
miracast specification is implemented on miraclecast by:
-
miracle-wifid: Is a daemon which spawns a
wpa_supplicant
with special configuration to pair with other devices by Wifi P2P and manage dhcp on created network -
miracle-sinkctl: Is a controller connected to
miracle-wifid
which selects interface to use and manage RSTP communication, program to play audio/video screening and UIBC (input on source from sink) interaction. -
miracle-wifictl: Is a controller connected to
miracle-wifid
to use miraclecast as source (implementation not finished) - miracle-gst and gstplayer: Players for streamed video
-
miracle-uibcctl: Is a controller runned in parallel with
gstplayer
to send input events (from UIBC) - miracled: Is a general daemon, not implementes yet
- miracle-dhcp: Controls the IP assigment on wifi direct
- miracle-gst: The basic stream player provided based on gstreamer
- miracle-omxplayer: An example to use omxplayer as player
With WIP source implementation, source side functionalities are implemented by:
-
miracle-dispd: Is a daemon which maintains WiFi-Display session(s) and spawn
gstencoder
to stream your screen and audio to the sink. -
miracle-dispctl: Is a front-end to control
miracle-wifid
andmiracle-dispd
for user to establish WiFi-Display session(s). - gstencoder: Encode your screen and/or audio then stream to sink.
WIP source implementation also added DBus and systemd service files for miracle-wifid
and miracle-dispd
, this way, the two daemons can be launched on-demand (eg. by running miracle-dispctl
).
In the systemd service files, unused caps are dropped (further fine grained permission control are needed), if any EPERM
error encountered, try to relax it from miracle-wifid.service
or miracle-dispd.service
. miracle-dipsd
also switches to the user who request to establish WiFi-Display session (the user who owns the display session) and restricts it to gain new caps by prctl()
.
With WIP windows fix you can do screen mirroring with a a Windows 10 OS as sink