Hi,all!
Thanks for the trying/feedbacking and sorry for the nascent itches of the
project.
As I've mentioned in the wiki page of this proj.,to use the androidSpice,
the server should be modified to force the use of JPEG compression,and qemu
should not use" -vga qxl" and should use "-usbdevice
Hi,
I started to see frequent crashes with my guests running windows xp and
windows server 2003 x86. The bsod appears on qxldd.dll. I can give further
info if needed.
The host is Linux x86_64, qemu 0.14, spice 0.8.1. Guest has qxl 0.6.1
drivers loaded. I may revert back to 0.8.0 since it was not
On Tue, Apr 26, 2011 at 05:10:43PM +0200, Kai Mosebach wrote:
> I just triesbuild the OSX gtk client, my findings :
>
> 1.) Installed gtk2 and gstreamer via ports
> 2.) Finally installed current celt051 after some fiddling
> 3.) Install pyparsing from http://sourceforge.net/projects/pyparsing/
> 4
I just triesbuild the OSX gtk client, my findings :
1.) Installed gtk2 and gstreamer via ports
2.) Finally installed current celt051 after some fiddling
3.) Install pyparsing from http://sourceforge.net/projects/pyparsing/
4.) Install Text-CSV from
http://search.cpan.org/~makamaka/Text-CSV-1.21/li
On 04/26/2011 04:14 AM, Gerd Hoffmann wrote:
Hi,
I think that would work well for spice. Spice uses shared memory from
the
pci device for both the framebuffer and surfaces/commands, but this is
Is that the only DMA do you do? That's good for this model.
Yes. Spice does both reads and writes
On 04/22/2011 11:21 AM, Christophe Fergeau wrote:
On Thu, Apr 21, 2011 at 08:06:45PM +0300, Uri Lublin wrote:
This breaks windows build with VS.
You need to also modify client/windows/redc.vcproj
Something like this?
yes (did not try to compile it).
Thanks.
___
On Tue, Apr 26, 2011 at 07:44:34AM -0500, Cliff Sharp wrote:
> Great suggestion.
> I have been looking into spice-gtk because it does seem like it would be
> much less work.
Yep, I highly recommend working from spice-gtk, especially since
jhbuid/bockbuild seems to be able to do most of the buildi
Hey Lin,
Just gave it a quick shot :
- DNS resolving not working?
- access to server w/o password not supported?
- access w/ password produces a "force kill" after a vibration
- some traffic is seen on the spice-server side though
(couldn’t connect therefore)
Any logfiles I can provide?
HW/SW
Great suggestion.
I have been looking into spice-gtk because it does seem like it would be much
less work.
Thanks.
On Apr 26, 2011, at 3:01 AM, Attila Sukosd wrote:
> Hi,
>
>
> This might be a stupid question, but why don't you try to use spice-gtk on
> OS/X instead of spicec ?
> It has eve
Ack.
On 04/26/2011 12:51 PM, Alon Levy wrote:
---
spice.proto |2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/spice.proto b/spice.proto
index 4eeb159..6160de1 100644
--- a/spice.proto
+++ b/spice.proto
@@ -639,7 +639,7 @@ channel DisplayChannel : BaseChannel {
Add cursor allocation debugging code that is turned off as long as
DEBUG_CURSORS is not defined.
---
server/red_worker.c | 13 +
1 files changed, 13 insertions(+), 0 deletions(-)
diff --git a/server/red_worker.c b/server/red_worker.c
index 3e1a56a..b94cd72 100644
--- a/server/red_wo
We need to have a different id for each client, otherwise we get a reference to
other client's cache, and of course we don't sync with the new client.
NOTE: This is quite strange - why are we using a client provided id? only makes
sense
for migration (it already has cache, we get cache by migratio
small cleanup patch, only functional change is sending a set ack message.
---
server/red_worker.c |7 +++
1 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/server/red_worker.c b/server/red_worker.c
index 35e60d6..d1039a2 100644
--- a/server/red_worker.c
+++ b/server/red_worker
check for dcc!=NULL before adding to pipe in several places.
---
server/red_worker.c | 16 ++--
1 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/server/red_worker.c b/server/red_worker.c
index 3de664a..35e60d6 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
At this point you can actually connect a second client without disconnecting the
first due to the sound channel doing the disconnect. Since sound has not
been multiple client enabled yet this is all that can be done.
---
server/reds.c | 30 ++
1 files changed, 26 inse
---
server/reds.c |6 +-
1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/server/reds.c b/server/reds.c
index 0ce6f1c..dc73202 100644
--- a/server/reds.c
+++ b/server/reds.c
@@ -228,6 +228,7 @@ typedef struct RedsState {
RedsStatValue roundtrip_stat;
#endif
int pee
makes RED_WORKER_MESSAGE_CURSOR_DISCONNECT_CLIENT disconnect only a
single client.
---
server/red_worker.c | 11 ++-
1 files changed, 10 insertions(+), 1 deletions(-)
diff --git a/server/red_worker.c b/server/red_worker.c
index fcdc806..3de664a 100644
--- a/server/red_worker.c
+++ b/ser
---
server/red_worker.c |2 --
1 files changed, 0 insertions(+), 2 deletions(-)
diff --git a/server/red_worker.c b/server/red_worker.c
index 19594fe..fcdc806 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -9862,7 +9862,6 @@ static void handle_new_display_channel(RedWorker *work
Required to support multiple clients.
Also changes somewhat the way we produce PIPE_ITEM_TYPE_LOCAL_CURSOR. Btw,
I haven't managed to see when we actually produce such an item during my
tests.
Previously we had a single pipe item per CursorItem, this is impossible
with two pipes, which happens whe
---
server/red_worker.c | 74 ++
1 files changed, 44 insertions(+), 30 deletions(-)
diff --git a/server/red_worker.c b/server/red_worker.c
index 4402570..6ab3d7c 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -8402,86 +8402,70 @@ st
---
server/red_worker.c |6 +-
1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/server/red_worker.c b/server/red_worker.c
index 7e022f6..4402570 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -10761,6 +10761,8 @@ static void
red_display_cc_free_glz_drawables(R
---
server/red_worker.c | 16 ++--
1 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/server/red_worker.c b/server/red_worker.c
index fe21a4c..7e022f6 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -2476,7 +2476,7 @@ static void red_streams_update_clip(Red
---
server/red_worker.c | 12
1 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/server/red_worker.c b/server/red_worker.c
index 5fb8a5f..fe21a4c 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -10404,6 +10404,8 @@ static void handle_dev_input(EventListener
---
server/red_worker.c | 13 -
1 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/server/red_worker.c b/server/red_worker.c
index ca59662..5fb8a5f 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -10357,7 +10357,8 @@ static inline void
handle_dev_destroy_pr
---
server/red_worker.c | 20 +---
1 files changed, 13 insertions(+), 7 deletions(-)
diff --git a/server/red_worker.c b/server/red_worker.c
index 9795dab..ca59662 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -10256,16 +10256,10 @@ static inline void
handle_dev_
---
server/red_worker.c | 10 +++---
1 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/server/red_worker.c b/server/red_worker.c
index 550bda9..9795dab 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -10236,15 +10236,19 @@ static inline void
handle_dev_destroy_sur
handle_dev_update does area_update, i.e. rendering to a surface (usually
the primary, surface 0) on request of the driver. Since we only use a single
canvas for each surface on the device memory (the rest are in host memory),
this patch may not really be required.
TODO: test without this patch.
--
---
server/red_worker.c | 138 +--
1 files changed, 134 insertions(+), 4 deletions(-)
diff --git a/server/red_worker.c b/server/red_worker.c
index 6014cb3..399ebea 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -8610,6 +8610,103 @@ s
---
server/red_worker.c |9 -
1 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/server/red_worker.c b/server/red_worker.c
index 75d222f..6014cb3 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -2644,6 +2644,7 @@ static void
red_display_client_init_streams(Di
---
server/red_worker.c |9 ++---
1 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/server/red_worker.c b/server/red_worker.c
index 2c8ce2e..75d222f 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -8850,8 +8850,9 @@ static inline void red_create_surface(RedWorker
---
server/red_worker.c |5 -
1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/server/red_worker.c b/server/red_worker.c
index ebd9853..2c8ce2e 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -1904,6 +1904,7 @@ static void print_draw_item(const char* prefix, con
---
server/red_worker.c | 58 --
1 files changed, 42 insertions(+), 16 deletions(-)
diff --git a/server/red_worker.c b/server/red_worker.c
index 1a85505..ebd9853 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -3599,7 +3599,12 @@ sta
When we start having multiple clients each
drawable will be referenced by multiple clients, release happens when all
clients are done with it.
---
server/red_parse_qxl.h |1 +
server/red_worker.c| 17 -
2 files changed, 17 insertions(+), 1 deletions(-)
diff --git a/serve
with multiple clients any surface creation or deletion cleanup needs to
wait until all the clients have been sent the command, so add reference
counting to the create and destroy release calls.
Also introduces the SURFACES_FOREACH macro, a bit ugly due to the need
to update multiple variables and
main_channel and red_worker had several locations that still accessed rcc
directly, so they had to be touched too, but the changes are minimal.
Most changes are in red_channel: drop the single client reference in RedChannel
and add a ring of channels.
We still are missing:
* surfaces copying / d
---
server/red_worker.c | 20
1 files changed, 12 insertions(+), 8 deletions(-)
diff --git a/server/red_worker.c b/server/red_worker.c
index 79fffd1..3599b05 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -4336,7 +4336,7 @@ static int red_process_cursor(RedWo
---
server/red_channel.c | 15 +++
server/red_channel.h |4
2 files changed, 19 insertions(+), 0 deletions(-)
diff --git a/server/red_channel.c b/server/red_channel.c
index 4625158..34916fd 100644
--- a/server/red_channel.c
+++ b/server/red_channel.c
@@ -1100,3 +1100,18 @@
---
server/red_worker.c | 21 +
1 files changed, 13 insertions(+), 8 deletions(-)
diff --git a/server/red_worker.c b/server/red_worker.c
index 3581173..79fffd1 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -8489,7 +8489,8 @@ void red_disconnect_all_display_TO
---
server/red_worker.c | 97 ++-
1 files changed, 57 insertions(+), 40 deletions(-)
diff --git a/server/red_worker.c b/server/red_worker.c
index a700f7e..3581173 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -1190,7 +1190,7 @@ sta
---
server/red_worker.c | 11 ++-
1 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/server/red_worker.c b/server/red_worker.c
index 4fbcb4f..a700f7e 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -1298,11 +1298,10 @@ static inline PipeItem
*red_pipe_get_tail(
---
server/red_worker.c | 11 +--
1 files changed, 5 insertions(+), 6 deletions(-)
diff --git a/server/red_worker.c b/server/red_worker.c
index d6762be..4fbcb4f 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -1287,13 +1287,13 @@ static inline void
red_pipe_add_drawable_a
---
server/red_worker.c |8
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/server/red_worker.c b/server/red_worker.c
index 2bc0abf..d6762be 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -1263,13 +1263,13 @@ static inline void
red_pipe_add_drawable(Disp
---
server/red_worker.c |2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/server/red_worker.c b/server/red_worker.c
index 683df38..2bc0abf 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -8593,7 +8593,7 @@ static inline void __red_create_surface_item(RedWorker
---
server/red_channel.c | 10 ++
server/red_channel.h |3 +++
2 files changed, 13 insertions(+), 0 deletions(-)
diff --git a/server/red_channel.c b/server/red_channel.c
index c6e23d9..b2d0cdb 100644
--- a/server/red_channel.c
+++ b/server/red_channel.c
@@ -925,6 +925,11 @@ int red_
Now Surfaces will keep a copy of the current video streams. This is
again just a technical move, no functional changes.
---
server/red_worker.c | 157 +++
1 files changed, 83 insertions(+), 74 deletions(-)
diff --git a/server/red_worker.c b/server/
---
server/red_worker.c |8
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/server/red_worker.c b/server/red_worker.c
index d0b3a60..30a829e 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -381,7 +381,7 @@ typedef struct StreamAgent {
PipeItem create_
---
server/red_worker.c |2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/server/red_worker.c b/server/red_worker.c
index 275bfca..d0b3a60 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -117,7 +117,7 @@ static clockid_t clock_id;
typedef unsigned long stat
each client supplying a smartcard channel gets it's own smartcard. If
there are not enough smartcards provided by the server (read: qemu)
then it will be as though there are none.
currently disabled - later patches that enable smartcard don't make
this channel available to any but the first client
s/TunnelChannel/TunnelChannelClient/
That's about it. this is probably the wrong way to do it. Not tested
at all. What do we want, a separate interface per client? same interface
for all clients? probably the later. This doesn't do that. Not tested,
so probably doesn't even work.
changes red_cha
from server events are broadcast - leds change. The rest is client
to server, so it is just passed on.
---
server/inputs_channel.c | 77 +++
1 files changed, 38 insertions(+), 39 deletions(-)
diff --git a/server/inputs_channel.c b/server/inputs_channe
The main channel deals with connecting new clients, announcing mouse mode
changes, and the agent channel. The implementation is currently done without
any changes to the protocol, so everything has to be either broadcast or
to a specific client.
channels list - specific client
mouse mode - broad
---
server/red_channel.c | 20
server/red_channel.h |3 ++-
2 files changed, 14 insertions(+), 9 deletions(-)
diff --git a/server/red_channel.c b/server/red_channel.c
index 7e1edbe..24ad67f 100644
--- a/server/red_channel.c
+++ b/server/red_channel.c
@@ -364,6 +364,7 @@
Introduce functions to add (via producer method) the same item to multiple
pipes, all for the same channel.
Note: Right now there is only a single channel, but the next patches will do the
per-channel breakdown to channel and channel_client before actually introducing
a ring in RedChannel, this ma
on red_channel_peer_on_incoming_error, if we are already shutdown, do not
call the channel's error handler. Since the channel has been shutdown, we
assume this is a second or later error, and handling has already occured.
---
server/red_channel.c |3 +++
1 files changed, 3 insertions(+), 0 del
Expose additional api to find a client given a link_id. The link_id
is first set when the first channel connects, which is the main channel.
It could also be kept in the RedClient instead, not sure.
TODO:
multiple todo's added for multiclient handling. I don't remember why
I wrote them exactly,
cleanup only. Note that the ping function is half used since the opt parameter
stopped being called with anything but NULL, should be returned at some point,
specifically when we drop the 250kbyte ping on start and do a continuous check
for latency and bandwidth.
See:
81945d897 - server: add new
They were globals before. This introduces api for other channels
to query the low bandwidth status. The queries themselves are still done
from the wrong context (channel and not channel client) but that's because
the decoupling of channel and channel client will be done in the following
patches.
N
That means RedClient tracks a ring of channels. Right now there will be only
a single client because of the disconnection mechanism - whenever a new
client comes we disconnect all existing clients. But this patch adds already
a ring of clients to reds.c (stored in RedServer).
There is a known prob
This makes it easier to introduce RedClient in the next patch.
---
server/main_channel.c | 27 +--
server/main_channel.h |7 ---
server/reds.c | 11 ++-
3 files changed, 23 insertions(+), 22 deletions(-)
diff --git a/server/main_channel.c b/serv
---
server/red_channel.c |1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/server/red_channel.c b/server/red_channel.c
index 3a28304..5aad98b 100644
--- a/server/red_channel.c
+++ b/server/red_channel.c
@@ -319,6 +319,7 @@ static void
red_channel_client_release_item(RedChan
We send a SPICE_MSG_DISPLAY_MARK verb.
---
server/red_worker.c |3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/server/red_worker.c b/server/red_worker.c
index d4db513..389af58 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -9153,6 +9153,9 @@ static void di
---
server/red_channel.c |2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/server/red_channel.c b/server/red_channel.c
index b124980..3a28304 100644
--- a/server/red_channel.c
+++ b/server/red_channel.c
@@ -863,7 +863,7 @@ void red_channel_client_disconnect(RedChannelClient
---
server/red_channel.c |5 +
1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/server/red_channel.c b/server/red_channel.c
index 2b76f31..b124980 100644
--- a/server/red_channel.c
+++ b/server/red_channel.c
@@ -579,6 +579,11 @@ void red_channel_client_push(RedChannelClient *
use MainChannel* instead of Channel* for a many functions in main_channel.h
(affects main_channel.c and reds.c).
some one liner fixes are hidden in here too.
---
server/main_channel.c | 124
server/main_channel.h | 42 +---
server/re
---
server/main_channel.c |2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/server/main_channel.c b/server/main_channel.c
index 8e1b195..749acbf 100644
--- a/server/main_channel.c
+++ b/server/main_channel.c
@@ -123,7 +123,7 @@ typedef struct MainChannel {
} MainChannel;
Instead of checking for worker->{display,cursor}_channel directly.
---
server/red_worker.c | 55 ++
1 files changed, 37 insertions(+), 18 deletions(-)
diff --git a/server/red_worker.c b/server/red_worker.c
index 834ba3c..8f7443b 100644
--- a/serve
The only difference between them being that the later also does a push.
I don't believe that to be a problem, but if it does I can always introduce
a push'less version.
---
server/red_client_cache.h |2 +-
server/red_worker.c |9 +
2 files changed, 2 insertions(+), 9 deletion
s/channel_handle_migrate_flush_mark/channel_handle_migrate_flush_mark_proc/
s/channel_handle_migrate_data_get_serial/channel_handle_migrate_data_get_serial_proc/
s/channel_handle_migrate_data/channel_handle_migrate_data_proc/
---
server/main_channel.c |8
server/red_channel.c
This is a resend of the start patches (server: introduce RedChannelClient) plus
the rest of the series to support multiple connections to spice. It is missing
some features, so it is more of an RFC right now, but I hope to do a few
iterations
completing the missing pieces to get it to PATCH status
---
spice.proto |2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/spice.proto b/spice.proto
index 4eeb159..6160de1 100644
--- a/spice.proto
+++ b/spice.proto
@@ -639,7 +639,7 @@ channel DisplayChannel : BaseChannel {
DisplayBase base;
struct Fill {
> - Original Message -
>> Released with src & .apk files with button-double-click fixed.
>> --Lin--
I'm going to try with my HTC Wildfire and my F14-virt-preview spice infra
and let you know my findings
Not so a big display on device but I'll check functionalities..
btw: the name of t
Hi Lim!
Awesome work so far! Congrats! The coroutine/multi-thread part isn't easy, but
apparently you found a workaround. Have you checked the CPU usage?
Oh, and even more awesome would be publishing a video showing the result, for
us miserable people without Android devices!
Thanks!
--
Marc
Hi,
I think that would work well for spice. Spice uses shared memory from the
pci device for both the framebuffer and surfaces/commands, but this is
Is that the only DMA do you do? That's good for this model.
Yes. Spice does both reads and writes though, so a way to tag pages as
dirty is
Hi,
This might be a stupid question, but why don't you try to use spice-gtk on
OS/X instead of spicec ?
It has everything needed, such as gtk2/gtk3 and gstreamer for audio, all
cross platform.
Rgrds,
Attila
On Mon, Apr 25, 2011 at 11:34 PM, Cliff Sharp wrote:
> When trying to port the alsa
Well, it's fairly easy but it was hard to find.
Just edit /etc/libvirt/qemu.conf and set:
vnc_allow_host_audio = 1
it is set to 0 by default.
And then just set variable QEMU_AUDIO_DRV to alsa. I recommend alsa,
because with pulse you don't get any sound on your host and that's not
desirable for
Released with src & .apk files with button-double-click fixed.
--Lin--
On 4/26/11, Shuxiang Lim wrote:
> Hi,all!
> After I workaround the bug "input will choke output",I'm glad to
> release the USABLE androidSpice-0.1.4 on google code:
>
> http://code.google.com/p/spice-client-android/
>
> You
76 matches
Mail list logo