[Spice-devel] [PATCH spice 6/11] server: Add VP8 support, a video codec preference list and compatibility checks with the Spice client.

2015-05-13 Thread Francois Gouget
..8e94e26 100644 --- a/server/red_worker.c +++ b/server/red_worker.c @@ -1,6 +1,7 @@ /* -*- Mode: C; c-basic-offset: 4; indent-tabs-mode: nil -*- */ /* Copyright (C) 2009 Red Hat, Inc. + Copyright (C) 2015 Francois Gouget This library is free software; you can redistribute

[Spice-devel] [PATCH qxl 7/11] Add SpiceVideoCodecs and $XSPICE_VIDEO_CODECS for specifying video codec preferences.

2015-05-13 Thread Francois Gouget
--- examples/spiceqxl.xorg.conf.example | 7 +++ src/qxl.h | 1 + src/qxl_driver.c| 2 ++ src/spiceqxl_spice_server.c | 16 4 files changed, 26 insertions(+) diff --git a/examples/spiceqxl.xorg.conf.example

[Spice-devel] [PATCH protocol 5/11] Add support for the VP8 video codec and for advertising supported video codecs.

2015-05-13 Thread Francois Gouget
Clients that support other codecs besides MJPEG should advertise the SPICE_DISPLAY_CAP_MULTI_CODEC capability and one SPICE_DISPLAY_CAP_CODEC_XXX per supported codec. --- spice/enums.h| 1 + spice/protocol.h | 3 +++ 2 files changed, 4 insertions(+) diff --git a/spice/enums.h

[Spice-devel] [PATCH 0/11] Add GStreamer and VP8 support

2015-05-13 Thread Francois Gouget
tend to exceed it from time to time, and sometimes just won't get anywhere near it. Part of these issues are likely to be bugs in the current implementation and it should be possible to work around most others. Feedback would be greatly appreciated. Cheers, -- Francois Gouget

[Spice-devel] [PATCH spice 4/11] server: Add a GStreamer 0.10 MJPEG video encoder and use it by default.

2015-05-13 Thread Francois Gouget
@@ -0,0 +1,441 @@ +/* -*- Mode: C; c-basic-offset: 4; indent-tabs-mode: nil -*- */ +/* + Copyright (C) 2015 Jeremy White + Copyright (C) 2015 Francois Gouget + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License

[Spice-devel] [PATCH spice 2/11] server: Remove the rate_control_is_active field from MJpegEncoder.

2015-05-13 Thread Francois Gouget
It is redundant with the corresponding callbacks. --- This patch only depends on patch 1/11 and is independent from the rest of the series. server/mjpeg_encoder.c | 22 +- server/mjpeg_encoder.h | 2 +- server/red_worker.c| 4 ++-- 3 files changed, 16 insertions(+),

[Spice-devel] [PATCH spice 1/11] server: Convert a couple of rate control checks into asserts in the mjpeg video encoder.

2015-05-13 Thread Francois Gouget
The checks would lead the reader to think these functions can be called when bit rate control is off when in fact they are only called when it is active. --- This patch makes sense independently from the rest of the series. server/mjpeg_encoder.c | 9 +++-- 1 file changed, 3

[Spice-devel] [PATCH spice 3/11] server: Refactor the Spice server video encoding so alternative implementations can be added.

2015-05-13 Thread Francois Gouget
-tabs-mode: nil -*- */ +/* + Copyright (C) 2009 Red Hat, Inc. + Copyright (C) 2015 Jeremy White + Copyright (C) 2015 Francois Gouget + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published

[Spice-devel] [PATCH spice] server: Round the framerate estimate to the nearest integer.

2015-06-08 Thread Francois Gouget
This is more accurate for typical values like 23.976 fps. --- server/red_worker.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/server/red_worker.c b/server/red_worker.c index cc0a116..0207977 100644 --- a/server/red_worker.c +++ b/server/red_worker.c @@ -3159,15

Re: [Spice-devel] [PATCH 0/11] Add GStreamer and VP8 support

2015-06-09 Thread Francois Gouget
-used=16 can speed it up some more. For network usage maybe max-intra-bitrate can help. -- Francois Gouget fgou...@codeweavers.com ___ Spice-devel mailing list Spice-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/spice-devel

[Spice-devel] RFC spice: Should the input-fps be refreshed regularly?

2015-06-09 Thread Francois Gouget
be sufficient. But maybe there are other cases where we would want more up to date information. Games maybe? -- Francois Gouget fgou...@codeweavers.com ___ Spice-devel mailing list Spice-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman

Re: [Spice-devel] Status of spice-html5 and video streaming

2015-06-06 Thread Francois Gouget
.mov -- Francois Gouget fgou...@codeweavers.com ___ Spice-devel mailing list Spice-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/spice-devel

[Spice-devel] [PATCH qxl] spiceqxl: Recognize the same set of boolean values as in xorg.conf.

2015-06-08 Thread Francois Gouget
Report an error if an invalid boolean value is used, just like for other options. --- This seems simple enough and may avoid confusion. src/qxl_option_helpers.c | 27 --- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/src/qxl_option_helpers.c

[Spice-devel] [PATCH qxl] Xspice: Don't set defaults for the options.

2015-06-08 Thread Francois Gouget
Otherwise they override Spice server's real builtin defaults, the Xorg configuration file settings, and even the XSPICE_XXX environment variables. --- Without this patch, calling Xspice _without_ the '--streaming-video' option forces this setting to 'filter', overriding the

Re: [Spice-devel] [PATCH spice] server: Remove an unused structure.

2015-06-08 Thread Francois Gouget
On Wed, 27 May 2015, Francois Gouget wrote: --- This struct was introduced in the first commit, c1b79eb0, about 6 years ago, but has never been used. So I think it's safe to remove. Is something holding up this patch? Does it need modifications for inclusion? -- Francois Gouget fgou

Re: [Spice-devel] [PATCH spice 1/2] server: Refresh the input fps every 5 second, without a timer.

2015-06-22 Thread Francois Gouget
On Thu, 11 Jun 2015, Francois Gouget wrote: Signed-off-by: Francois Gouget fgou...@codeweavers.com --- This implements Marc-André Lureau's suggestion: http://lists.freedesktop.org/archives/spice-devel/2015-June/020202.html And supersedes the input-fps rounding patch. http

Re: [Spice-devel] [PATCH spice 1/12] server: Convert a couple of rate control checks into asserts in the mjpeg video encoder. (take 3)

2015-06-22 Thread Francois Gouget
On Wed, 10 Jun 2015, Francois Gouget wrote: The checks would lead the reader to think these functions can be called when bit rate control is off when in fact they are only called when it is active. Signed-off-by: Francois Gouget fgou...@codeweavers.com --- This patch stands on its own

[Spice-devel] [PATCH common 5/12] spice.proto: Add support for the VP8 and H264 video codecs. (take 3)

2015-06-10 Thread Francois Gouget
Signed-off-by: Francois Gouget fgou...@codeweavers.com --- Changes since take 2: - This patch also adds h264. spice.proto | 2 ++ 1 file changed, 2 insertions(+) diff --git a/spice.proto b/spice.proto index 01493c9..95123ae 100644 --- a/spice.proto +++ b/spice.proto @@ -329,6 +329,8 @@ flags8

[Spice-devel] [PATCH spice 4/12] server: Add a GStreamer 0.10 MJPEG video encoder and use it by default. (take 3)

2015-06-10 Thread Francois Gouget
The GStreamer video encoder supports both regular and sized streamsi. It is otherwise quite basic and lacks any rate control: the bitrate is set at startup and will not react to changes in the network conditions. Still it should work fine on LANs. Signed-off-by: Francois Gouget fgou

[Spice-devel] [PATCH spice 7/12] server: Add VP8 support, a video codec preference list and compatibility checks with the Spice client. (take 3)

2015-06-10 Thread Francois Gouget
to hardcode that MJPEG is supported. This makes it possible to write clients that don't support MJPEG. * SPICE_DISPLAY_CAP_CODEC_XXX, where XXX is a supported codec, for now MJPEG and VP8. Signed-off-by: Francois Gouget fgou...@codeweavers.com --- Note that this patch should be preceded by one

[Spice-devel] [PATCH spice 12/12] server: Add h264 support to the GStreamer video encoder.

2015-06-10 Thread Francois Gouget
Signed-off-by: Francois Gouget fgou...@codeweavers.com --- Having support for h264 is interesting in its own right but this shows adding extra codecs is quite easy. server/gstreamer_encoder.c | 17 - server/red_dispatcher.c| 2 ++ 2 files changed, 18 insertions(+), 1

[Spice-devel] [PATCH spice 11/12] server: Avoid copying the input frame in the GStreamer encoder.

2015-06-10 Thread Francois Gouget
a GStreamer buffer. So for those we will avoid copies for the first 3840 KB and copy the rest. Signed-off-by: Francois Gouget fgou...@codeweavers.com --- This makes it possible to avoid copying the source frame when using GStreamer 1.0. Paradoxically we are still forced to do some copying

[Spice-devel] [PATCH 0/12] Add GStreamer support for video streams (take 3)

2015-06-10 Thread Francois Gouget
work with this series. Let me know if there are changes that are needed for inclusion. Otherwise I think the next step is adding proper bitrate control. -- Francois Gouget fgou...@codeweavers.com ___ Spice-devel mailing list Spice-devel

[Spice-devel] [PATCH spice 1/12] server: Convert a couple of rate control checks into asserts in the mjpeg video encoder. (take 3)

2015-06-10 Thread Francois Gouget
The checks would lead the reader to think these functions can be called when bit rate control is off when in fact they are only called when it is active. Signed-off-by: Francois Gouget fgou...@codeweavers.com --- This patch stands on its own and I think it makes sense even if the remainder

[Spice-devel] [PATCH spice 2/12] server: Remove the rate_control_is_active field from MJpegEncoder. (take 3)

2015-06-10 Thread Francois Gouget
It is redundant with the corresponding callbacks. Signed-off-by: Francois Gouget fgou...@codeweavers.com --- This patch only depends on the first one and I think it makes sense even if the remainder of the series is not applied. It seemed ok in round 1 so again no change this time around. Let

[Spice-devel] [PATCH spice 12/12] server: Add h264 support to the GStreamer video encoder. (take 3b)

2015-06-11 Thread Francois Gouget
Signed-off-by: Francois Gouget fgou...@codeweavers.com --- Updated so it applies after the VP8 'take 3b' patch. diff --git a/server/gstreamer_encoder.c b/server/gstreamer_encoder.c index c638c3e..58c4c7e 100644 --- a/server/gstreamer_encoder.c +++ b/server/gstreamer_encoder.c @@ -206,6 +206,9

[Spice-devel] [PATCH spice 7/12] server: Add VP8 support, a video codec preference list and compatibility checks with the Spice client. (take 3b)

2015-06-11 Thread Francois Gouget
to hardcode that MJPEG is supported. This makes it possible to write clients that don't support MJPEG. * SPICE_DISPLAY_CAP_CODEC_XXX, where XXX is a supported codec, for now MJPEG and VP8. Signed-off-by: Francois Gouget fgou...@codeweavers.com --- On Thu, 11 Jun 2015, Fabio Fantoni wrote

[Spice-devel] [PATCH spice 10/12] server: Add GStreamer 1.0 support. (take 3b)

2015-06-11 Thread Francois Gouget
Signed-off-by: Francois Gouget fgou...@codeweavers.com --- Updated so it applies after the new VP8 patch. diff --git a/configure.ac b/configure.ac index ed3a337..6a5ddb9 100644 --- a/configure.ac +++ b/configure.ac @@ -92,14 +92,32 @@ if test x$enable_smartcard = xyes; then fi AC_ARG_ENABLE

[Spice-devel] [PATCH protocol 6/12] Add support for the VP8 and H264 video codecs and for advertising supported video codecs. (take 3)

2015-06-10 Thread Francois Gouget
Clients that support multiple codecs should advertise the SPICE_DISPLAY_CAP_MULTI_CODEC capability and one SPICE_DISPLAY_CAP_CODEC_XXX per supported codec. Signed-off-by: Francois Gouget fgou...@codeweavers.com --- This should be followed by a spice-common commit that ensures we get the right

[Spice-devel] [PATCH qxl 8/12] spiceqxl: Add SpiceVideoCodecs and $XSPICE_VIDEO_CODECS for specifying video codec preferences. (take 3)

2015-06-10 Thread Francois Gouget
Signed-off-by: Francois Gouget fgou...@codeweavers.com --- Changes since take 1: - Fixed a brace placement. examples/spiceqxl.xorg.conf.example | 7 +++ src/qxl.h | 1 + src/qxl_driver.c| 2 ++ src/spiceqxl_spice_server.c | 15

[Spice-devel] [PATCH qxl 9/12] Xspice: Add a --video-codecs option to specify which encoder:codec to use.

2015-06-10 Thread Francois Gouget
Signed-off-by: Francois Gouget fgou...@codeweavers.com --- This adds a --video-codecs option to Xspice as an alternative to $XSPICE_VIDEO_CODECS and the SpiceVideoCodecs xorg.conf setting. scripts/Xspice | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/Xspice b

[Spice-devel] [PATCH spice 10/12] server: Add GStreamer 1.0 support.

2015-06-10 Thread Francois Gouget
Signed-off-by: Francois Gouget fgou...@codeweavers.com --- This adds GStreamer 1.0 support! By default GStreamer 1.0 is used if available, otherwise GStreamer 0.10 is used and Spice is compiled without GStreamer support as a last resort. It's possible to explicitly require a specific

Re: [Spice-devel] [PATCH 0/11] Add GStreamer and VP8 support

2015-05-28 Thread Francois Gouget
://github.com/fgouget/xf86-video-qxl.git * gst branch Has the patch to make it possible to specify the encoder:codec pairs in either SpiceVideoCodecs or XSPICE_VIDEO_CODECS. There are also spice-common and spice-protocol repositories but these should get pulled automatically. -- Francois

Re: [Spice-devel] [PATCH 0/11] Add GStreamer and VP8 support

2015-05-29 Thread Francois Gouget
but the client fails to display it. So I'm not totally sure. Also I finally found the right parameters to improve the VP8 encoder performance. Cheers, -- Francois Gouget fgou...@codeweavers.com ___ Spice-devel mailing list Spice-devel

Re: [Spice-devel] [PATCH 0/11] Add GStreamer and VP8 support

2015-06-01 Thread Francois Gouget
try to fix them), but I don't think they can cause display artifacts. What kind of video application are you using for testing? Flash/YouTube? A local file with a media application like mplayer? -- Francois Gouget fgou...@codeweavers.com ___ Spice

[Spice-devel] [PATCH spice 3/7] server: Refactor the Spice server video encoding so alternative implementations can be added. (take 2)

2015-05-27 Thread Francois Gouget
, Inc. + Copyright (C) 2015 Jeremy White + Copyright (C) 2015 Francois Gouget + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1

[Spice-devel] [PATCH spice 2/7] server: Remove the rate_control_is_active field from MJpegEncoder. (take 2)

2015-05-27 Thread Francois Gouget
It is redundant with the corresponding callbacks. --- As far as I can tell this patch was ok in the previous round so no change this time around. server/mjpeg_encoder.c | 22 +- server/mjpeg_encoder.h | 2 +- server/red_worker.c| 4 ++-- 3 files changed, 16

[Spice-devel] [PATCH common 5/7] Add support for the VP8 video codec. (take 2)

2015-05-27 Thread Francois Gouget
--- Thanks to Fabio Fantoni for noticing that spice.proto needed updating too. I think I did not notice the issue because the top-level autogen.sh keeps rechecking out spice-protocol so spice-protocol/spice/enums.h ended up always being newer than spice.proto. spice.proto | 1 + 1 file

[Spice-devel] [PATCH spice 7/7] server: Add VP8 support, a video codec preference list and compatibility checks with the Spice client. (take 2)

2015-05-27 Thread Francois Gouget
; indent-tabs-mode: nil -*- */ /* Copyright (C) 2009 Red Hat, Inc. + Copyright (C) 2015 Francois Gouget This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public @@ -994,6 +995,8 @@ typedef struct RedWorker { uint32_t

[Spice-devel] [PATCH protocol 6/7] Add support for the VP8 video codec and for advertising supported video codecs. (take 2)

2015-05-27 Thread Francois Gouget
Clients that support multiple codecs should advertise the SPICE_DISPLAY_CAP_MULTI_CODEC capability and one SPICE_DISPLAY_CAP_CODEC_XXX per supported codec. --- As far as I can tell this patch was ok in the previous round so no change this time around. spice/enums.h| 1 + spice/protocol.h

[Spice-devel] [PATCH spice 4/7] server: Add a GStreamer 0.10 MJPEG video encoder and use it by default. (take 2)

2015-05-27 Thread Francois Gouget
: 4; indent-tabs-mode: nil -*- */ +/* + Copyright (C) 2015 Jeremy White + Copyright (C) 2015 Francois Gouget + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation

Re: [Spice-devel] [PATCH 0/11] Add GStreamer and VP8 support

2015-05-27 Thread Francois Gouget
spice-protocol/spice/enums.h ended up always being newer than spice.proto. I have added a spice-common patch in the new series. -- Francois Gouget fgou...@free.fr http://fgouget.free.fr/ A particle is an irreducible representation of the Poincaré Group - Eugene

[Spice-devel] [PATCH spice] server: Remove an unused structure.

2015-05-27 Thread Francois Gouget
--- This struct was introduced in the first commit, c1b79eb0, about 6 years ago, but has never been used. So I think it's safe to remove. server/red_dispatcher.c | 10 -- 1 file changed, 10 deletions(-) diff --git a/server/red_dispatcher.c b/server/red_dispatcher.c index

Re: [Spice-devel] [PATCH 0/11] Add GStreamer and VP8 support

2015-05-28 Thread Francois Gouget
reason these have no effect in Spice. gst-launch videotestsrc ! video/x-raw-rgb,width=1024,height=768 ! \ ffmpegcolorspace ! vp8enc speed=2 threads=4 ! \ vp8dec ! ffmpegcolorspace ! fpsdisplaysink -- Francois Gouget fgou...@codeweavers.com

Re: [Spice-devel] [PATCH 0/11] Add GStreamer and VP8 support

2015-06-02 Thread Francois Gouget
? With VP8, if an I frame gets dropped then the following P frames will be broken. I'm not sure how it handles that. Does adding error-resilient=1 or error-resilient=2 to vp8enc make a difference? -- Francois Gouget fgou...@codeweavers.com ___ Spice-devel

[Spice-devel] [PATCH spice] HAVE_CLOCK_GETTIME is not used so remove it.

2015-06-11 Thread Francois Gouget
Signed-off-by: Francois Gouget fgou...@codeweavers.com --- Maybe we should actually use it but currently clock_gettime() uses are all over the place and this macro was only used in the client code anyway (see 18769714 and 3f3283ee). configure.ac | 5 + 1 file changed, 1 insertion(+), 4

[Spice-devel] [PATCH spice 1/2] server: Refresh the input fps every 5 second, without a timer.

2015-06-11 Thread Francois Gouget
Signed-off-by: Francois Gouget fgou...@codeweavers.com --- This implements Marc-André Lureau's suggestion: http://lists.freedesktop.org/archives/spice-devel/2015-June/020202.html And supersedes the input-fps rounding patch. http://lists.freedesktop.org/archives/spice-devel/2015-June/020176.html

[Spice-devel] [PATCH spice 2/2] server: Provide a framerate estimate based on the frames that lead to the stream creation.

2015-06-11 Thread Francois Gouget
This way the video encoder can actually count on a real estimate when it is initializing. Signed-off-by: Francois Gouget fgou...@codeweavers.com --- Initialisation time is when video encoders need an fps most since they have no other information at that point. Yet, all they were getting

Re: [Spice-devel] [PATCH spice 6/11] server: Add VP8 support, a video codec preference list and compatibility checks with the Spice client.

2015-05-26 Thread Francois Gouget
== STREAM_VIDEO_OFF) The administrator could certainly set this option. But as for gracefully handling this failure without configuration, as far as I can tell, by the time red_display_create_stream() fails it's too late to set streaming_video. -- Francois Gouget fgou

Re: [Spice-devel] [PATCH spice 3/11] server: Refactor the Spice server video encoding so alternative implementations can be added.

2015-05-26 Thread Francois Gouget
. -- Francois Gouget fgou...@codeweavers.com ___ Spice-devel mailing list Spice-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/spice-devel

Re: [Spice-devel] [PATCH spice 4/11] server: Add a GStreamer 0.10 MJPEG video encoder and use it by default.

2015-05-26 Thread Francois Gouget
, particularly in GStreamer 1.0. I'll add a FIXME though. -- Francois Gouget fgou...@codeweavers.com___ Spice-devel mailing list Spice-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/spice-devel

Re: [Spice-devel] [PATCH spice 02/13] server: Add a GStreamer 0.10 MJPEG video encoder and use it by default. (take 4)

2015-08-05 Thread Francois Gouget
The GStreamer video encoder supports both regular and sized streams. It is otherwise quite basic and lacks any rate control: the bitrate is set at startup and will not react to changes in the network conditions. Still it should work fine on LANs. Signed-off-by: Francois Gouget fgou

[Spice-devel] [PATCH v2 7/7] spice-gtk: Use typefind and decodebin as fallbacks to set up the GStreamer pipeline.

2015-08-06 Thread Francois Gouget
Potentially this means future video codecs can be supported automatically. One can also force usage of typefind and decodebin by setting the SPICE_GST_AUTO environment variable. If set to 'decodebin' then only decodebin will be used. Signed-off-by: Francois Gouget fgou...@codeweavers.com

[Spice-devel] [PATCH v2 6/7] spice-gtk: Make it possible to disable support for the builtin MJPEG video decoder.

2015-08-06 Thread Francois Gouget
This makes it possible to test the GStreamer video decoder with MJPEG streams. Signed-off-by: Francois Gouget fgou...@codeweavers.com --- configure.ac | 8 src/Makefile.am | 7 ++- src/channel-display.c | 2 ++ 3 files changed, 16 insertions(+), 1 deletion(-) diff

[Spice-devel] [PATCH v2 4/7] spice-gtk: Add a GStreamer video decoder with support for MJPEG, VP8 and h264.

2015-08-06 Thread Francois Gouget
Based on a patch by Jeremy White. Signed-off-by: Francois Gouget fgou...@codeweavers.com --- Note that this patch depends on the spice-common patch so a spice-common commit is in order, either separately or as part of this commit. configure.ac | 47 +++--- src/Makefile.am

[Spice-devel] [PATCH v2 5/7] spice-gtk: Avoid copying the compressed message data in the GStreamer decoder.

2015-08-06 Thread Francois Gouget
Signed-off-by: Francois Gouget fgou...@codeweavers.com --- src/channel-display-gst.c | 89 --- 1 file changed, 84 insertions(+), 5 deletions(-) diff --git a/src/channel-display-gst.c b/src/channel-display-gst.c index 3024356..59ce3e1 100644 --- a/src

[Spice-devel] [PATCH v2 3/7] spice-common: Add support for the VP8 and h264 video codecs.

2015-08-06 Thread Francois Gouget
Signed-off-by: Francois Gouget fgou...@codeweavers.com --- This is identical to this patch: http://lists.freedesktop.org/archives/spice-devel/2015-July/020984.html spice.proto | 2 ++ 1 file changed, 2 insertions(+) diff --git a/spice.proto b/spice.proto index 4ea1263..fa4d448 100644

[Spice-devel] [PATCH v2 2/7] spice-proto: Add support for the VP8 and H264 video codecs and for advertising supported video codecs.

2015-08-06 Thread Francois Gouget
Clients that support multiple codecs should advertise the SPICE_DISPLAY_CAP_MULTI_CODEC capability and one SPICE_DISPLAY_CAP_CODEC_XXX per supported codec. Signed-off-by: Francois Gouget fgou...@codeweavers.com --- This is identical to this patch: http://lists.freedesktop.org/archives/spice

[Spice-devel] [PATCH v2 0/7] spice-gtk: Use GStreamer to decode video

2015-08-06 Thread Francois Gouget
for inclusion. -- Francois Gouget fgou...@codeweavers.com ___ Spice-devel mailing list Spice-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/spice-devel

Re: [Spice-devel] [PATCH spice 01/13] server: Refactor the Spice server video encoding so alternative implementations can be added. (take 4)

2015-08-04 Thread Francois Gouget
This patch simply replaces the mjpeg_encoder_xxx() call points with a more object oriented design. Signed-off-by: Francois Gouget fgou...@codeweavers.com --- On Fri, 31 Jul 2015, Victor Toso wrote: [...] +static inline uint8_t *get_image_line(SpiceChunks *chunks, size_t *offset

[Spice-devel] [PATCH spice 01/13] server: Refactor the Spice server video encoding so alternative implementations can be added. (take 4)

2015-07-21 Thread Francois Gouget
This patch simply replaces the mjpeg_encoder_xxx() call points with a more object oriented design. Signed-off-by: Francois Gouget fgou...@codeweavers.com --- Changes since take 3: - A NULL video_encoder means that the stream creation failed so red_stop_stream() no longer sends messages

[Spice-devel] [PATCH spice 02/13] server: Add a GStreamer 0.10 MJPEG video encoder and use it by default. (take 4)

2015-07-21 Thread Francois Gouget
The GStreamer video encoder supports both regular and sized streams. It is otherwise quite basic and lacks any rate control: the bitrate is set at startup and will not react to changes in the network conditions. Still it should work fine on LANs. Signed-off-by: Francois Gouget fgou

[Spice-devel] [PATCH protocol 04/13] Add support for the VP8 and H264 video codecs and for advertising supported video codecs. (take 4)

2015-07-21 Thread Francois Gouget
Clients that support multiple codecs should advertise the SPICE_DISPLAY_CAP_MULTI_CODEC capability and one SPICE_DISPLAY_CAP_CODEC_XXX per supported codec. --- This should be followed by a spice-common commit that ensures we get the right version of these headers (possibly that commit could be

[Spice-devel] [PATCH spice 05/13] server: Add VP8 support, a video codec preference list and compatibility checks with the Spice client. (take 4)

2015-07-21 Thread Francois Gouget
to hardcode that MJPEG is supported. This makes it possible to write clients that don't support MJPEG. * SPICE_DISPLAY_CAP_CODEC_XXX, where XXX is a supported codec, for now MJPEG and VP8. Signed-off-by: Francois Gouget fgou...@codeweavers.com --- Note that this patch depends on the 03/13 and 04/13

[Spice-devel] [PATCH 00/13] Add GStreamer support for video streams (take 4)

2015-07-21 Thread Francois Gouget
know if there are changes that are needed for inclusion. -- Francois Gouget fgou...@codeweavers.com ___ Spice-devel mailing list Spice-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/spice-devel

[Spice-devel] [PATCH common 03/13] spice.proto: Add support for the VP8 and h264 video codecs. (take 4)

2015-07-21 Thread Francois Gouget
--- Changes since take 3: - None Changes since take 2: - This patch also adds h264. spice.proto | 2 ++ 1 file changed, 2 insertions(+) diff --git a/spice.proto b/spice.proto index 4ea1263..fa4d448 100644 --- a/spice.proto +++ b/spice.proto @@ -329,6 +329,8 @@ flags8 path_flags { /* TODO: C

[Spice-devel] [PATCH spice 11/13] server: Add h264 support to the GStreamer video encoder. (take 4)

2015-07-21 Thread Francois Gouget
Signed-off-by: Francois Gouget fgou...@codeweavers.com --- Having support for h264 is interesting in its own right but this shows adding extra codecs is quite easy. Changes since take 3: - None. server/gstreamer_encoder.c | 17 - server/red_dispatcher.c| 2 ++ 2 files

[Spice-devel] [PATCH spice 09/13] server: Add GStreamer 1.0 support to the GStreamer video encoder. (take 4)

2015-07-21 Thread Francois Gouget
Signed-off-by: Francois Gouget fgou...@codeweavers.com --- By default GStreamer 1.0 is used if available, otherwise GStreamer 0.10 is used and Spice is compiled without GStreamer support as a last resort. It's possible to explicitly require a specific Gstreamer version with --enable-gstreamer

[Spice-devel] [PATCH spice 10/13] server: Avoid copying the input frame in the GStreamer encoder. (take 4)

2015-07-21 Thread Francois Gouget
a GStreamer buffer. So for those we will avoid copies for the first 3840 KB and copy the rest. Signed-off-by: Francois Gouget fgou...@codeweavers.com --- This makes it possible to avoid copying the source frame when using GStreamer 1.0. Paradoxically we are still forced to do some copying

[Spice-devel] [PATCH spice 12/13] server: Shape the bit rate of the GStreamer video encoders output.

2015-07-21 Thread Francois Gouget
update_client_playback_delay() with accurate information and also annotate the client report debug traces with the corresponding bit rate information. Signed-off-by: Francois Gouget fgou...@codeweavers.com --- The bit rate control code can be split into two parts: 1. Code to turn the raw video

[Spice-devel] [PATCH qxl 07/13] Xspice: Add a --video-codecs option to specify which encoder:codec to use. (take 4)

2015-07-21 Thread Francois Gouget
--- Changes since take 3: - None. scripts/Xspice | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/Xspice b/scripts/Xspice index 281535d..02875f5 100755 --- a/scripts/Xspice +++ b/scripts/Xspice @@ -86,6 +86,7 @@ parser.add_argument('--zlib-glz-wan-compression', #

[Spice-devel] [PATCH qxl 06/13] spiceqxl: Add SpiceVideoCodecs and $XSPICE_VIDEO_CODECS for specifying video codec preferences. (take 4)

2015-07-21 Thread Francois Gouget
--- Changes since take 3: - None. Changes since take 1: - Fixed a brace placement. examples/spiceqxl.xorg.conf.example | 7 +++ src/qxl.h | 1 + src/qxl_driver.c| 2 ++ src/spiceqxl_spice_server.c | 15 +++ 4 files

[Spice-devel] [PATCH spice 08/13] server: Let the video encoder manage the compressed buffer and avoid copying it.

2015-07-21 Thread Francois Gouget
of the VideoBuffer structure. Signed-off-by: Francois Gouget fgou...@codeweavers.com --- This is a new patch which makes it possible to avoid copying the output buffer in the GStreamer video encoder. Before: - Spice was handling the initial output buffer allocation, and was also freeing it when destroying

[Spice-devel] [PATCH spice 13/13] server: Automatically adapt the GStreamer video encoder bit rate to the network conditions.

2015-07-21 Thread Francois Gouget
degradation the bit rate is lowered to minimize the risk of long freezes. It also relies on the existing shaping of the GStreamer output bit rate to minimize the pipeline reconfigurations. Signed-off-by: Francois Gouget fgou...@codeweavers.com --- A word about the effective bit rate monitoring: when

[Spice-devel] [spice] server: spice_debug() messages don't need a trailing '\n'.

2015-07-15 Thread Francois Gouget
Signed-off-by: Francois Gouget fgou...@codeweavers.com --- server/red_dispatcher.c | 2 +- server/reds.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/server/red_dispatcher.c b/server/red_dispatcher.c index fb8917a..88980ce 100644 --- a/server/red_dispatcher.c

[Spice-devel] [spice 1/2] server: Don't reset the latency before showing it in the invalid net test error message.

2015-07-15 Thread Francois Gouget
Signed-off-by: Francois Gouget fgou...@codeweavers.com --- server/main_channel.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/server/main_channel.c b/server/main_channel.c index e7df3f9..f1b38af 100644 --- a/server/main_channel.c +++ b/server/main_channel.c @@ -969,11

[Spice-devel] [spice 2/2] server: Weakly try to get a better latency value for the bandwidth test.

2015-07-15 Thread Francois Gouget
Signed-off-by: Francois Gouget fgou...@codeweavers.com --- NET_TEST_WARMUP_BYTES is 0 so the warmup ping is the same as the one we use to measure the latency. Even if it was not, the actual latency would be the MIN() of both anyway so we might as well use both roundtrip times to ward off

Re: [Spice-devel] [PATCH v6 08/26] server: Add VP8 support to the GStreamer encoder

2015-10-26 Thread Francois Gouget
On Thu, 22 Oct 2015, Christophe Fergeau wrote: > On Wed, Oct 14, 2015 at 05:32:03PM +0200, Francois Gouget wrote: > > The Spice server administrator can specify the preferred encoder and > > codec preferences to optimize for CPU or bandwidth usage. Preferences > > are desc

Re: [Spice-devel] [PATCH v6 16/26] server: Give up after a while if GStreamer cannot handle the video

2015-10-26 Thread Francois Gouget
gt; + */ > > +reset_pipeline(encoder); > > +encoder->errors++; > > Maybe increase the errors in pull_compressed_buffer() ? All the encoding errors eventually bubble up to gst_encoder_encode_frame() which is where they are caught, tallied and dealt with. S

Re: [Spice-devel] [PATCH v6 04/26] server: Hide the MJPEG encoder internals from red_worker.c

2015-10-21 Thread Francois Gouget
e really fit to go. -- Francois Gouget <fgou...@codeweavers.com> ___ Spice-devel mailing list Spice-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/spice-devel

Re: [Spice-devel] [client 07/11] build-sys: Allow simultaneous support for Pulse and GStreamer audio

2015-11-08 Thread Francois Gouget
configure --enable-pulse --enable-gstaudio' it will not print an error if one of them is not available. (and something like --with-audio=pulse,gstreamer feels wrong and would be very non standard) Would keeping --with-audio as a temporary frontend for the two enable options be ok? It could pri

Re: [Spice-devel] [common 03/11] build-sys: Add SPICE_CHECK_GSTREAMER_ELEMENTS()

2015-11-10 Thread Francois Gouget
al $1=\$$2])])]) > > I can add that before pushing. Looks good otherwise (though my m4-foo is > weaker than what you are doing in this patch ;) Thanks. That would be nice. -- Francois Gouget <fgou...@codeweavers.com> ___ Spice-devel mailing list Spice-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/spice-devel

Re: [Spice-devel] [spice 10/11] build-sys: Use AC_MSG_NOTICE()

2015-11-10 Thread Francois Gouget
On Tue, 3 Nov 2015, Francois Gouget wrote: > Signed-off-by: Francois Gouget <fgou...@codeweavers.com> > --- > configure.ac | 15 --- > 1 file changed, 4 insertions(+), 11 deletions(-) > > This patch is independent from all other patches in this serie

Re: [Spice-devel] [client 04/11] build-sys: Remove some dead configure.ac DBus code

2015-11-10 Thread Francois Gouget
On Tue, 3 Nov 2015, Francois Gouget wrote: > Signed-off-by: Francois Gouget <fgou...@codeweavers.com> > --- > configure.ac | 4 > 1 file changed, 4 deletions(-) > > This patch does not depend on any other patch in this series. Anything blocking this? (there must

Re: [Spice-devel] [common 01/11] build-sys: Add the SPICE_WARNING() and SPICE_PRINT_MESSAGES m4 macros

2015-11-10 Thread Francois Gouget
On Tue, 3 Nov 2015, Francois Gouget wrote: > A call to SPICE_WARNING() anywhere in the configure file results in the > warning being printed at the end of the configure run where it will be > be visible. This makes it possible to keep the SPICE_WARNING() calls > together with the rel

[Spice-devel] [spice v3] server: Provide a framerate estimate based on the initial frames

2015-11-13 Thread Francois Gouget
This way the video encoder can actually count on a real estimate when it is initializing. Signed-off-by: Francois Gouget <fgou...@codeweavers.com> --- server/display-channel.h | 1 + server/red_worker.c | 18 ++ server/stream.h | 1 + 3 files chang

[Spice-devel] [spice] build-sys: Use AC_MSG_NOTICE()

2015-11-13 Thread Francois Gouget
Signed-off-by: Francois Gouget <fgou...@codeweavers.com> --- configure.ac | 15 --- 1 file changed, 4 insertions(+), 11 deletions(-) I submitted this very simple patch twice before as part of patch series while noting it was independent of the rest of the series

[Spice-devel] [spice] server: Don't check the 'this' mjpeg_encoder pointer

2015-11-13 Thread Francois Gouget
mjpeg_encoder_get_stats() was the only function to check it. Signed-off-by: Francois Gouget <fgou...@codeweavers.com> --- server/mjpeg_encoder.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/mjpeg_encoder.c b/server/mjpeg_encoder.c index c8253a7..84a0078

[Spice-devel] [PATCH v2 1/3] vdagent: Group the client and server functions together

2015-11-13 Thread Francois Gouget
This will simplify selectively disabling the server-side code. Signed-off-by: Francois Gouget <fgou...@codeweavers.com> --- src/udscs.c | 478 ++-- src/udscs.h | 128 +--- 2 files changed, 314 insertions(+), 292 deletions

[Spice-devel] [PATCH v2 3/3] vdagent: Disable the server-side udscs code for vdagent

2015-11-13 Thread Francois Gouget
vdagent only needs the client-side API. Signed-off-by: Francois Gouget <fgou...@codeweavers.com> --- Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile.am b/Makefile.am index 8c55b43..7def506 100644 --- a/Makefile.am +++ b/Makefile.am @@ -4,7 +4,7 @

[Spice-devel] [PATCH v2 2/3] vdagent: Allow disabling the server-side udscs support

2015-11-13 Thread Francois Gouget
To do so define UDSCS_NO_SERVER. This simplifies reuse in client-only scenarios that don't need peer credential support for instance. Signed-off-by: Francois Gouget <fgou...@codeweavers.com> --- src/udscs.c | 8 +++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/uds

[Spice-devel] [spice] server: Remove the display_channel_attach_stream() prototype

2015-11-13 Thread Francois Gouget
It is unused. Signed-off-by: Francois Gouget <fgou...@codeweavers.com> --- server/display-channel.h | 3 --- 1 file changed, 3 deletions(-) It was added in this commit: commit 4987df8e67f48cde13d39f4e81909f672ae33e29 Author: Marc-André Lureau <marcandre.lur...@gmail.com> Date: T

[Spice-devel] vdagent: VDP_LAST_PORT is redundant with VDP_END_PORT. Remove it

2015-11-13 Thread Francois Gouget
VDP_LAST_PORT is equal to VDP_SERVER_PORT while VDP_END_PORT (defined in spice-protocol) is VDP_SERVER_PORT + 1 so the code needs to be adjusted to account for this difference. Signed-off-by: Francois Gouget <fgou...@codeweavers.com> --- src/vdagent-virtio-port.c | 9 - 1 file chan

Re: [Spice-devel] [PATCH v2 1/3] vdagent: Group the client and server functions together

2015-11-13 Thread Francois Gouget
On Fri, 13 Nov 2015, Victor Toso wrote: [...] > PS: Now it seems to be correctly threaded in patchwork, thanks! > https://patchwork.freedesktop.org/series/745/ Is there a reference to Spice's patchwork page somewhere? -- Francois Gouget <fgou...@codewe

Re: [Spice-devel] [spice] server: Don't check the 'this' mjpeg_encoder pointer

2015-11-14 Thread Francois Gouget
ither parameter should be NULL. Plus why single out the NULL pointer case when a use after free is probably more likely? * Or a single spice_return_if_fail(stat != NULL) which may be more in line with current policy (don't return statistics if not given a place to put them). -- Francois G

Re: [Spice-devel] [spice v3] server: Provide a framerate estimate based on the initial frames

2015-11-14 Thread Francois Gouget
AX_FPS. Sure. Will do. > Which kind of test did you do? Playing video with mplayer, totem and Flash (YouTube), with and without SpiceDeferredFPS and EnableSurfaces. The fps estimates were always within 1fps of the actual framerate. -- Francois Gouget <fgou...@codeweavers.com> ___ Spice-devel mailing list Spice-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/spice-devel

Re: [Spice-devel] [spice] server: Don't check the 'this' mjpeg_encoder pointer

2015-11-16 Thread Francois Gouget
On Mon, 16 Nov 2015, Christophe Fergeau wrote: > On Fri, Nov 13, 2015 at 04:14:17PM +0100, Francois Gouget wrote: > > mjpeg_encoder_get_stats() was the only function to check it. > > Could you trigger this assert in a somehow legit case? Or is this just > for consistency? It

[Spice-devel] [spice v4] server: Provide a framerate estimate based on the initial frames

2015-11-16 Thread Francois Gouget
This way the video encoder can actually count on a real estimate when it is initializing. Signed-off-by: Francois Gouget <fgou...@codeweavers.com> --- server/display-channel.h | 1 + server/red_worker.c | 22 ++ server/stream.h | 1 + 3 files chang

[Spice-devel] server: Include stdint.h for int64_t

2015-11-15 Thread Francois Gouget
This fixes a compilation error with gcc 4.4 on RHEL 6. Signed-off-by: Francois Gouget <fgou...@codeweavers.com> --- server/utils.h | 1 + 1 file changed, 1 insertion(+) diff --git a/server/utils.h b/server/utils.h index 1ebc32f..cae03d4 100644 --- a/server/utils.h +++ b/server/utils.h @@

[Spice-devel] server: Duplicate typedef definitions are not allowed in C99

2015-11-15 Thread Francois Gouget
This fixes some compilation errors with gcc 4.4.7 on RHEL 6. Signed-off-by: Francois Gouget <fgou...@codeweavers.com> --- server/red_channel.h| 1 - server/red_dispatcher.h | 1 - server/red_worker.c | 4 ++-- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/

  1   2   3   4   5   6   7   8   9   >