[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