[Spice-devel] Fwd: Question from a chinese programmer

Christophe Fergeau cfergeau at redhat.com
Wed Aug 31 15:49:59 UTC 2016


Hey,

On Fri, Aug 26, 2016 at 07:57:16AM +0800, Kop Yiddish wrote:
> ---------- 转发的邮件 ----------
> 发件人:"Kop Yiddish" <yiddishkop at gmail.com>
> 日期:2016年8月25日 21:20
> 主题:Question from a chinese programmer
> 收件人: <pgrunt at redhat.com>
> 抄送:
> 
> hi, sir,
> How are you?
> I'm a programmer from china ,i have some questions about your patchwork in
> SPICE project. May I make bold to disturb you for some minitues ?
> I recently encounter a problme, we use SPICE for remote access , but
> when playing high-quality video ,  it droped frames seriously with high
> Memory usage and CPU suage.
> I suppose SIPCE will control the rate of video stream by the bandwidth, but
> it appears that SPICE protocal doesn't work.
> I read the souce code related, I find some clues about it.
> 
> > enum {
> >
> >     SPICE_DISPLAY_CAP_SIZED_STREAM,
> >
> >     SPICE_DISPLAY_CAP_MONITORS_CONFIG,
> >
> >     SPICE_DISPLAY_CAP_COMPOSITE,
> >
> >     SPICE_DISPLAY_CAP_A8_SURFACE,
> >
> >     SPICE_DISPLAY_CAP_STREAM_REPORT,
> >
> > };
> >
> > dcc->use_mjpeg_encoder_rate_control =
> 
>         red_channel_client_test_remote_cap(&dcc->common.base,
> > SPICE_DISPLAY_CAP_STREAM_REPORT);
> 
> 
> 
> I have some question below:
> 
>    1. I find encoder will check the SPICE_DISPLAY_CAP_STREAM_REPORT, and
>    decide whether functioned the "rate control of the the transfermation", is
>    my understanding right?
>    2. I find your pathwork to SPICE about SPICE_DISPLAY_CAP_LZ4_COMPRESSION,
>    did the original project has some bugs in controling the rate of the
>    transformation from SPICE-server to client, i mean it can not control the
>    quality of video by the bandwidth

If you are expecting SPICE to dynamically adjust image quality in order
to fit some predefined bandwidth target, this is indeed not something
that it is doing. The GStreamer streaming code which was added a few
months ago to master attempts to do some bandwidth control, dropping
frames if needed, or reducing quality, but this is only used when the
SPICE protocol decides to attempt streaming (ie when a part of the
screen changes a lot).

>    3. Can you explain the word -- "channel capability",which i encountered
>    many times, but i can't specify the TRUE meaning of it.

capabilities (or 'cap') are used for negociation between the client and
the server.  As SPICE evolves, we sometimes add new features to the
procotol. These new features should only be used when both the server
and the client supports it. In order to detect that, the client/server
can set 'capabilities' to let the other end know that they have the
needed support.  This way, new server talking to old client will know it
should not use the new feature, same for new client talking to old
server.

Let me know if you have more questions,

Christophe
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/spice-devel/attachments/20160831/d291cf05/attachment.sig>


More information about the Spice-devel mailing list