meefik / linuxdeploy

Install and run GNU/Linux on Android
https://meefik.github.io/linuxdeploy
GNU General Public License v3.0
5.23k stars 680 forks source link

Enhancement: support CASTING #232

Closed lbdroid closed 6 years ago

lbdroid commented 9 years ago

In graphic subsystem, it supports VNC, Xserver, and framebuffer. It would be very useful to add a cast option (i.e. for chromecast and google TV devices).

Consider use-case: presentations using libreoffice + impress remote. The chromecast device can be configured to android tablet/phone's "portable hotspot", running full libreoffice impress. Presentation loaded through impress remote on Android, controlling the impress output via the chromecast on a projector.

ShapeShifter499 commented 9 years ago

@lbdroid I tried casting with a level of success using Chromium. Turns out the Cast Extension for Chrome also works in Chromium even on ARM devices. There were a few issues though, no audio when casting the entire desktop, screen coloring was off (only red as far I could tell, showed up as yellow), and it was slower than expected. If the color had rendered correctly on the Chromecast side the speed would have been ok for some presentations like power point in LibreOffice.

What I did was set up a Arch Linux ARM chroot with XFCE using Linux Deploy, installed Chromium from the Arch repository, and then installed the Cast Extension in Chromium. I was able to view my chroot locally using VNC and then cast that out with the extension inside the web browser.

This might be a bit easier if you cast the whole Android screen via the Chromecast app (or built in if your rom has it) then load up the chroot via VNC or the XServer-XSDL app (in play store). But your millage may vary on screen size and readability of text/video displayed.

lbdroid commented 9 years ago

That is an interesting, if somewhat roundabout approach. Casting the Android screen wouldn't work for this application at all though, since a presentation depends on the Android-side control application (Impress Remote).

Ideally, the casting function really should be native to the application. The performance issues you found are a result of several different layers of conversion. Best to get chrome out of the picture, set up a framebuffer that matches the target display resolution (probably one of 1920x1080, 1280x720, 1024x768) and dump it straight out to cast.

lpreams commented 8 years ago

+1 this would be an interesting feature to have. Does the Cast API actually support direct framebuffer manipulation? If it really is as simple as dumping the framebuffer to the Cast API, and framebuffer is already implemented in Linux Deploy, this might as well be a feature.

twaik commented 6 years ago

Cast API should be supported by Xorg/Xvnc. LD has no internal output support, so Cast API can not be used in LD.