WiFi-Display Screencasting integration into GNOME
So, I have been working on getting screencasting over wifi-display to work. Right now, this is implemented using a small stand-alone application. This works reasonably well, but a tighter integration might be desirable.
This feature allows the user to cast screen content and audio to a remote monitor (sink). In principle one could handle this display in the same way as local displays.
Windows for example exposes this feature in the display configuration dialog. There is a link underneath the arrangement widget to add such a monitor. This pops up a panel on the right hand side to make the connection. Once connected, the monitor can be configured similar to all other monitors.
The current implementation is a very simple stand-alone application. At startup the Screencast portal is shown to select a monitor to cast. We do currently not support creating a new virtual monitor. Supporting this is possible but requires further work in mutter.
The "Establishing connection to sink" is a status string that changes. This step may take quite a while to complete (about 5s is probably a good assumption).
This "Streaming" window currently needs to remain opened.
For audio, right now a "GNOME-Screencast" sink is created which needs to be selected.
Now, the question is how we should integrate it further. The simplest way would be to just ship it as a stand-alone application, and make some of the interactions nicer. But, even then it may be desirable to also add a link to the Display settings page to open the application.
The audio streaming also needs some thought on UI interaction. Should we redirect it by default or make it an option? What if the user does not yet know if audio streaming will work?