Acked-by: Jonathon Jongsma
On Tue, 2016-06-07 at 11:17 +0100, Frediano Ziglio wrote:
> There is no reason to initialize these fields in two different places.
> Note that an usage between dcc_new and the function where these
> field were initialised would have resulted in a crash.
>
> Signed-off
I have to admit that I'm not very familiar with this bit of the code. But it's
clearly a behavior change and it seems like one that could have non-obvious or
hard-to-test consequences. Can you give a bit more justification for the change?
Does it fix an observed issue? It seems that these glz drawa
Acked-by: Jonathon Jongsma
On Mon, 2016-06-06 at 09:56 +0100, Frediano Ziglio wrote:
> This function is never used outside this compile unit.
>
> Signed-off-by: Frediano Ziglio
> ---
> server/red-record-qxl.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/server
On Mon, 2016-06-06 at 09:56 +0100, Frediano Ziglio wrote:
> Signed-off-by: Frediano Ziglio
> ---
> server/tests/replay.c | 50 +++---
> 1 file changed, 35 insertions(+), 15 deletions(-)
>
> Changes from v1:
> - renamed cmd_queue to display_queue to mak
i checked some clipboard actions in one same virtual machine. The different
in usage clipboards in the virt-viewer (Remote Viewer) app and the my app
is that:
[In virtual machine console]:
$ kill -9
$ /usr/bin/spice-vdagent -d -x
..
spice-vdagent[.]: 0x24f1010 received clipboard data, arg1
On Tue, 2016-06-07 at 11:14 -0500, Jonathon Jongsma wrote:
> On Sun, 2016-06-05 at 10:38 +0200, Victor Toso wrote:
> >
> > Hi,
> >
> > On Fri, Jun 03, 2016 at 10:17:05AM -0500, Jonathon Jongsma wrote:
> > >
> > >
> > > Related to my comments to the last patch, this change makes the
> > > SpiceF
On Sun, 2016-06-05 at 11:39 +0200, Victor Toso wrote:
> Hi,
>
> On Fri, Jun 03, 2016 at 12:12:14PM -0500, Jonathon Jongsma wrote:
> >
> > On Mon, 2016-05-30 at 11:55 +0200, Victor Toso wrote:
> > >
> > > SpiceFileTransferTask has a callback to be called when operation
> > > ended. Til this patch
On Sun, 2016-06-05 at 11:31 +0200, Victor Toso wrote:
> On Fri, Jun 03, 2016 at 11:42:13AM -0500, Jonathon Jongsma wrote:
> >
> > On Mon, 2016-05-30 at 11:55 +0200, Victor Toso wrote:
> > >
> > > Each call to spice_main_file_copy_async will now create a
> > > FileTransferOperation which groups al
On Sun, 2016-06-05 at 10:38 +0200, Victor Toso wrote:
> Hi,
>
> On Fri, Jun 03, 2016 at 10:17:05AM -0500, Jonathon Jongsma wrote:
> >
> > Related to my comments to the last patch, this change makes the
> > SpiceFileTransferTask class less "self-contained". In other words, if
> > the user does not
On Sun, 2016-06-05 at 10:20 +0200, Victor Toso wrote:
> Hi,
>
> On Thu, Jun 02, 2016 at 05:14:57PM -0500, Jonathon Jongsma wrote:
> >
> > On Mon, 2016-05-30 at 11:55 +0200, Victor Toso wrote:
> > >
> > > In order to avoid sending the agent message on
> > > file_xfer_info_async_cb, we can provide
On Mon, 2016-06-06 at 04:21 -0400, Frediano Ziglio wrote:
> >
> >
> > On Fri, 2016-06-03 at 10:59 +0100, Frediano Ziglio wrote:
> > >
> > > Signed-off-by: Frediano Ziglio
> > > ---
> > > server/red-worker.c | 5 +
> > > 1 file changed, 5 insertions(+)
> > >
> > > diff --git a/server/red-w
> Usually the RedDrawable bbox dimensions match the src_area dimensions
> so that checking that the bbox matches the stream's original dest_area
> should be enough to determine if sized stream support is needed to
> send the frame.
> But making the bbox different could be used to have the scaling
>
> Hi,
>
> would you mind adding a comment to the code to avoid the change in the
> future?
>
> Thanks,
> Pavel
>
Make sense, was/is not that obvious. Done, added also a check for the call.
Frediano
> On Tue, 2016-06-07 at 12:43 +0100, Frediano Ziglio wrote:
> > This prevents a possible cr
This prevents some keyboard handling like IME processing to
take place.
This fixes https://bugzilla.redhat.com/show_bug.cgi?id=1342984
(beside removing the call from virt-viewer).
Signed-off-by: Frediano Ziglio
---
src/spice-widget.c | 30 --
1 file changed, 16 inser
This prevents a possible crash on windows 32 bit.
The linkage of UnhookWindowsHookEx is WINAPI which is __stdcall while
callback for g_clear_pointer is C. This could cause stack pointer
corruption depending on compiler flags.
Signed-off-by: Frediano Ziglio
---
src/spice-widget.c | 6 +-
1 fi
If Windows layout does not support a given key the resulting virtual code
is set to 0xFF. To avoid losing this raw key (causing the key not been
sent to remote machine) detect this condition and handle the key.
The check for raw scancode is there to understand if we can handle
correctly the key in
Signed-off-by: Francois Gouget
---
scripts/Xspice | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/scripts/Xspice b/scripts/Xspice
index 15a5a5e..bf8112f 100755
--- a/scripts/Xspice
+++ b/scripts/Xspice
@@ -87,6 +87,7 @@ parser.add_argument('--zlib-glz-wan-compression',
# TO
Signed-off-by: Francois Gouget
---
examples/spiceqxl.xorg.conf.example | 7 +++
src/qxl.h | 1 +
src/qxl_driver.c| 2 ++
src/spiceqxl_spice_server.c | 15 +++
4 files changed, 25 insertions(+)
diff --git a/examples/spiceqxl
configure will use GStreamer 1.0 if present and fall back to
GStreamer 0.10 otherwise.
ffenc_mjpeg takes its bitrate as a long so extend set_gstenc_bitrate().
Signed-off-by: Francois Gouget
---
configure.ac | 36 ++---
server/Makefile.am | 8 +++
server/gstreamer
This is faster and lets the encoder leverage past bitrate shaping
history to attain the target faster.
Signed-off-by: Francois Gouget
---
server/gstreamer-encoder.c | 16 ++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/server/gstreamer-encoder.c b/server/gstreamer
GObject returns an error instead of clamping if given an out of range
property value.
Signed-off-by: Francois Gouget
---
server/gstreamer-encoder.c | 67 ++
1 file changed, 50 insertions(+), 17 deletions(-)
diff --git a/server/gstreamer-encoder.c b/se
This typically happens when sending very small frames (less than
16 pixels in one dimension) to the x264enc encoder.
This avoids repeatedly wasting time rebuilding the pipeline.
Signed-off-by: Francois Gouget
---
server/gstreamer-encoder.c | 61 ++
1 f
Signed-off-by: Francois Gouget
---
server/gstreamer-encoder.c | 40 +---
1 file changed, 33 insertions(+), 7 deletions(-)
diff --git a/server/gstreamer-encoder.c b/server/gstreamer-encoder.c
index f5a8c17..335aa81 100644
--- a/server/gstreamer-encoder.c
+++ b/
The video encoder uses the client reports and/or notifications of
server frame drops as its feedback mechanisms. In particular it keeps
track of the maximum video margin and reduces the bit rate whenever the
margin goes below certain thresholds or decreases too sharply.
It uses these to figure out
The GStreamer codecs don't follow the specified bit rate very closely:
they can decide to exceed it for ten seconds or more if they consider
the scene deserves it. Such long bursts are enough to cause network
congestion, resulting in many lost frames which cause significant
display corruption.
So t
Signed-off-by: Francois Gouget
---
configure.ac | 1 +
server/gstreamer-encoder.c | 17 -
server/reds.c | 4 +++-
3 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/configure.ac b/configure.ac
index 650ea4a..1cc9f4f 100644
--- a/configure.
This way the video encoder is not forced to use malloc()/free().
This also allows more flexibility in how the video encoder manages the
buffer which allows for a zero-copy implementation in both video
encoders.
Signed-off-by: Francois Gouget
---
server/dcc-send.c | 24 +++--
ser
If an error occurs for whatever reason (e.g. codec not supporting odd
frame sizes), the GStreamer pipeline will drop the current buffer,
causing the encoder to be stuck waiting for the sample. So this patch
tracks error notifications and ensures we don't wait for a sample if
none will come.
Signed
Note that we can only avoid copies for the first 1 Mpixels or so.
That's because Spice splits larger frames into more chunks than we can
fit GstMemory fragments in a GStreamer buffer. So if there are more
pixels we will avoid copies for the first 3840 KB and copy the rest.
Furthermore, while in pra
Signed-off-by: Francois Gouget
---
configure.ac | 4
server/gstreamer-encoder.c | 27 ++-
2 files changed, 30 insertions(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index ac08410..650ea4a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -
Signed-off-by: Francois Gouget
---
configure.ac | 1 +
server/gstreamer-encoder.c | 67 --
server/reds.c | 4 ++-
3 files changed, 63 insertions(+), 9 deletions(-)
diff --git a/configure.ac b/configure.ac
index 79fe0b8..ac0
---
server/tests/replay.c | 11 ++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/server/tests/replay.c b/server/tests/replay.c
index d552327..ebb8bb5 100644
--- a/server/tests/replay.c
+++ b/server/tests/replay.c
@@ -290,7 +290,7 @@ int main(int argc, char **argv)
{
The Spice server administrator can specify the encoder and codec
preferences to optimize for CPU or bandwidth usage. Preferences are
described in a semi-colon separated list of encoder:codec pairs.
The server has a default preference list which can explicitly be
selected by specifying 'auto'.
Sign
Hi,
would you mind adding a comment to the code to avoid the change in the future?
Thanks,
Pavel
On Tue, 2016-06-07 at 12:43 +0100, Frediano Ziglio wrote:
> This prevents a possible crash on windows 32 bit.
> The linkage of UnhookWindowsHookEx is WINAPI which is __stdcall while
> callback for g_
Video frames correspond to QXL_DRAW_COPY operations where the frame area
is defined by the SpiceCopy.src_area field.
Signed-off-by: Francois Gouget
---
server/mjpeg-encoder.c | 14 ++
1 file changed, 6 insertions(+), 8 deletions(-)
diff --git a/server/mjpeg-encoder.c b/server/mjpeg-
Only red_marshall_stream_data() needs to know whether to send the frame
using a SpiceMsgDisplayStreamDataSized or a regular StreamData message.
So check whether we have a sized frame there and simplify the rest of
the code.
Signed-off-by: Francois Gouget
---
server/dcc-send.c| 39 +++
The server picks a codec supported by the client based on the following
new client capabilities:
* SPICE_DISPLAY_CAP_MULTI_CODEC which denotes a recent client that
supports multiple codecs. This capability is needed to not have to
hardcode that MJPEG is supported. This makes it possible to w
This introduces a pared down GStreamer-based video encoder to serve as
the basis for later enhancements.
In this form the new encoder supports both regular and sized streams
but lacks any rate control. It should still work fine if bandwidth is
sufficient such as on LANs.
Signed-off-by: Francois Go
encode_frame() needs the QXL_DRAW_COPY operation's SpiceCopy.src_area
field anyway, so the width and height parameters were redundant.
Signed-off-by: Francois Gouget
---
server/dcc-send.c | 14 ++
server/mjpeg-encoder.c | 1 -
server/video-encoder.h | 2 +-
3 files changed, 7
Usually the RedDrawable bbox dimensions match the src_area dimensions
so that checking that the bbox matches the stream's original dest_area
should be enough to determine if sized stream support is needed to
send the frame.
But making the bbox different could be used to have the scaling be
performe
This patch series adds support for using GStreamer to encode the video
streams, adding support for VP8 and h264 codecs.
As before the patches can also be grabbed from the gst branch of the
repositories below. Note that this time around the required support is
already present in the client.
sp
This prevents a possible crash on windows 32 bit.
The linkage of UnhookWindowsHookEx is WINAPI which is __stdcall while
callback for g_clear_pointer is C. This could cause stack pointer
corruption depending on compiler flags.
Signed-off-by: Frediano Ziglio
---
src/spice-widget.c | 3 ++-
1 file
>
> As the tokens counter were not being reset you could enter in a
> situation where client thinks it has more tokens then server which
> would eventually lead to client's disconnection from 0c5eca97f16ec6
> onwards (before it was crashing).
>
> It is easy to check the above situation if you tra
Remove some coupling, we mainly need to store a list of RedGlzDrawables.
Signed-off-by: Frediano Ziglio
---
server/dcc-encoders.c| 8
server/dcc-encoders.h| 4 ++--
server/display-channel.c | 4 ++--
3 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/server/dcc-encod
Avoid to access some fields from dcc.c
Signed-off-by: Frediano Ziglio
---
server/dcc-encoders.c | 4
server/dcc.c | 3 ---
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/server/dcc-encoders.c b/server/dcc-encoders.c
index fcb6e11..c49561f 100644
--- a/server/dcc-enc
Encoding image requires a RedDrawable (where the data is stored) and
a Ring where to store information to free Glz structures.
Signed-off-by: Frediano Ziglio
---
server/dcc-encoders.c | 17 ++---
server/dcc-encoders.h | 3 ++-
server/dcc.c | 4 +++-
3 files changed, 15 ins
The field was used just as a flag.
This has the advantage to make clear to not use the pointer as we don't
have ownership.
Also many the structure a bit smaller.
Signed-off-by: Frediano Ziglio
---
server/dcc-encoders.c | 12 +---
1 file changed, 5 insertions(+), 7 deletions(-)
diff --gi
Signed-off-by: Frediano Ziglio
---
server/dcc-encoders.c| 14 ++
server/dcc-encoders.h| 2 ++
server/display-channel.c | 18 +-
3 files changed, 21 insertions(+), 13 deletions(-)
diff --git a/server/dcc-encoders.c b/server/dcc-encoders.c
index 01138a2..b91ddc
Signed-off-by: Frediano Ziglio
---
server/dcc-encoders.c | 4 ++--
server/dcc-encoders.h | 2 --
2 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/server/dcc-encoders.c b/server/dcc-encoders.c
index b403024..6b6b95b 100644
--- a/server/dcc-encoders.c
+++ b/server/dcc-encoders.c
@@ -5
Signed-off-by: Frediano Ziglio
---
server/dcc-encoders.c | 10 ++
server/dcc-encoders.h | 11 +--
2 files changed, 11 insertions(+), 10 deletions(-)
diff --git a/server/dcc-encoders.c b/server/dcc-encoders.c
index b91ddc8..06132ed 100644
--- a/server/dcc-encoders.c
+++ b/server/d
Avoid dependencies from RedChannel stuff.
Signed-off-by: Frediano Ziglio
---
server/dcc-encoders.h | 6 --
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/server/dcc-encoders.h b/server/dcc-encoders.h
index 1decd33..fa709d9 100644
--- a/server/dcc-encoders.h
+++ b/server/dcc-en
Signed-off-by: Frediano Ziglio
---
server/dcc-encoders.c | 4 +++-
server/dcc-encoders.h | 1 -
server/dcc.c | 1 -
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/server/dcc-encoders.c b/server/dcc-encoders.c
index 6b6b95b..899e549 100644
--- a/server/dcc-encoders.c
+++ b
Do not access too much encoders data.
Slightly different as now if glz is frozen lz compression is used.
Signed-off-by: Frediano Ziglio
---
server/dcc-encoders.c | 15 +++
server/dcc.c | 21 ++---
2 files changed, 21 insertions(+), 15 deletions(-)
diff --git
Signed-off-by: Frediano Ziglio
---
server/dcc-encoders.c | 10 ++
server/dcc-encoders.h | 2 ++
server/dcc-send.c | 8 ++--
3 files changed, 14 insertions(+), 6 deletions(-)
diff --git a/server/dcc-encoders.c b/server/dcc-encoders.c
index f583857..b403024 100644
--- a/server/dc
There is no reason to initialize these fields in two different places.
Note that an usage between dcc_new and the function where these
field were initialised would have resulted in a crash.
Signed-off-by: Frediano Ziglio
---
server/dcc.c | 10 --
1 file changed, 4 insertions(+), 6 deleti
Note that in this patch glz_drawable_count is removed.
This was used only to print some statistics.
Signed-off-by: Frediano Ziglio
---
server/dcc-encoders.c| 69
server/dcc-encoders.h| 18 +++--
server/dcc.c | 17 +-
Signed-off-by: Frediano Ziglio
---
server/dcc.c | 33 +++--
1 file changed, 19 insertions(+), 14 deletions(-)
diff --git a/server/dcc.c b/server/dcc.c
index 1b6a089..273789a 100644
--- a/server/dcc.c
+++ b/server/dcc.c
@@ -697,15 +697,17 @@ static const LzImageType bi
Signed-off-by: Frediano Ziglio
---
server/dcc-encoders.c | 76 +++
server/dcc-encoders.h | 10 +++
server/dcc.c | 73 -
server/dcc.h | 7 -
4 files changed, 86 insertions(+),
Encoders function should not use DisplayChannelClient
Signed-off-by: Frediano Ziglio
---
server/dcc-encoders.c | 3 +--
server/dcc-encoders.h | 2 +-
server/dcc.c | 2 +-
3 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/server/dcc-encoders.c b/server/dcc-encoders.c
index a
Signed-off-by: Frediano Ziglio
---
server/dcc-encoders.c | 134 +
server/dcc-encoders.h | 6 ++
server/dcc.c | 148 --
3 files changed, 140 insertions(+), 148 deletions(-)
diff --git a/server/d
Signed-off-by: Frediano Ziglio
---
server/dcc-encoders.c | 50 +
server/dcc-encoders.h | 3 +++
server/dcc.c | 52 ---
3 files changed, 53 insertions(+), 52 deletions(-)
diff --git a/server/
Signed-off-by: Frediano Ziglio
---
server/dcc-encoders.c| 60 ++--
server/dcc-encoders.h| 33 ++
server/display-channel.c | 13 +++
server/display-channel.h | 5
4 files changed, 63 insertions(+), 48 deletio
Signed-off-by: Frediano Ziglio
---
server/dcc-encoders.c | 16
server/dcc-encoders.h | 5 +
server/dcc.c | 28
server/dcc.h | 3 ---
4 files changed, 29 insertions(+), 23 deletions(-)
diff --git a/server/dcc-encoders.c b/serve
No reasons why dcc-encoders should know about marshalling.
Signed-off-by: Frediano Ziglio
---
server/dcc-encoders.c | 20
server/dcc-encoders.h | 5 -
server/dcc-send.c | 20
3 files changed, 20 insertions(+), 25 deletions(-)
diff --git a/serve
This change is less clean the other similar patches as zlib and
glz require more steps.
Signed-off-by: Frediano Ziglio
---
server/dcc-encoders.c | 18 +-
server/dcc-encoders.h | 5 +
server/dcc.c | 4 ++--
server/dcc.h | 5 -
4 files changed, 16 inser
Signed-off-by: Frediano Ziglio
---
server/dcc-encoders.c | 30 --
server/dcc-encoders.h | 3 +++
server/dcc.c | 23 +--
server/dcc.h | 2 --
4 files changed, 32 insertions(+), 26 deletions(-)
diff --git a/server/dcc-encoders.c b
Signed-off-by: Frediano Ziglio
---
server/dcc-encoders.c | 127 ++
server/dcc-encoders.h | 4 ++
server/dcc.c | 127 --
3 files changed, 131 insertions(+), 127 deletions(-)
diff --git a/ser
Signed-off-by: Frediano Ziglio
---
server/dcc-encoders.c | 16
server/dcc-encoders.h | 5 +
server/dcc.c | 16 +---
server/dcc.h | 4
4 files changed, 22 insertions(+), 19 deletions(-)
diff --git a/server/dcc-encoders.c b/server/dcc-encod
Signed-off-by: Frediano Ziglio
---
server/dcc-encoders.c| 99 +++-
server/dcc-encoders.h| 22 +++
server/dcc-send.c| 10 ++---
server/dcc.c | 45 +++---
server/dcc.h | 4 --
server/display
Hi,
after the discussion and tests to reduce typedef mess I realized
the code lack some proper encapsulation.
In DisplayChannel there are multiple files to handle different stuff
but all code needs to know all structures and basically include all
stuff.
Looking at code one stuff that could/should
Accumulate counter, do not reset for each client.
Signed-off-by: Frediano Ziglio
---
server/dcc-encoders.c| 5 ++---
server/dcc-encoders.h| 3 ++-
server/display-channel.c | 2 +-
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/server/dcc-encoders.c b/server/dcc-encoders.c
dcc-encoders should be in change of allocate and free the structure
don't put internal assumptions (which functions are used for memory
management) in different files.
Signed-off-by: Frediano Ziglio
---
server/dcc-encoders.h | 5 +
1 file changed, 5 insertions(+)
diff --git a/server/dcc-enc
Start putting all encoding code into dcc-encoders.c.
Signed-off-by: Frediano Ziglio
---
server/dcc-encoders.c | 27 ++-
server/dcc-encoders.h | 6 ++
server/dcc.c | 14 +++---
server/dcc.h | 5 +++--
4 files changed, 30 insertions(+), 22 de
Signed-off-by: Frediano Ziglio
---
server/dcc-encoders.c | 80 +++
server/dcc-encoders.h | 5
server/dcc.c | 66 --
3 files changed, 85 insertions(+), 66 deletions(-)
diff --git a/server/dcc-en
Hi,
On Mon, 2016-06-06 at 18:04 +0200, Fabiano Fidêncio wrote:
> From: Alexander Bokovoy
>
> SASL GSSAPI module will try to negotiate authentication based on the
> credentials in the default credentials cache. It does not matter if
> SPICE knows username or not as SASL negotiation will pass thro
75 matches
Mail list logo