Go to file
Jeremy White dc5fd91f0c Revise sound packet time sequencing for a more recent Firefox.
Around version 45, Firefox started being very particular about the
time stamps put into the Opus stream.  The time stamps from the Spice server are
somewhat irregular.  They mostly arrive every 10 ms, but sometimes it is 11, or sometimes
with two time stamps the same in a row.  The previous logic resulted in fuzzy and/or
distorted audio streams in Firefox in a row.

Thus, we end up with an inelegant hack.  Essentially, we force every packet to have
a 10ms time delta, unless there is an obvious gap in time stream, in which case we
will resync.

This replaces logic that mitigated only the duplicated time packets.

The long term solution would appear to be 'sequence' mode, but I cannot get
Firefox to use that mode (and MDN suggests that for codecs such as VP8 with time
stamps in line, that Firefox will not accept it).
2016-10-03 09:37:56 -05:00
thirdparty Fixed trailing whitespaces in several files 2016-09-28 15:03:48 -05:00
.gitignore Add the ability to build an rpm. 2013-02-11 09:17:53 -06:00
apache.conf.sample No longer install apache.conf, just put it in the doc folder. 2013-02-20 11:09:37 -06:00
atKeynames.js work to improve keyboard keycode -> scancode processing 2012-08-17 13:54:53 +03:00
bitmap.js initial 2012-06-04 17:22:01 +03:00
COPYING initial 2012-06-04 17:22:01 +03:00
COPYING.LESSER initial 2012-06-04 17:22:01 +03:00
cursor.js Fixed trailing whitespaces in several files 2016-09-28 15:03:48 -05:00
display.js Fixed trailing whitespaces in several files 2016-09-28 15:03:48 -05:00
enums.js Fixed trailing whitespaces in several files 2016-09-28 15:03:48 -05:00
filexfer.js filexfer: Remove wrongly placed semicolon 2016-05-04 10:19:24 -05:00
inputs.js Use WheelEvent instead of MouseWheelEvent 2015-01-15 12:56:20 -06:00
lz.js support decompressing LZ_IMAGE_TYPE_XXXA images 2012-10-11 17:32:55 -05:00
main.js Fixed trailing whitespaces in several files 2016-09-28 15:03:48 -05:00
Makefile No longer install apache.conf, just put it in the doc folder. 2013-02-20 11:09:37 -06:00
playback.js Revise sound packet time sequencing for a more recent Firefox. 2016-10-03 09:37:56 -05:00
png.js initial 2012-06-04 17:22:01 +03:00
quic.js quic: Add missing break 2016-05-04 10:19:26 -05:00
README Fixed trailing whitespaces in several files 2016-09-28 15:03:48 -05:00
resize.js If an agent is attached, enable dynamic resizing of the guest screen. 2014-09-06 10:06:43 -05:00
simulatecursor.js Fixed trailing whitespaces in several files 2016-09-28 15:03:48 -05:00
spice_auto.html Fixed trailing whitespaces in several files 2016-09-28 15:03:48 -05:00
spice-html5.spec.in Prepare for the 0.17 release 2016-08-17 14:44:46 -05:00
spice.css Fixed trailing whitespaces in several files 2016-09-28 15:03:48 -05:00
spice.html Fixed trailing whitespaces in several files 2016-09-28 15:03:48 -05:00
spicearraybuffer.js Extend the native ArrayBuffer to add a slice() method if missing. 2013-04-16 14:59:08 -05:00
spiceconn.js Fixed syntax error in debugger command. 2016-09-08 14:57:33 +02:00
spicedataview.js Fixed trailing whitespaces in several files 2016-09-28 15:03:48 -05:00
spicemsg.js Fixed trailing whitespaces in several files 2016-09-28 15:03:48 -05:00
spicetype.js Fixed trailing whitespaces in several files 2016-09-28 15:03:48 -05:00
ticket.js initial 2012-06-04 17:22:01 +03:00
TODO Fixed trailing whitespaces in several files 2016-09-28 15:03:48 -05:00
utils.js Add support for the vp8 codec type. 2016-07-13 10:41:07 -05:00
webm.js Revise sound packet time sequencing for a more recent Firefox. 2016-10-03 09:37:56 -05:00
wire.js Fixed trailing whitespaces in several files 2016-09-28 15:03:48 -05:00

Spice Javascript client

Instructions and status as of August, 2016.

Requirements:

  1.  Modern Firefox or Chrome (IE will work, but badly)

  2.  A WebSocket proxy

      websockify:
        https://github.com/kanaka/websockify
      works great.

      Note that a patch to remove this requirement has been submitted
      to the Spice project but not yet been accepted.  Refer to this email:
      https://lists.freedesktop.org/archives/spice-devel/2016-June/030552.html

  3.  A spice server


Optional:
  1.  A web server

      With firefox, you can just open file:///your-path-to-spice.html-here

      With Chrome, you have to set a secret config flag to do that, or
      serve the files from a web server.


Steps:

  1.  Start the spice server

  2.  Start websockify; my command line looks like this:
        ./websockify 5959 localhost:5900

  3.  Fire up spice.html, set host + port + password, and click start


Status:

  The TODO file should be a fairly comprehensive list of tasks
  required to make this client more fully functional.