Re: [PATCH v9 00/24] Add GStreamer support for video streaming

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Francois,

I tried your patches with a small patch for the replay utility.
http://paste.fedoraproject.org/313167/33783291/

I used an old recording of a Win7 guest a tried to replay it:
./spice-server-replay -c "spicy -h localhost -p 6000 2>/tmp/log.txt" -p
6000 /tmp/win7record.spice -S 2 -v "gstreamer:mjpeg"

And it crashes: http://paste.fedoraproject.org/313166/33782911/

With "gstreamer:vp8" it hangs
With "gstreamer:h264" it hangs after a while and I see a few of:
((null):24420): Spice-Warning **: gstreamer-encoder.c:726:map_format:
The 8 format has not been tested yet

With "spice:mjpeg" it works as expected

Unsupported "spice:h264", "spice:vp8" crashes too.

Maybe my usage is wrong and/or the crashes are related to "timing" of
the replay utility. Have you seen the crash before?

Thanks,
Pavel

On Mon, 2016-01-18 at 12:03 +0100, Francois Gouget wrote:
> The source changed so here is the new revision of this patchset.
> 
> This patch series adds support for using GStreamer to encode and
> decode 
> the video streams, adding support for VP8 and h264 codecs. As before
> the 
> patches can also be grabbed from the repositories below:
> 
> spice:          https://github.com/fgouget/spice
> spice-gtk:      https://github.com/fgouget/spice-gtk
> xf86-video-qxl: https://github.com/fgouget/xf86-video-qxl
> spice-protocol: https://github.com/fgouget/spice-protocol
> 
> (there's also 'extras' branches with more experimental/future
> patches 
> for the curious)
> 
> 
> Changes from v8:
> * Rebased on the current source.
> * Adjusted the Spice protocol version requirement.
>  
> Changes from v7:
> * When the client has support for GStreamer video codecs it now 
>   checks the presence of each supported codec before advertising
> support 
>   for it.
> 
> Changes from v6:
> * configure.ac uses the new m4 macros to check for GStreamer support 
>   and the presence of the needed plugins.
> * It separates adding checks for the client codec support from 
>   specifying which codec to use in the server and from adding VP8 
>   support.
> 
> 
From 407f7268de18d92880cfe7deee9223d0e8c16c9e Mon Sep 17 00:00:00 2001
From: Pavel Grunt <pgrunt@xxxxxxxxxx>
Date: Thu, 21 Jan 2016 12:49:21 +0100
Subject: [PATCH spice] replay: Add an option to change video codec

---
 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 2af9481..30fd47c 100644
--- a/server/tests/replay.c
+++ b/server/tests/replay.c
@@ -287,7 +287,7 @@ int main(int argc, char **argv)
 {
     GError *error = NULL;
     GOptionContext *context = NULL;
-    gchar *client = NULL, **file = NULL;
+    gchar *client = NULL, *codecs = NULL, **file = NULL;
     gint port = 5000, compression = SPICE_IMAGE_COMPRESSION_AUTO_GLZ;
     gint streaming = SPICE_STREAM_VIDEO_FILTER;
     gboolean wait = FALSE;
@@ -297,6 +297,7 @@ int main(int argc, char **argv)
         { "client", 'c', 0, G_OPTION_ARG_STRING, &client, "Client", "CMD" },
         { "compression", 'C', 0, G_OPTION_ARG_INT, &compression, "Compression (default 2)", "INT" },
         { "streaming", 'S', 0, G_OPTION_ARG_INT, &streaming, "Streaming (default 3)", "INT" },
+        { "video-codecs", 'v', 0, G_OPTION_ARG_STRING, &codecs, "Video codecs", "STRING" },
         { "port", 'p', 0, G_OPTION_ARG_INT, &port, "Server port (default 5000)", "PORT" },
         { "wait", 'w', 0, G_OPTION_ARG_NONE, &wait, "Wait for client", NULL },
         { "slow", 's', 0, G_OPTION_ARG_INT, &slow, "Slow down replay. Delays USEC microseconds before each command", "USEC" },
@@ -377,6 +378,14 @@ int main(int argc, char **argv)
     server = spice_server_new();
     spice_server_set_image_compression(server, compression);
     spice_server_set_streaming_video(server, streaming);
+
+    if (codecs != NULL) {
+        if (spice_server_set_video_codecs(server, codecs) != 0) {
+            g_warning("could not set codecs: %s", codecs);
+        }
+        g_free(codecs);
+    }
+
     spice_server_set_port(server, port);
     spice_server_set_noauth(server);
 
-- 
2.5.0

_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/spice-devel

[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]