1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
Medium Tasks:
. Get the mouse event code out of spicemsg (and make spicemsg
*only* about messages)
. Change the message processing to be able to handle
an array of ArrayBuffers so we don't have to
use the combine function, which is presumed slow.
. Use the 'real' DataView if we have it
. Consider passing a status change event back to the front end
(e.g. indicators for numlock, connection status, all that jazz)
. Try to further Improve mouse position sends
- We now discard motions when we're more than 2 * SPICE_INPUT_MOTION_ACK_BUNCH
from an ack, just like the gtk client
- Other idea 1: queue them and only send when idle, but collapse first?
- Other idea 2: Time limit motion events
. Shift from the simplistic Makefile to an autoconf based Makefile
so we can try to support 'make install' on other systems.
Big Tasks:
. Generate messages + enums from spice.proto
. Video + Audio:
- Need either ogg or webm codec
- Probably need a codec other than celt 0.51
- Need a way to feed stream into a media object
* Javascript uri?
* best would be Media Source Extensions draft, but only in Chrome so far
* some trick with createObjectUrl? see:
- http://dev.w3.org/2011/webrtc/editor/getusermedia.html
. Explore clipboard
- Supporting it may require unpleasant hacks
. Fully flesh out image type support; plt, glz, and jpeg/alpha are likely
to be real work
. Fix the many limitations of Draw operation support (clipping, masking,
scaling, and so on)
. Implement direct websocket support for the spice server
. Profile the whole mess
- Initial profiling suggests image decompression is the big hog
. Implement agent support
. Build a test suite for measuring performance
- Latency, bandwidth, packet loss
- But how to quantify 'feel'?
- Suggestion: recordmydesktop to capture videos
Use something like cxtest to create scripts
Do this with varying latency/bandwidth, etc
We can play videos side by side
And potentially use tool like MSU Video Quality Measurement Tool
(SSIM is the concept for measuring how much frames differ)
- Key metric - how much cpu / memory / bandwidth per 'active' user
|