On Mon, Apr 18, 2011 at 08:44:05AM +0300, Yaniv Kaul wrote: > 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.
The offloading to the vGPU is not associated with any cost, so I don't understand the difference. What is offloaded to the vGPU *is* the compressed stream (and data to allow the remote, i.e. the GPU, to do stuff like stretching). > > 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 _______________________________________________ Spice-devel mailing list Spice-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/spice-devel