Skip to content
master
Go to file
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

readme.md

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.

About

VNC Client for Oculus Go

Resources

License

Releases

No releases published

Packages

No packages published
You can’t perform that action at this time.