Hi, I have other few simple questions:<div><br></div><div>1)  file: red_worker.c, function: red_worker_main():</div><div>What does evt_listener-&gt;action(evt_listener, event-&gt;events) do? Does it call handle_dev_input() function? Is it called every time an event occurs on socket?</div>
<div><br></div><div>2)file: red_worker.c</div><div>In red_worker_main() there is a call to red_process_commands().What type of command does this function handle?</div><div><br></div><div>3) What is a RedDrawable?</div><div>
<br></div><div>Thanks a lot<br><br><div class="gmail_quote">2011/5/5 Alon Levy <span dir="ltr">&lt;<a href="mailto:alevy@redhat.com">alevy@redhat.com</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">On Thu, May 05, 2011 at 09:45:11AM +0200, Andrea Celestino wrote:<br>
&gt; Ok, in this way the option -streaming-video=[all|off|filter] will be set<br>
&gt; before any workers are started and I can&#39;t send message to change the<br>
&gt; streaming video option.... In which way can I change streaming-video option?<br>
<br>
</div>The change done from the command line affects all the workers started afterwards.<br>
If what you mean is that you want to change during run time, we used to have qemu<br>
monitor commands for that, but it seems they are not in upstream. Can be added<br>
back easily.<br>
<div class="im"><br>
&gt;<br>
&gt; p.s. Can I send email to your email address directly or you prefer the<br>
&gt; mailing list?<br>
<br>
</div>I prefer the mailing list, but I answer both :) The preferred way is to the<br>
mailing list, and cc me.<br>
<div><div></div><div class="h5"><br>
&gt;<br>
&gt; 2011/5/4 Alon Levy &lt;<a href="mailto:alevy@redhat.com">alevy@redhat.com</a>&gt;<br>
&gt;<br>
&gt; &gt; On Wed, May 04, 2011 at 05:00:49PM +0200, Andrea Celestino wrote:<br>
&gt; &gt; &gt; Sorry for the forwarded message.<br>
&gt; &gt; &gt; About 3, is it correct that it doesn&#39;t send<br>
&gt; &gt; &gt; RED_WORKER_MESSAGE_SET_STREAMING_VIDEO? The variable &quot;now&quot; is NULL so the<br>
&gt; &gt; &gt; program doesn&#39;t go inside the while loop and it doesn&#39;t send the message<br>
&gt; &gt; and<br>
&gt; &gt; &gt; data..<br>
&gt; &gt;<br>
&gt; &gt; yes, it is fine (looked at the source finally) - the dispatchers are the<br>
&gt; &gt; list of<br>
&gt; &gt; already active workers, if this parameter is set before any workers are<br>
&gt; &gt; started,<br>
&gt; &gt; then none needs to be updated, they will receive the correct value when<br>
&gt; &gt; they are<br>
&gt; &gt; created. Follow the initialization of them (better to follow where this<br>
&gt; &gt; variable<br>
&gt; &gt; is actually used, and you&#39;ll see that it is received in the process of<br>
&gt; &gt; creating<br>
&gt; &gt; a new red worker thread). There is a worker thread for every card, so for a<br>
&gt; &gt; single<br>
&gt; &gt; qxl pci card you will have one worker, the dispatcher is used to talk to it<br>
&gt; &gt; over<br>
&gt; &gt; a pipe.<br>
&gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; 2011/5/4 Alon Levy &lt;<a href="mailto:alevy@redhat.com">alevy@redhat.com</a>&gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; On Wed, May 04, 2011 at 03:27:52PM +0200, Andrea Celestino wrote:<br>
&gt; &gt; &gt; &gt; &gt; Hi,<br>
&gt; &gt; &gt; &gt; &gt; I have gathered other questions about spice and how it handles<br>
&gt; &gt; streaming<br>
&gt; &gt; &gt; &gt; &gt; video. I think you can help me:<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; 1)File red_worker.c.<br>
&gt; &gt; &gt; &gt; &gt; I would like to have more information about these members of the<br>
&gt; &gt; struct<br>
&gt; &gt; &gt; &gt; &gt; RedWorker :<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;    - RedSurface surfaces[NUM_SURFACES],<br>
&gt; &gt; &gt; &gt; one for each surface. The first is the primary surface, which is the<br>
&gt; &gt; &gt; &gt; equivalent<br>
&gt; &gt; &gt; &gt; of the framebuffer. Each RedSurface contains a canvas (i.e. pixmap<br>
&gt; &gt; &gt; &gt; implemented / opengl<br>
&gt; &gt; &gt; &gt; implemented) and the operations that are active on that surface (i.e.<br>
&gt; &gt; the<br>
&gt; &gt; &gt; &gt; state<br>
&gt; &gt; &gt; &gt; the client meant to have at any point would be taking the canvas and<br>
&gt; &gt; &gt; &gt; applying all the<br>
&gt; &gt; &gt; &gt; surface kept operations from oldest to newest).<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;    - Ring current_list,<br>
&gt; &gt; &gt; &gt; List of operations I think - drawables that are being used.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;    - _Drawable drawables[NUM_DRAWABLES];<br>
&gt; &gt; &gt; &gt; Preallocated drawables. Just used instead of mallocing everything when<br>
&gt; &gt; &gt; &gt; required.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;    - Stream streams_buf[NUM_STREAMS];<br>
&gt; &gt; &gt; &gt; Same for streams.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; 2)Function red_worker_main(), what does *red_handle_streams_timout()*<br>
&gt; &gt; do?<br>
&gt; &gt; &gt; &gt; Don&#39;t recall.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; 3)When you run qemu with option *-streaming_video=off* for example,<br>
&gt; &gt; the<br>
&gt; &gt; &gt; &gt; &gt; function *spice_server_set_streaming_video() *in reds.c, calls *<br>
&gt; &gt; &gt; &gt; &gt; red_dispatcher_on_sv_change(). *<br>
&gt; &gt; &gt; &gt; &gt; **In this function there is a while loop on RedDispatcher *now.<br>
&gt; &gt; &gt; &gt; Dispatcher<br>
&gt; &gt; &gt; &gt; &gt; is created in red_dispatcher_init_function, that it&#39;s called later,<br>
&gt; &gt; in<br>
&gt; &gt; &gt; &gt; this<br>
&gt; &gt; &gt; &gt; &gt; way *now *is NULL and it doesn&#39;t enter in the while loop. As a<br>
&gt; &gt; &gt; &gt; consequence<br>
&gt; &gt; &gt; &gt; &gt; of this,  *red_dispatcher_on_sv_change() *doesn&#39;t send<br>
&gt; &gt; &gt; &gt; &gt; *RED_WORKER_MESSAGE_SET_STREAMING_VIDEO<br>
&gt; &gt; &gt; &gt; &gt; *message.<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Did I make myself clear?<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Not sure about 3 - what is the question?<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Thanks very much.<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; 2011/4/21 Alon Levy &lt;<a href="mailto:alevy@redhat.com">alevy@redhat.com</a>&gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; On Thu, Apr 21, 2011 at 10:22:15AM +0200, Andrea Celestino wrote:<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Thanks.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Now I am trying to study the code I am interested in.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Unfortunately, the file red_worker.c is very huge and there are<br>
&gt; &gt; not<br>
&gt; &gt; &gt; &gt; any<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; comments that can help me.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; I would like to know:<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; 1- which parts/functions of red_worker.c are video related stuff?<br>
&gt; &gt; &gt; &gt; &gt; &gt; A lot. Seriously - this requires a little more checking then I can<br>
&gt; &gt; give<br>
&gt; &gt; &gt; &gt; you<br>
&gt; &gt; &gt; &gt; &gt; &gt; off<br>
&gt; &gt; &gt; &gt; &gt; &gt; the top of my head. Questions 2 and 3 are more specific, so easier<br>
&gt; &gt; to<br>
&gt; &gt; &gt; &gt; &gt; &gt; answer.<br>
&gt; &gt; &gt; &gt; &gt; &gt; I would seriously suggest trying systemtap or just adding some<br>
&gt; &gt; prints<br>
&gt; &gt; &gt; &gt; to<br>
&gt; &gt; &gt; &gt; &gt; &gt; see<br>
&gt; &gt; &gt; &gt; &gt; &gt; what is going on. Start from red_process_drawable.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; 2- You said:<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;  &quot;determine if a given draw operation (has to be an opaque copy<br>
&gt; &gt; iirc)<br>
&gt; &gt; &gt; &gt; is<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;  repeated to the same area.&quot;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; What do you mean with &quot;opaque copy iirc&quot;?<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; iirc - if I recall correctly, meaning I&#39;m not sure.<br>
&gt; &gt; &gt; &gt; &gt; &gt; opaque copy - an operation that copies a bitmap to a surface. The<br>
&gt; &gt; video<br>
&gt; &gt; &gt; &gt; &gt; &gt; streaming<br>
&gt; &gt; &gt; &gt; &gt; &gt; is done based on seeing repeated operations that copy a bitmap to<br>
&gt; &gt; the<br>
&gt; &gt; &gt; &gt; same<br>
&gt; &gt; &gt; &gt; &gt; &gt; surface, always surface 0 (that is the primary surface, we ignore<br>
&gt; &gt; &gt; &gt; repeated<br>
&gt; &gt; &gt; &gt; &gt; &gt; copies<br>
&gt; &gt; &gt; &gt; &gt; &gt; to non primary surfaces).<br>
&gt; &gt; &gt; &gt; &gt; &gt; opaque - meaning the destination bits are overwritten by the source<br>
&gt; &gt; &gt; &gt; bits,<br>
&gt; &gt; &gt; &gt; &gt; &gt; no binary<br>
&gt; &gt; &gt; &gt; &gt; &gt; operation is done (xor/and/or).<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; 3- There are a red worker thread for each QXL device instance.<br>
&gt; &gt; How<br>
&gt; &gt; &gt; &gt; many<br>
&gt; &gt; &gt; &gt; &gt; &gt; QXL<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; device instance are there?<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; One per device. But you can ignore the support for multiple devices<br>
&gt; &gt; for<br>
&gt; &gt; &gt; &gt; &gt; &gt; this,<br>
&gt; &gt; &gt; &gt; &gt; &gt; so just one if you run a single device (&quot;-vga qxl&quot;).<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; 4- Which function does red_worker.c use to detect video<br>
&gt; &gt; streaming?<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; interesting functions are:<br>
&gt; &gt; &gt; &gt; &gt; &gt; __red_is_next_stream_frame<br>
&gt; &gt; &gt; &gt; &gt; &gt; anything with -&gt;stream<br>
&gt; &gt; &gt; &gt; &gt; &gt; red_attach_stream<br>
&gt; &gt; &gt; &gt; &gt; &gt; anything with mjpeg<br>
&gt; &gt; &gt; &gt; &gt; &gt; red_current_add, the bottom part (that checks for OPAQUE and calls<br>
&gt; &gt; &gt; &gt; &gt; &gt; red_use_stream_trace)<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Thanks for any helps you can give me<br>
&gt; &gt; &gt; &gt; &gt; &gt; Sure, please take a look at the above points and try what I<br>
&gt; &gt; suggested.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Alon<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; 2011/4/15 Alon Levy &lt;<a href="mailto:alevy@redhat.com">alevy@redhat.com</a>&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; On Thu, Apr 14, 2011 at 03:20:40PM +0200, Andrea Celestino<br>
&gt; &gt; wrote:<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I would like to improve the streaming video performance in<br>
&gt; &gt; Spice,<br>
&gt; &gt; &gt; &gt; do<br>
&gt; &gt; &gt; &gt; &gt; &gt; you<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; think that is possible to improve it? In what way?<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Are there documents that describes in detail how spice works<br>
&gt; &gt; with<br>
&gt; &gt; &gt; &gt; &gt; &gt; video?<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; The best I can offer in terms of documentation is the pdfs in<br>
&gt; &gt; the<br>
&gt; &gt; &gt; &gt; &gt; &gt; documents<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; section of <a href="http://spice-space.org" target="_blank">spice-space.org</a>, I imagine you are looking for<br>
&gt; &gt; &gt; &gt; something<br>
&gt; &gt; &gt; &gt; &gt; &gt; more,<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; sorry to disappoint.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; The code you are interested in is server/red_worker.c, but<br>
&gt; &gt; that&#39;s<br>
&gt; &gt; &gt; &gt; not<br>
&gt; &gt; &gt; &gt; &gt; &gt; very<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; helpful since that file is huge. Would be nice to split the<br>
&gt; &gt; video<br>
&gt; &gt; &gt; &gt; &gt; &gt; related<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; stuff to a separate file.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; worker-&gt;streaming_video - determines how we handle streaming<br>
&gt; &gt; video<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; git grep stream -- server/red_worker.c<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I can give you better pointers if you ask more specific<br>
&gt; &gt; questions,<br>
&gt; &gt; &gt; &gt; but<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; doing<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; the documentation myself right now.. too much work.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; overview of what spice does:<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;  * determine if a given draw operation (has to be an opaque<br>
&gt; &gt; copy<br>
&gt; &gt; &gt; &gt; iirc)<br>
&gt; &gt; &gt; &gt; &gt; &gt; is<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;  repeated to the same area.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;  * if so, starts a mjpeg encoder and sends the stream to the<br>
&gt; &gt; client<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; how to improve this (some is on the Features page in<br>
&gt; &gt; spice-space):<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;  * learn to do various video acceleration apis (windows has it,<br>
&gt; &gt; &gt; &gt; linux<br>
&gt; &gt; &gt; &gt; &gt; &gt; has<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; it)<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;  * this is by far the best way to go regarding performance,<br>
&gt; &gt; unless<br>
&gt; &gt; &gt; &gt; you<br>
&gt; &gt; &gt; &gt; &gt; &gt; are<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;  willing to sacrifice cpu for bandwidth in which case I guess<br>
&gt; &gt; you<br>
&gt; &gt; &gt; &gt; would<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; reencode.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;  * otoh this is a pretty large change to multiple parts of<br>
&gt; &gt; spice:<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;   * you need to update the driver for each platform you choose<br>
&gt; &gt; to<br>
&gt; &gt; &gt; &gt; &gt; &gt; support,<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; update the protocol, teach server and client<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;  * it&#39;s definitely on the todo list, but no date set.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;  * replace mjpeg with a different encoder<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;  * if it&#39;s just a better performing encoder, clear win.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;  * otherwise you get the usual cpu/bw tradeoff.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;  * or you could try to learn which encoder fits which stream<br>
&gt; &gt; (based<br>
&gt; &gt; &gt; &gt; on<br>
&gt; &gt; &gt; &gt; &gt; &gt; some<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;  metric, could be the performance of the encoders themselves)<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;   * just throwing an idea.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Alon<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; 2011/4/11 Alon Levy &lt;<a href="mailto:alevy@redhat.com">alevy@redhat.com</a>&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; On Mon, Apr 11, 2011 at 03:48:08PM +0200, Andrea Celestino<br>
&gt; &gt; &gt; &gt; wrote:<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Hi,<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I have installed Spice and now I&#39;m trying to use it. I&#39;m<br>
&gt; &gt; &gt; &gt; &gt; &gt; interested<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; in<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; how<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; spice manage streaming video. I read that there is the<br>
&gt; &gt; option<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; -streaming-video=[all|off|filter]<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Can you explain me the difference between these three<br>
&gt; &gt; option?<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Which source file read the command line?<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Why I have tried to play a video in a player but i have<br>
&gt; &gt; not<br>
&gt; &gt; &gt; &gt; &gt; &gt; notice<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; any<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; difference between the two options &#39;off&#39; and &#39;filter&#39;?<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Look at<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; <a href="http://cgit.freedesktop.org/spice/spice/tree/server/red_worker.c" target="_blank">http://cgit.freedesktop.org/spice/spice/tree/server/red_worker.c</a><br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; search for STREAM_VIDEO_FILTER<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; The switch toggles modes for creating streams:<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;  off - never create<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;  all/filter - create either based on smallest size, or just<br>
&gt; &gt; &gt; &gt; based<br>
&gt; &gt; &gt; &gt; &gt; &gt; on<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;  number of consecutive opaque copies to same area.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Thanks very much for the help.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; _______________________________________________<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Spice-devel mailing list<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; <a href="mailto:Spice-devel@lists.freedesktop.org">Spice-devel@lists.freedesktop.org</a><br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; <a href="http://lists.freedesktop.org/mailman/listinfo/spice-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/spice-devel</a><br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; _______________________________________________<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Spice-devel mailing list<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; <a href="mailto:Spice-devel@lists.freedesktop.org">Spice-devel@lists.freedesktop.org</a><br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; <a href="http://lists.freedesktop.org/mailman/listinfo/spice-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/spice-devel</a><br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt;<br>
</div></div></blockquote></div><br></div>