On 4/18/2011 07:42, Alon Levy wrote:
On Fri, Apr 15, 2011 at 11:08:01PM +0300, Yaniv Kaul wrote:
On 4/15/2011 18:22, Alon Levy wrote:
On Thu, Apr 14, 2011 at 03:20:40PM +0200, Andrea Celestino wrote:
I would like to improve the streaming video performance in Spice, do you
think that is possible to improve it? In what way?
Are there documents that describes in detail how spice works with video?
The best I can offer in terms of documentation is the pdfs in the documents
section of spice-space.org, I imagine you are looking for something more,
sorry to disappoint.
The code you are interested in is server/red_worker.c, but that's not very
helpful since that file is huge. Would be nice to split the video related
stuff to a separate file.
worker->streaming_video - determines how we handle streaming video
git grep stream -- server/red_worker.c
I can give you better pointers if you ask more specific questions, but doing
the documentation myself right now.. too much work.
overview of what spice does:
* determine if a given draw operation (has to be an opaque copy iirc) is
repeated to the same area.
* if so, starts a mjpeg encoder and sends the stream to the client
how to improve this (some is on the Features page in spice-space):
* learn to do various video acceleration apis (windows has it, linux has it)
* this is by far the best way to go regarding performance, unless you are
willing to sacrifice cpu for bandwidth in which case I guess you would
reencode.
* otoh this is a pretty large change to multiple parts of spice:
* you need to update the driver for each platform you choose to support,
update the protocol, teach server and client
* it's definitely on the todo list, but no date set.
* replace mjpeg with a different encoder
* if it's just a better performing encoder, clear win.
* otherwise you get the usual cpu/bw tradeoff.
* or you could try to learn which encoder fits which stream (based on some
metric, could be the performance of the encoders themselves)
* just throwing an idea.
Alon
Compressed stream pass-through may also be a viable options
sometimes - do not decode on the guest, re-encode in mjpeg and
decode on the client - just pass the compressed stream from the
guest to the client and decode there.
Of course, you need to have the same decoder on the client as you'd
have on the VM, which makes it more fun, but others have been doing
it.
That's what video acceleration APIs (vdpau for instance) are all about.
Not exactly. I think we are talking about two levels in which
redirection can take place:
You are talking about redirecting GPU assisted decoding from the guest
'vGPU' to the client.
I'm talking about redirecting the compressed stream, before it is
offloaded to the vGPU (which is why you need the correct decoder on the
client).
Each method has its cons and pros.
Y.
Y.
2011/4/11 Alon Levy<al...@redhat.com>
On Mon, Apr 11, 2011 at 03:48:08PM +0200, Andrea Celestino wrote:
Hi,
I have installed Spice and now I'm trying to use it. I'm interested in
how
spice manage streaming video. I read that there is the option
-streaming-video=[all|off|filter]
Can you explain me the difference between these three option?
Which source file read the command line?
Why I have tried to play a video in a player but i have not notice any
difference between the two options 'off' and 'filter'?
Look at http://cgit.freedesktop.org/spice/spice/tree/server/red_worker.c
search for STREAM_VIDEO_FILTER
The switch toggles modes for creating streams:
off - never create
all/filter - create either based on smallest size, or just based on
number of consecutive opaque copies to same area.
Thanks very much for the help.
_______________________________________________
Spice-devel mailing list
Spice-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/spice-devel
_______________________________________________
Spice-devel mailing list
Spice-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/spice-devel
_______________________________________________
Spice-devel mailing list
Spice-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/spice-devel
_______________________________________________
Spice-devel mailing list
Spice-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/spice-devel
_______________________________________________
Spice-devel mailing list
Spice-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/spice-devel