[Spice-devel] [PATCH spice-server] Use desired image compression for the first image

Christophe Fergeau cfergeau at redhat.com
Mon Jun 22 05:20:54 PDT 2015


Hey,

Seems fine, though it's not clear to me why this would only impact the
first image? Also, do we have limitations on the kind of images quic can
compress? This patch always uses quic when SPICE_IMAGE_COMPRESS_QUIC is
used.

Christophe

On Fri, Jun 19, 2015 at 03:44:39PM +0200, Pavel Grunt wrote:
> red_marshall_image() allows to use other than QUIC compression only
> when auto_lz or auto_glz image compression is set.
> ---
> Also the LZ4 part of code in red_marshall_image could not be triggered
> ---
>  server/red_worker.c | 14 +++++++-------
>  1 file changed, 7 insertions(+), 7 deletions(-)
> 
> diff --git a/server/red_worker.c b/server/red_worker.c
> index 58a7d00..8fb7218 100644
> --- a/server/red_worker.c
> +++ b/server/red_worker.c
> @@ -8820,9 +8820,9 @@ static void red_marshall_image(RedChannelClient *rcc, SpiceMarshaller *m, ImageI
>      SpiceBitmap bitmap;
>      SpiceChunks *chunks;
>      QRegion *surface_lossy_region;
> -    int comp_succeeded;
> +    int comp_succeeded = FALSE;
>      int lossy_comp = FALSE;
> -    int lz_comp = FALSE;
> +    int quic_comp = FALSE;
>      spice_image_compression_t comp_mode;
>      SpiceMsgDisplayDrawCopy copy;
>      SpiceMarshaller *src_bitmap_out, *mask_bitmap_out;
> @@ -8891,12 +8891,11 @@ static void red_marshall_image(RedChannelClient *rcc, SpiceMarshaller *m, ImageI
>              if (grad_level == BITMAP_GRADUAL_HIGH) {
>                  // if we use lz for alpha, the stride can't be extra
>                  lossy_comp = display_channel->enable_jpeg && item->can_lossy;
> -            } else {
> -                lz_comp = TRUE;
> +                quic_comp = TRUE;
>              }
> -        } else {
> -            lz_comp = TRUE;
>          }
> +    } else if (comp_mode == SPICE_IMAGE_COMPRESS_QUIC) {
> +        quic_comp = TRUE;
>      }
>  
>      if (lossy_comp) {
> @@ -8904,7 +8903,7 @@ static void red_marshall_image(RedChannelClient *rcc, SpiceMarshaller *m, ImageI
>                                                   &bitmap, &comp_send_data,
>                                                   worker->mem_slots.internal_groupslot_id);
>      } else {
> -        if (!lz_comp) {
> +        if (quic_comp) {
>              comp_succeeded = red_quic_compress_image(dcc, &red_image, &bitmap,
>                                                       &comp_send_data,
>                                                       worker->mem_slots.internal_groupslot_id);
> @@ -8919,6 +8918,7 @@ static void red_marshall_image(RedChannelClient *rcc, SpiceMarshaller *m, ImageI
>                                                          worker->mem_slots.internal_groupslot_id);
>              } else
>  #endif
> +            if (comp_mode != SPICE_IMAGE_COMPRESS_OFF)
>                  comp_succeeded = red_lz_compress_image(dcc, &red_image, &bitmap,
>                                                         &comp_send_data,
>                                                         worker->mem_slots.internal_groupslot_id);
> -- 
> 2.4.4
> 
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/spice-devel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/spice-devel/attachments/20150622/b4ec59ba/attachment.sig>


More information about the Spice-devel mailing list