summaryrefslogtreecommitdiff
path: root/TODO
blob: c2ae5fa6a396ed06d68022d520cd03cf9b982b13 (plain)
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