Internals - AtesComp/miraclecast Wiki
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-dispdfor user to establish WiFi-Display session(s).
- [[gstencoder]]: Encode your screen and/or audio then stream to sink.
Run as a service and access to privileged resources
WIP source implementation also added DBus and systemd service files for
miracle-dispd, this way, the two daemons can be launched on-demand (eg. by running
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-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
With WIP windows fix you can do screen mirroring with a a Windows 10 OS as sink