[Spice-devel] The interaction between qxl driver and spiceserver for video stream?
alevy at redhat.com
Mon Jan 10 02:16:30 PST 2011
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!
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
More information about the Spice-devel