Giter Site home page Giter Site logo

ovrvnc's Introduction

ovrvnc - VNC Viewer for Oculus Go

ovrvnc is a simple VNC client for Oculus Go.

  • Performance
    • Supporting Tight encoding (with optimal parameters) and Continuous updates extensions enable us to watch HD video.
  • Latency
    • Decoding, rendering and sending input events are all asynchronous.
  • Visual
    • Use cylindrical layers with optimal resolution, sRGB gamma-corrected interpolation, chromatic aberration correction and 72Hz refresh rate.
  • Support multiple connection.
  • Customize with configuration file.

Many features above are provided by the thirdparty libraries: TigerVNC, libjpeg-turbo, cpptoml, etc. Thanks!

Install prebuilt binary

Currently ovrvnc is in pre-alpha stage.

Download ovrvnc-release.apk.

$ adb uninstall net.mimosa_pudica.ovrvnc
$ adb install ovrvnc-release.apk
$ vi ovrvnc.toml # configure host, password, etc.  See below.
$ adb push ovrvnc.toml /sdcard/

Configuration

Minimal example of /sdcard/ovrvnc.toml:

[[screens]]
host = "hogehoge"

More complex example:

[background]
#color = [0.0, 0.0, 0.0]
image = "/sdcard/Pictures/equirect.jpg"

[[screens]]
host = "192.168.179.5"
#port = 5900
#password = ""
latitude  = -15.0
#longitude = 0.0
#lossy = true
use_pointer = false
#pixel_scaling = 1.0

[[screens]]
host = "192.168.179.4"
password = "hogehoge"
latitude  = -15.0
longitude = 180.0

Try to stop a compositor (compton, etc.) when you see tearing.

Performance

Although RFB protocol is old, I think it is still a simple and good protocol. With Tight encoding and Continuous update extensions, you can watch the HD video through the VNC without any hardware encoder.

The latency and throughput of ovrvnc heavily depends on a server program and its configuration. In many cases, the bottleneck is a CPU, not a network.

For Xorg users: x0vncserver >= 1.9 bundled in TigerVNC with following arguments is recommended.

x0vncserver --comparefb=1 --maxprocessorusage=100

For Windows users: I don't know whether TightVNC (!= TigerVNC, it seems broken on Windows) or UltraVNC is better. Note that both of them do not seem to support continuous updates thus the performance is not optimal. When using UltraVNC, "Poll Full Screen" and "Desktop Duplication" options improves the performance and the stability (I don't know it is the best configuration).

See also mfxvnc.

Build

XXX: more explanation.

export     ANDROID_HOME=...
export ANDROID_NDK_HOME=...
export  OCULUS_SDK_PATH=...

$ANDROID_HOME/tools/sdkmanager "build-tools;27.0.3" "platforms;android-21"

cd $OCULUS_SDK_PATH
patch -p1 -i ../../patch/oculus_mobile_sdk_120.patch
cd -

cd thirdparty/tigervnc
patch -p1 -i ../../patch/tigervnc_optimized_unstable.patch
cd -

cd thirdparty/libjpeg-turbo
./build.sh
cd -
make

License

The code in this repository except submodules in thirdparty/ is distributed under the MIT license.

ovrvnc uses TigerVNC as library and it is distributed under the GPL. The other libraries (libjpeg-turbo, cpptoml) are under the MIT/BSD-style license.

ovrvnc's People

Contributors

y-fujii avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.