[Spice-devel] The interaction between qxl driver and spiceserver for video stream?

梁亮 ll_nwpu at 163.com
Mon Jan 10 05:20:39 PST 2011


Hi,

Thanks for your kind information.  Yes, recently I digged the spice implementation and found some clues like what you mentioned :-)  I still have some questions regarding stream data:
1) from version 0.63 source code, it seems that 32bit bitmap format is not supported to use MJPEG, why?
2) for 32bit bitmap(format 9), there are two methods to process it depending on JPEG compression flag.  If bandwidth is ok, it will use high quality delivery. Otherwise it will use some lossy-compression algorithm. So what's the difference between the lossy-compression and MJPEG?
3) I'm really puzzled by the spice marshaller code... it seems that they are generated by some python modules/scripts, could anyone share something about it and the purpose?

Have a nice day!

Thanks,
Liang



At 2011-01-10 18:16:30,"Alon Levy" <alevy at redhat.com> wrote:

>On Fri, Dec 17, 2010 at 09:51:39PM +0800, 梁亮 wrote:
>> Dear all,
>> 
>> Several days ago I tried using spice and really impressed by its  performance, really good job! Then I tried to dig the details, mainly focus on graphics subsystem and learned a lot. Thank you!
>> 
>> During studying the handling for stream data, I'm lost in the interaction of qemu display driver and spice server. So I send this mail to consult you experts some simple questions  :-)
>> 1. For the video played in Guest OS, my understanding is that media player (for example, mplayer) in Guest OS will decode the video file and the display driver(qxl driver) will process decoded frames. Is it true? Then display driver will store frame data into stream chain of RedWorker? Each frame will be stored or just some key frames? For above descriptions, they are just my assumption, I have not found provens from the code. Help you could share some hints about the detail.
>
>The frames are fed one by one to the mjpeg encoder on the server, and its output is sent to the client if one is connected. Look in red_worker.c, track mjpeg_encoder and streams (streams belongs to RedWorker).
>
>> 2. Each stream data will be encoded using MJpeg on server side and decoded on client side. Have the team considered higher compression rate codec, like mpeg-4?  If yes, could you help share the reason why it's not adopted? My understanding is that video application is the killer application and consume much bandwidth for remote display system.
>
>We should definitely try adjusting the codec and it's parameters based on bandwidth/latency and cpu requirements.
>
>> 
>> Thank you and have a nice weekend!
>> 
>> Thanks,
>> Liang
>
>> _______________________________________________
>> Spice-devel mailing list
>> Spice-devel at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/spice-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/spice-devel/attachments/20110110/f3493886/attachment.htm>


More information about the Spice-devel mailing list