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

Francois Gouget fgouget at codeweavers.com
Thu May 28 07:17:27 PDT 2015


On Tue, 26 May 2015, Fabio Fantoni wrote:
[...]
> After din't show gstreamer warning anymore but still have image freeze
> and also spice-gtk crash after open video fullscreen, here the full gdb
> datas:
> http://pastebin.com/idTkZLh0

It looks like the crash happened when trying to access the st->out_frame 
buffer that was set up by stream_gst_data() in the client.

I don't know why that would be the case: as far as I can tell that 
pointer is either valid or NULL; even if we return early from 
push_frame() or pull_frame().

It may not be related to the issue you've run into but the patch below 
should help quite a bit if you try running the client more than a minute 
or two:

diff --git a/gtk/channel-display-gst.c b/gtk/channel-display-gst.c
index b880ce4..9da078a 100644
--- a/gtk/channel-display-gst.c
+++ b/gtk/channel-display-gst.c
@@ -221,6 +221,7 @@ static void pull_frame(display_stream *st)
 
         // TODO seems like poor memory management
         if (gst_memory_map(memory, &mem_info, GST_MAP_READ)) {
+            g_free(st->out_frame);
             st->out_frame = g_malloc0(mem_info.size);
             memcpy(st->out_frame, mem_info.data, mem_info.size);

I also have a patch that avoids copying the out_frame buffer but given 
the low CPU usage of the client that should not be an issue.


> After I tried with gstreamer using ffmpeg, vp8 doesn't crashed, probably
> was problem of gstreamer0.10-plugins-bad but "image freeze" problem remain

When does the freeze happen? A short freeze is normal during the 
transition from the regular transport to the video streaming but that 
happens in the mjpeg case too. Is the freeze temporary?


[...]
> About vp8 image freeze here some seconds of gst log debug on spice-gtk
> when problem happen: http://pastebin.com/PP2R43Yf

Nothing jumped at me in this log.


> Using spice:vp8 seems only have low performance.

In my experience the VP8 encoder saturates a core which is why it is not 
smooth. When running a test pipeline through gst-laucnh I'm able to 
solve that by playing with vp8enc's speed and threads parameters but for 
some 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 <fgouget at codeweavers.com>


More information about the Spice-devel mailing list