Giter Club home page Giter Club logo

Comments (6)

GoogleCodeExporter avatar GoogleCodeExporter commented on June 28, 2024
I agree.  It is slow to grab that first frame.  I use UltraVNC 1.0.5 on XP for
development.  I believe this to be more of a hardware constraint than a software
issue.  I'm not sure if there is anything that can be done to improve this for 
a G1.

Original comment by [email protected] on 9 Jan 2009 at 2:00

from android-vnc-viewer.

GoogleCodeExporter avatar GoogleCodeExporter commented on June 28, 2024
Well the last build is definately better, wonder if it is due to the lastest 
builds
of UVNC or from the android viewer.  Not great great but it is definately 
usable now
( i was waiting 45 seconds before and it is probably 10 seconds now..maybe less


Original comment by [email protected] on 26 Jan 2009 at 4:18

from android-vnc-viewer.

GoogleCodeExporter avatar GoogleCodeExporter commented on June 28, 2024
The first frame downloads very slowly for me as well. I did some digging and 
recorded the byte stream between the AndroidVNC client (version 12, Android 
2.1) and the TightVNC server (version 1.3.9, Debian 5.0.5).

I found that the client sends a SetEncodings request to the server *after* it 
sends the first FramebufferUpdateRequest, which means the server sends a 
FramebufferUpdate reply using the default, uncompressed "Raw" encoding. My VNC 
desktop is 1024x768, using a 6 bpp pixel format, so the server has to send 768 
KB just for the first frame! For a larger desktop or a higher color depth, it's 
even more data than that. This is despite the fact that my VNC desktop is about 
95% solid black (only the cursor and the bottom panel are not black).

The fix shouldn't be too complicated to make; the client just has to send the 
SetEncodings request before the initial framebuffer update request instead of 
after it.

Here is the trace. The handshake bytes are left out for clarity. Lines starting 
with "C" are from the client, and "S" are from the server. Lines with # are my 
comments/notes. Byte values are in hexadecimal.

# SetPixelFormat
C: 00 00 00 00 08 06 00 01 00 03 00 03 00 03 04 02
C: 00 00 00 00

# FramebufferUpdateRequest
C: 03 00 00 00 00 00 04 00 03 00

# FramebufferUpdate
S: 00 00 00 01 00 00 00 00 04 00 03 00 00 00 00 00

# framebuffer data (Raw encoding, 1024 * 768 = 786432 bytes)
S: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
S: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
.
.
.
# framebuffer data truncated for clarity

# SetEncodings (ZRLE, Hextile, zlib, CoRRE, RRE, TightLastRect, DesktopSize)
C: 02 00 00 07 00 00 00 10 00 00 00 05 00 00 00 06
C: 00 00 00 04 00 00 00 02 ff ff ff 20 ff ff ff 21

# FramebufferUpdateRequest
C: 03 01 00 00 00 00 04 00 03 00

# FramebufferUpdate (first rectangle is in Hextile encoding)
S: 00 3f 00 03 00 f2 01 13 01 e2 01 3a 00 00 00 05
# framebuffer data (Hextile)
S: 0e 3f 00 0b 34 06 26 00 46 10 96 20 e6 06 f6 00
S: 87 02 c7 02 4a 10 9a 20 fa 00 08 04 06 10 27 02
.
.
.

Original comment by [email protected] on 1 Aug 2010 at 5:25

from android-vnc-viewer.

GoogleCodeExporter avatar GoogleCodeExporter commented on June 28, 2024
Thanks for finding that synchronization issue

Original comment by [email protected] on 2 Aug 2010 at 8:15

  • Changed state: Accepted

from android-vnc-viewer.

GoogleCodeExporter avatar GoogleCodeExporter commented on June 28, 2024
How move setEncodings() from processNormalProtocol() to 
doProtocolInitialisation().

Reference: TightVNC Java VncViewer
http://vnc-tight.svn.sourceforge.net/viewvc/vnc-tight/trunk/java/src/com/tightvn
c/vncviewer/VncViewer.java?revision=3658&view=markup

Original comment by [email protected] on 23 Mar 2011 at 8:27

from android-vnc-viewer.

GoogleCodeExporter avatar GoogleCodeExporter commented on June 28, 2024
I've faced same issue while using with ultraVNC, but seems this not yet 
resolved in newest build 203...

Original comment by [email protected] on 4 Oct 2011 at 1:48

from android-vnc-viewer.

Related Issues (20)

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.