-
Notifications
You must be signed in to change notification settings - Fork 1
Internals
The Miracast specification is implemented on MiracleCast by:
-
miracle-wifid: Is a daemon which spawns a
wpa_supplicantwith special configuration to pair with other devices by Wifi P2P and manage dhcp on created network -
miracle-sinkctl: Is a controller connected to
miracle-wifidwhich 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-wifidto use miraclecast as source (implementation not finished) - miracle-gst and gstplayer: Players for streamed video
-
miracle-uibcctl: Is a controller runned in parallel with
gstplayerto send input events
With WIP source implementation, source side functionalities are implemented by:
-
miracle-dispd: Is a daemon which maintains WiFi-Display session(s) and spawn
gstencoderto stream your screen and audio to the sink. -
miracle-dispctl: Is a front-end to control
miracle-wifidandmiracle-dispdfor 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