go but somehow
get lost on the mailing list. I rebased the tree but did not have the
time (yet) to test them.
http://git.iksaif.net/?p=qemu.git;a=shortlog;h=refs/heads/wip
Feel free to try them. If QEMU segfault again, please send a full gdb
backtrace / valgrind trace / way to reproduce :).
Thanks,
--
Corentin Chary
http://xf.iksaif.net
eter Lieven" a écrit :
> On 13.03.2012 16:06, Alexander Graf wrote:
>
>> On 13.03.2012, at 16:05, Corentin Chary wrote:
>>
>> On Tue, Mar 13, 2012 at 12:29 PM, Peter Lieven wrote:
>>>
>>>> On 11.02.2012 09:55, Corentin Chary wrote
On Tue, Mar 13, 2012 at 12:29 PM, Peter Lieven wrote:
> On 11.02.2012 09:55, Corentin Chary wrote:
>>
>> On Thu, Feb 9, 2012 at 7:08 PM, Peter Lieven wrote:
>>>
>>> Hi,
>>>
>>> is anyone aware if there are still problems when enabling the threa
Hi Anthony,
Please merge these two patchs from another age, they fix crash in the VNC
server (the iohandler one is only for the threaded server).
Thanks,
Corentin Chary (1):
vnc: don't mess up with iohandlers in the vnc thread
Stefan Weil (1):
vnc: Limit r/w access to size of allo
From: Stefan Weil
This fixes memory reads and writes which exceeded the upper limit
of allocated memory vd->guest.ds->data and vd->server->data.
Cc: Anthony Liguori
Signed-off-by: Stefan Weil
---
ui/vnc.c |3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/ui/vnc.c b/ui
From: Corentin Chary
The threaded VNC servers messed up with QEMU fd handlers without
any kind of locking, and that can cause some nasty race conditions.
Using qemu_mutex_lock_iothread() won't work because vnc_dpy_cpy(),
which will wait for the current job queue to finish, can be called
On Wed, Mar 14, 2012 at 11:16 PM, Stefan Weil wrote:
> Am 14.03.2012 22:46, schrieb Anthony Liguori:
>
>> On 03/14/2012 01:58 AM, Corentin Chary wrote:
>>>
>>> Hi Anthony,
>>>
>>> Please merge these two patchs from another age, they fix crash in t
On Mon, Feb 13, 2012 at 10:24 AM, Peter Lieven wrote:
>
> Am 11.02.2012 um 09:55 schrieb Corentin Chary:
>
>> On Thu, Feb 9, 2012 at 7:08 PM, Peter Lieven wrote:
>>> Hi,
>>>
>>> is anyone aware if there are still problems when enabling the threaded v
The patch looks right, maybe you should send it directly to the qemu
mailing list.
--
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/806656
Title:
Tight PNG VNC encoding is sent even when --disable-vnc
quot;is quite the same"
>>> and "that of coefficient position".
>> "is quite the same" isn't idiomatic English either. I can't
>> tell if the author meant "is quite similar" or "is exactly
>> the same", so we probabl
Aurelien, could you also take a look at
http://patchwork.ozlabs.org/patch/87717/ ?
Thanks,
--
Corentin Chary
http://xf.iksaif.net
how would coroutines help ?
Do you plan to rewrite the server using coroutines instead of threads
?
Thanks
--
Corentin Chary
http://xf.iksaif.net
other encoding for lossless
updates,
like zlib or tight.
- Bitmap module: create bitmap.h and bitops.h, and remove duplicate code
from vnc.c
It was my last series from GSoC 2010 context, if necessary I can send different
series for adaptive vnc, zrle and bitmap stuff.
Thanks,
Corentin Char
These two helpers are needed for zrle and zywrle.
Signed-off-by: Corentin Chary
---
ui/vnc-palette.c | 33 +
ui/vnc-palette.h |3 +++
2 files changed, 36 insertions(+), 0 deletions(-)
diff --git a/ui/vnc-palette.c b/ui/vnc-palette.c
index f93250b..d691a0c
The for loop in send_lossy_rect was totally wrong, and we can't
call vnc_set_bits() because it does not really do what it should.
Use vnc_set_bit() directly instead.
Signed-off-by: Corentin Chary
---
ui/vnc.c | 12
1 files changed, 8 insertions(+), 4 deletions(-)
diff --git
This should not change the current behavior, but if any new
encoding try to use the tight quality, it will always be set
to -1 when lossy encodings are disabled.
Signed-off-by: Corentin Chary
---
ui/vnc.c |4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/ui/vnc.c b/ui
If an adaptive encoding has choosen to send a lossy update
based on the result of vnc_update_freq(), then it should advertise
it with vnc_sent_lossy_rect(). This will allow to automatically refresh
this rect once it's static again.
Signed-off-by: Corentin Chary
---
ui/vnc-jobs-async.c |
Switch to bitmap.h and bitops.h instead of redefining our own bitmap
helpers.
Signed-off-by: Corentin Chary
---
ui/vnc.c | 91 ++---
ui/vnc.h |7 +++--
2 files changed, 25 insertions(+), 73 deletions(-)
diff --git a/ui/vnc.c b/ui
We now that the palette will never have more than 256
elements. Let's use a pool to reduce malloc calls.
Signed-off-by: Corentin Chary
---
ui/vnc-palette.c | 18 ++
ui/vnc-palette.h |3 ++-
2 files changed, 4 insertions(+), 17 deletions(-)
diff --git a/ui/vnc-palett
The force_jpeg threshold was too low.
Signed-off-by: Corentin Chary
---
ui/vnc-enc-tight.c | 20 ++--
1 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/ui/vnc-enc-tight.c b/ui/vnc-enc-tight.c
index 81024d5..82c1e96 100644
--- a/ui/vnc-enc-tight.c
+++ b/ui/vnc
rect was not updated in the last 2 second, then the frequency
became 0, and all the stored timestamp are reseted.
Signed-off-by: Corentin Chary
---
ui/vnc.c | 101 ++
ui/vnc.h | 19 +++
2 files changed, 120 insertions(+), 0
Use the new update frequency infrastructure to use jpeg for regions with
high update frequency.
Signed-off-by: Corentin Chary
---
ui/vnc-enc-tight.c | 75 +++-
1 files changed, 62 insertions(+), 13 deletions(-)
diff --git a/ui/vnc-enc-tight.c b
Respect client size if it doesn't not support desktop resizing.
Signed-off-by: Corentin Chary
---
ui/vnc.c | 10 +-
1 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/ui/vnc.c b/ui/vnc.c
index 600ea75..9189014 100644
--- a/ui/vnc.c
+++ b/ui/vnc.c
@@ -795,12 +7
This allow to use palette on the stack instead of always
allocating them.
Signed-off-by: Corentin Chary
---
ui/vnc-palette.c |8 +++-
ui/vnc-palette.h |1 +
2 files changed, 8 insertions(+), 1 deletions(-)
diff --git a/ui/vnc-palette.c b/ui/vnc-palette.c
index c47420b..f93250b
This option allow to disable adaptive behaviors in some encodings.
Signed-off-by: Corentin Chary
---
qemu-options.hx|9 +
ui/vnc-enc-tight.c |2 +-
ui/vnc.c | 13 +
ui/vnc.h |1 +
4 files changed, 20 insertions(+), 5 deletions(-)
diff
Signed-off-by: Corentin Chary
---
ui/vnc-enc-tight.c |4 ++--
ui/vnc-enc-zrle.c |3 ++-
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/ui/vnc-enc-tight.c b/ui/vnc-enc-tight.c
index ad9a9a8..81024d5 100644
--- a/ui/vnc-enc-tight.c
+++ b/ui/vnc-enc-tight.c
@@ -1546,7
.
Signed-off-by: Corentin Chary
---
Makefile.objs |1 +
bitmap.c | 255 +
bitmap.h | 222 ++
bitops.c | 142 ++
bitops.h | 272
__ffs(1): 0
ffs(1): 1
This behavior is needed for all the other function to work (and makes
more sense that the normal ffs).
But .. maybe I should just use ffs() - 1
--
Corentin Chary
http://xf.iksaif.net
d bug ?), but
the destroy call does.
Signed-off-by: Corentin Chary
---
ui/vnc-jobs-async.c |4
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/ui/vnc-jobs-async.c b/ui/vnc-jobs-async.c
index 6e9cf08..0b5d750 100644
--- a/ui/vnc-jobs-async.c
+++ b/ui/vnc-jobs-async.c
@@ -
Hi Anthony,
If you want to enable vnc threaded server by default, you should
really merge these two lost patchs :).
Thanks,
Corentin Chary (1):
vnc: qemu can die if the client is disconnected while updating screen
Yoshiaki Tamura (1):
vl.c: set NULL upon deleting handlers in
From: Corentin Chary
agraf reported that qemu_mutex_destroy(vs->output_mutex) was failing
in vnc_disconnect_finish() when the vnc client was disconnected while
updating the screen.
It's because vnc_worker_thread_loop() tries to unlock the mutex while
not locked.
Signed-off-by: Corent
s, it'll be
called, and then crashes because of lack of resources. This patch
fixes it.
Signed-off-by: Yoshiaki Tamura
Reviewed-by: Corentin Chary
---
vl.c |2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/vl.c b/vl.c
index 14255c4..7a26bea 100644
--- a/vl.c
+++ b/vl
On Tue, Jan 25, 2011 at 10:03 AM, Stefan Hajnoczi wrote:
> On Tue, Jan 25, 2011 at 8:33 AM, Corentin Chary
> wrote:
>> From: Yoshiaki Tamura
>>
>> Currently qemu_set_fd_handler2() is only setting ioh->deleted upon
>> deleting. This may cause
or? Most open source stuff is multiplatform, and serious
>> commercial work needs something faster than tcg.
>>
>
> *-user is useful to GCC developers (and used by those who work on the ARM
> backend to run the GCC testsuite).
>
> Paolo
>
>
>
Isn't that also used by scratchbox ?
--
Corentin Chary
http://xf.iksaif.net
gt;
There is two patch for that
http://patchwork.ozlabs.org/patch/62420/
http://patchwork.ozlabs.org/patch/62263/
On of these patch is already in master:
http://git.qemu.org/qemu.git/commit/?id=ac71103dc6b408775ae72067790ab367912f75ec
--
Corentin Chary
http://xf.iksaif.net
on (even if currently qemu-thread is a direct
wrapper to pthread).
Thanks,
--
Corentin Chary
http://xf.iksaif.net
odings message to make sure the client us up to date.
I had a similar patch on my queue but yours is probably cleaner :).
--
Corentin Chary
http://xf.iksaif.net
A simple patch would have been to just remove count -= 1, but this
one also replace the while (count--) with a for(i = 0; i < count; i++)
which I believe is more easy to understand.
Signed-off-by: Corentin Chary
---
vnc-encoding-tight.c |9 -
1 files changed, 4 insertions(+)
vnc-encodings-*.c dependencies where missing.
Signed-off-by: Corentin Chary
---
Makefile |6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/Makefile b/Makefile
index 8e1f9d6..b264e38 100644
--- a/Makefile
+++ b/Makefile
@@ -120,11 +120,11 @@ vnc-auth-vencrypt.o: vnc
While couting color, if the third color was only present one
time it wasn't added to the palette.
Signed-off-by: Corentin Chary
---
vnc-encoding-tight.c |1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/vnc-encoding-tight.c b/vnc-encoding-tight.c
index c8effe6..ef
/index.php?post/2010/05/28/QEMU%3A-Threaded-VNC-Server-results
Thanks
Corentin Chary (3):
qemu-thread: add qemu_mutex/cond_destroy and qemu_mutex_exit
qemu-thread: add cleanup_push() and cleanup_pop()
vnc: threaded VNC server
Makefile|4 +
Makefile.objs |7 +-
configure
onfigure --disable-vnc-thread and a
syncrhonous
queue of job will be used (which as exactly the same behavior as the old queue).
If you disable the VNC thread, all thread related code will not be built and
there will
be no overhead.
Signed-off-by: Corentin Chary
---
Makefile|4 +
Makef
Add some missing functions in qemu-thread. Currently qemu-thread
is only used for io-thread but it will used by the vnc server soon
and we need those functions instead of calling pthread directly.
Signed-off-by: Corentin Chary
---
qemu-thread.c | 22 ++
qemu-thread.h
'}', respectively. This means that variables declared
within the scope of paired calls to these functions will only
be visible within that scope.
Signed-off-by: Corentin Chary
---
qemu-thread.h |4
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/qemu-th
On Thu, May 27, 2010 at 4:28 PM, Richard Henderson wrote:
> On 05/26/2010 11:21 PM, Corentin Chary wrote:
>> - int rep = 0; \
>> + int i = 0, rep = 0; \
>
> Dead in
Hi,
Here is two small tight fix and another small patch related to vnc encodings.
Thanks,
Corentin Chary (3):
vnc: tight: don't forget last pixel in tight_encode_indexed_rect
vnc: tight: don't forget the third color
vnc: add missing target for vnc-encodings-*.o
Makefile
A simple patch would have been to just remove count -= 1, but this
one also replace the while (count--) with a for(i = 0; i < count; i++)
which I believe is more easy to understand.
Signed-off-by: Corentin Chary
---
vnc-encoding-tight.c |9 -
1 files changed, 4 insertions(+)
While couting color, if the third color was only present one
time it wasn't added to the palette.
Signed-off-by: Corentin Chary
---
vnc-encoding-tight.c |1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/vnc-encoding-tight.c b/vnc-encoding-tight.c
index c8effe6..ef
vnc-encodings-*.c dependencies where missing.
Signed-off-by: Corentin Chary
---
Makefile |6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/Makefile b/Makefile
index cc5fc45..221fbd8 100644
--- a/Makefile
+++ b/Makefile
@@ -120,11 +120,11 @@ vnc-auth-vencrypt.o: vnc
On Tue, May 4, 2010 at 10:12 AM, Kevin Wolf wrote:
> Am 03.05.2010 19:15, schrieb Anthony Liguori:
>> On 05/03/2010 07:31 AM, Corentin Chary wrote:
>>> This will allow to implement new encodings (tight, zrle, ..)
>>> in a cleaner way. This may hurt performances, beca
On Thu, Jun 3, 2010 at 9:27 AM, Paolo Bonzini wrote:
> On 05/29/2010 09:38 AM, Corentin Chary wrote:
>>
>> Signed-off-by: Corentin Chary
>> ---
>> qemu-thread.h | 4
>> 1 files changed, 4 insertions(+), 0 deletions(-)
>>
>> diff --git a/q
On Thu, Jun 3, 2010 at 9:55 AM, Paolo Bonzini wrote:
> On 05/29/2010 09:38 AM, Corentin Chary wrote:
>>
>> Implement a threaded VNC server using the producer-consumer model.
>> The main thread will push encoding jobs (a list a rectangles to update)
>> in a queue, and
threads;
> + QTAILQ_INIT(&(queue->request_list));
> + QTAILQ_INIT(&(queue->work_item_pool));
> + qemu_mutex_init(&(queue->lock));
> + qemu_cond_init(&(queue->cond));
> +}
> +
> +static inline struct work_item *async_work_init(struct async_queue *queue,
> +
The lossless option can be used to force lossless compression
by disabling all lossy encodings like gradient or jpeg.
Signed-off-by: Corentin Chary
---
qemu-options.hx |5 +
vnc-encoding-tight.c |4
vnc.c|2 ++
vnc.h|2 ++
4 files
Hi,
This set starts by adding JPEG and gradient to tight, then move all ui code
in the ui/ subdirectory.
Thanks,
Corentin Chary (5):
vnc: tight: add JPEG and gradient subencoding with smooth image
detection
vnc: JPEG should be disabled if the client don't set tight quality
vnc
Disable JPEG compression by default and only enable it if the
VNC client has sent the requested quality.
Signed-off-by: Corentin Chary
---
vnc.c |2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/vnc.c b/vnc.c
index ed0e096..9cf38d1 100644
--- a/vnc.c
+++ b/vnc.c
Add gradient filter and JPEG compression with an heuristic to detect how
lossy the comppression will be. This code has been adapted from
libvncserver/tight.c.
JPEG support can be enabled/disabled at compile time with --enable-vnc-jpeg
and --disable-vnc-jpeg.
Signed-off-by: Corentin Chary
Add some missing functions in qemu-thread. Currently qemu-thread
is only used for io-thread but it will used by the vnc server soon
and we need those functions instead of calling pthread directly.
Signed-off-by: Corentin Chary
---
qemu-thread.c | 22 ++
qemu-thread.h
ssues found by Paolo, except the exit condition, mainly because we can
only have
one queue per VncState (due to zstreams), so this is not really an issue.
* Rebased on top of jpeg and ui/ patchs
Corentin Chary (2):
qemu-thread: add qemu_mutex/cond_destroy and qemu_mutex_exit
vnc: threaded VNC s
the threads joinable.
>
> Regards,
>
> Anthony Liguori
Actually, I want to know if the queue is empty and if no job are
currently being processed: all worker are idle or stopped. I don't
really need pthread_join() for that, since worker can be idle (we
don't want to always start and stop the thread :) ).
--
Corentin Chary
http://xf.iksaif.net
rhead.
Signed-off-by: Corentin Chary
---
Makefile.objs |7 +-
configure | 13 ++
ui/vnc-jobs-sync.c | 65 ++
ui/vnc-jobs.c | 351
ui/vnc.c | 169 ++
ui/vnc.h |
t. Most vnc clients have this options.
--
Corentin Chary
http://xf.iksaif.net
On Fri, Jun 4, 2010 at 3:18 PM, Alexander Graf wrote:
>
> On 04.06.2010, at 15:18, Corentin Chary wrote:
>
>> Move sdl, vnc, curses and cocoa UI into ui/ to cleanup
>> the root directory. Also remove some unnecessary explicit
>> targets from Makefile.
>
> There
;. I'm not sure Anthony agrees on this though.
>
> Alex
>
>
If client set a quality it means that we are allowed to send something
lossy. If you don't want this behavior, you can add the lossless (or
lossy) parameter :).
--
Corentin Chary
http://xf.iksaif.net
oop and
an exit flag.
>> + flush = (job->vs->csock != -1&& job->vs->abording != true);
>
> and typo still there.
Ooops, I did it again.
>> +static void *vnc_worker_thread(void *arg)
>> +{
>> + VncJobQueue *queue = arg;
>
> Also, it's better (future proof) to call qemu_thread_self here.
Ok,
--
Corentin Chary
http://xf.iksaif.net
On Fri, Jun 4, 2010 at 3:25 PM, Alexander Graf wrote:
>
> On 04.06.2010, at 15:20, Corentin Chary wrote:
>
>> Implement a threaded VNC server using the producer-consumer model.
>> The main thread will push encoding jobs (a list a rectangles to update)
>> in a queue, and
int max_threads, int min_threads)
>> +{
>> + queue->cur_threads = 0;
>> + queue->idle_threads = 0;
>> + queue->max_threads = max_threads;
>> + queue->min_threads = min_threads;
>> + QTAILQ_INIT(&(queue->request_list));
>> + QTAILQ_INIT(&(queue->work_item_pool));
>> + qemu_mutex_init(&(queue->lock));
>> + qemu_cond_init(&(queue->cond));
>> +}
>>
>
> I'd prefer there be a single queue that everything used verses multiple
> queues. Otherwise, we'll end up having per device queues and my concern is
> that we'll end up with thousands and thousands of threads with no central
> place to tune the maximum thread number.
If there a single queue, we'll need something to control how job are
processed. For example,
in the VNC server, they must be processed in order (in fact, in order
per VNC client, but I don't see how we could do that).
>> +static inline struct work_item *async_work_init(struct async_queue
>> *queue,
>> + void (*func)(struct work_item *),
>> + void *data)
>>
>
> I'd suggest actually using a Notifier as the worker or at least something
> that looks exactly like it. There's no need to pass a void * because more
> often than not, a caller just wants to pass a state structure anyway and
> they can embed the Notifier within the structure. IOW:
>
> async_work_submit(queue, &s->worker);
>
> Then in the callback:
>
> DeviceState *s = container_of(worker, DeviceState, worker);
>
> I don't think the name makes the most sense either. I think something like:
>
> threadlet_submit()
>
> Would work best. It would be good for there to be a big comment warning
> that the routine does not run with the qemu_mutex and therefore cannot make
> use of any qemu functions without very special consideration.
>
>
> There shouldn't need to be an explicit init vs. submit function either.
>
> Regards,
>
> Anthony Liguori
>
--
Corentin Chary
http://xf.iksaif.net
On Fri, Jun 4, 2010 at 3:44 PM, Alexander Graf wrote:
>
> On 04.06.2010, at 15:20, Corentin Chary wrote:
>
>> Implement a threaded VNC server using the producer-consumer model.
>> The main thread will push encoding jobs (a list a rectangles to update)
>> in a queue, and
On Sun, Jun 6, 2010 at 3:54 PM, Avi Kivity wrote:
> On 06/05/2010 11:03 AM, Corentin Chary wrote:
>>>
>>> So it's disabled by default? Sounds like a pretty cool and useful feature
>>> to me that should be enabled by default.
>>>
>>
>> Be
On Sun, Jun 6, 2010 at 4:11 PM, Avi Kivity wrote:
> On 06/04/2010 04:20 PM, Corentin Chary wrote:
>>
>> + if (vnc_trylock_display(vd)) {
>> + vd->timer_interval = VNC_REFRESH_INTERVAL_BASE;
>> + qemu_mod_timer(vd->timer, qemu_get_clock(rt_clock
On Sun, Jun 6, 2010 at 4:53 PM, Avi Kivity wrote:
> On 06/06/2010 05:48 PM, Corentin Chary wrote:
>>
>> On Sun, Jun 6, 2010 at 4:11 PM, Avi Kivity wrote:
>>
>>>
>>> On 06/04/2010 04:20 PM, Corentin Chary wrote:
>>>
>>>>
>>>&
The lossy option can be used to enable lossy compression
methods like gradient or jpeg. This patch disable them by
default.
Signed-off-by: Corentin Chary
---
qemu-options.hx |7 +++
vnc-encoding-tight.c |4
vnc.c|2 ++
vnc.h|2 ++
4
Disable JPEG compression by default and only enable it if the
VNC client has sent the requested quality.
Signed-off-by: Corentin Chary
---
vnc.c |2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/vnc.c b/vnc.c
index ed0e096..9cf38d1 100644
--- a/vnc.c
+++ b/vnc.c
For the same reason that we don't use vnc-authentication-sasl.c but
vnc-auth-sals.c. Because it's to long.
Signed-off-by: Corentin Chary
---
Makefile.objs|4 ++--
ui/{vnchextile.h => vnc-enc-hextile-template.h} |0
ui/{vnc-encod
Add gradient filter and JPEG compression with an heuristic to detect how
lossy the comppression will be. This code has been adapted from
libvncserver/tight.c.
JPEG support can be enabled/disabled at compile time with --enable-vnc-jpeg
and --disable-vnc-jpeg.
Signed-off-by: Corentin Chary
Move sdl, vnc, curses and cocoa UI into ui/ to cleanup
the root directory. Also remove some unnecessary explicit
targets from Makefile.
Signed-off-by: Corentin Chary
---
Makefile | 38 +++-
Makefile.objs
Hi,
This set starts by adding JPEG and gradient to tight, then move all ui code
in the ui/ subdirectory.
Thanks,
Since v1:
* Format patch with rename detection
* Add "lossy" parameter instead of "lossless"
* Disable lossy encodings by default
* Add a small tight fix (for index
While using indexed colors, the last color was never added to the palette.
Triggered with ubuntu livecd.
Signed-off-by: Corentin Chary
---
ui/vnc-enc-tight.c |2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/ui/vnc-enc-tight.c b/ui/vnc-enc-tight.c
index 6db5570..77fcdf7
Add some missing functions in qemu-thread. Currently qemu-thread
is only used for io-thread but it will used by the vnc server soon
and we need those functions instead of calling pthread directly.
Signed-off-by: Corentin Chary
---
qemu-thread.c | 22 ++
qemu-thread.h
ere
in a specific structure, but this is a lot of changes, and as I'm also working
on encodings, I want this patch to be easy to rebase. So I'll do as soon as
the VNC server is merged.
Corentin Chary (2):
qemu-thread: add qemu_mutex/cond_destroy and qemu_mutex_exit
vnc: threaded VNC serv
rhead.
Signed-off-by: Corentin Chary
---
Makefile.objs |7 +-
configure | 13 ++
ui/vnc-jobs-async.c | 357 +++
ui/vnc-jobs-sync.c | 73 +++
ui/vnc-jobs.h | 87 +
ui/vnc.c|
Disable JPEG compression by default and only enable it if the
VNC client has sent the requested quality.
Signed-off-by: Corentin Chary
---
vnc.c |2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/vnc.c b/vnc.c
index ed0e096..9cf38d1 100644
--- a/vnc.c
+++ b/vnc.c
The lossy option can be used to enable lossy compression
methods like gradient or jpeg. This patch disable them by
default.
Signed-off-by: Corentin Chary
---
qemu-options.hx |7 +++
vnc-encoding-tight.c |4
vnc.c|2 ++
vnc.h|2 ++
4
While using indexed colors, the last color was never added to the palette.
Triggered with ubuntu livecd.
Signed-off-by: Corentin Chary
---
ui/vnc-enc-tight.c |2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/ui/vnc-enc-tight.c b/ui/vnc-enc-tight.c
index 358221d..ade8e5f
Move sdl, vnc, curses and cocoa UI into ui/ to cleanup
the root directory. Also remove some unnecessary explicit
targets from Makefile.
Signed-off-by: Corentin Chary
---
Makefile | 38 +++-
Makefile.objs
For the same reason that we don't use vnc-authentication-sasl.c but
vnc-auth-sals.c. Because it's to long.
Signed-off-by: Corentin Chary
---
Makefile.objs|4 ++--
ui/{vnchextile.h => vnc-enc-hextile-template.h} |0
ui/{vnc-encod
buf was never freed.
Signed-off-by: Corentin Chary
---
ui/vnc-enc-tight.c |5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/ui/vnc-enc-tight.c b/ui/vnc-enc-tight.c
index ade8e5f..4ff88a8 100644
--- a/ui/vnc-enc-tight.c
+++ b/ui/vnc-enc-tight.c
@@ -1247,8 +1247,6
he 80 col limit.
* PNG_ macros are only defined if CONFIG_VNC_PNG is defined
Signed-off-by: Corentin Chary
---
ui/vnc-enc-tight.c | 19 ++-
1 files changed, 18 insertions(+), 1 deletions(-)
diff --git a/ui/vnc-enc-tight.c b/ui/vnc-enc-tight.c
index 007d88f..9e1f214 100644
-
Add gradient filter and JPEG compression with an heuristic to detect how
lossy the comppression will be. This code has been adapted from
libvncserver/tight.c.
JPEG support can be enabled/disabled at compile time with --enable-vnc-jpeg
and --disable-vnc-jpeg.
Signed-off-by: Corentin Chary
, and as I'm also working
on encodings, I want this patch to be easy to rebase. So I'll do as soon as
the VNC server is merged.
Since v3:
* Encoding are data is now in specific structures, that makes
vnc_async_encoding_start a lot cleaner.
* Added a missing vnc_output_lock(vs)
Coren
Add some missing functions in qemu-thread. Currently qemu-thread
is only used for io-thread but it will used by the vnc server soon
and we need those functions instead of calling pthread directly.
Signed-off-by: Corentin Chary
---
qemu-thread.c | 22 ++
qemu-thread.h
/
Signed-off-by: Corentin Chary
---
Makefile.target|1 +
configure | 37 +++
ui/vnc-enc-tight.c | 277 ++--
ui/vnc-enc-tight.h | 17 ++--
ui/vnc.c |9 +-
ui/vnc.h | 11 ++
6 files changed, 311
All vnc_write() calls must be locked (except the ones present before
the protocol initialization).
Signed-off-by: Corentin Chary
---
ui/vnc.c |2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/ui/vnc.c b/ui/vnc.c
index cffe238..61f9a05 100644
--- a/ui/vnc.c
+++ b/ui/vnc.c
doesn't suffer from the QObject overhead.
Signed-off-by: Corentin Chary
---
Makefile.objs |2 +-
ui/vnc-enc-tight.c | 163 +++
ui/vnc-palette.c | 136 +++
ui/vnc-palette.h |
This will allow to implement the threaded VNC server in a
more cleaner way.
Signed-off-by: Corentin Chary
---
ui/vnc-enc-hextile.c | 14 ++--
ui/vnc-enc-tight.c | 194 +-
ui/vnc-enc-zlib.c| 34 +-
ui/vnc.c |8
The tight.png buffer was never released.
Signed-off-by: Corentin Chary
---
ui/vnc-enc-tight.c |3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/ui/vnc-enc-tight.c b/ui/vnc-enc-tight.c
index dbde08d..1d926c9 100644
--- a/ui/vnc-enc-tight.c
+++ b/ui/vnc-enc-tight.c
PNG was introduced because some vnc HTML5 clients like noVNC
have slow zlib decoding, but really fast PNG rendering. This
means that if PNG is enabled we should send only PNG (and JPEG, fill),
and never something compressed directly with zlib.
Signed-off-by: Corentin Chary
---
ui/vnc-enc
rhead.
Signed-off-by: Corentin Chary
---
Makefile.objs |7 +-
configure | 13 ++
ui/vnc-jobs-async.c | 331 +++
ui/vnc-jobs-sync.c | 73 +++
ui/vnc-jobs.h | 87 ++
ui/vnc.c|
On Wed, Jun 16, 2010 at 3:18 PM, Juan Quintela wrote:
> Corentin Chary wrote:
>> Add gradient filter and JPEG compression with an heuristic to detect how
>> lossy the comppression will be. This code has been adapted from
>> libvncserver/tight.c.
>>
>> JPEG s
iting until it
>>> gets more work (which would mean it's not actually idle)...
>>
>> Agreed---no cancellation, please.
>>
>> BTW it's obviously okay with signaling the condition when a threadlet is
>> submitted. But when something affects all queue
1 - 100 of 259 matches
Mail list logo