[Spice-devel] [PATCH v2 13/30] Encapsulate zlib information in ImageEncoders structure

Jonathon Jongsma jjongsma at redhat.com
Thu Jun 9 20:56:49 UTC 2016


Acked-by: Jonathon Jongsma <jjongsma at redhat.com>

On Thu, 2016-06-09 at 13:31 +0100, Frediano Ziglio wrote:
> This change is less clean the other similar patches as zlib and
> glz require more steps.
> 
> Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> ---
>  server/dcc-encoders.c | 18 +++++++++---------
>  server/dcc-encoders.h |  5 +++++
>  server/dcc.c          |  4 ++--
>  server/dcc.h          |  5 -----
>  4 files changed, 16 insertions(+), 16 deletions(-)
> 
> diff --git a/server/dcc-encoders.c b/server/dcc-encoders.c
> index 7b27aff..04bb60c 100644
> --- a/server/dcc-encoders.c
> +++ b/server/dcc-encoders.c
> @@ -386,14 +386,14 @@ static inline void image_encoders_init_lz4(ImageEncoders
> *enc)
>  }
>  #endif
>  
> -static void dcc_init_zlib(DisplayChannelClient *dcc)
> +static void image_encoders_init_zlib(ImageEncoders *enc)
>  {
> -    dcc->zlib_data.usr.more_space = zlib_usr_more_space;
> -    dcc->zlib_data.usr.more_input = zlib_usr_more_input;
> +    enc->zlib_data.usr.more_space = zlib_usr_more_space;
> +    enc->zlib_data.usr.more_input = zlib_usr_more_input;
>  
> -    dcc->zlib = zlib_encoder_create(&dcc->zlib_data.usr,
> ZLIB_DEFAULT_COMPRESSION_LEVEL);
> +    enc->zlib = zlib_encoder_create(&enc->zlib_data.usr,
> ZLIB_DEFAULT_COMPRESSION_LEVEL);
>  
> -    if (!dcc->zlib) {
> +    if (!enc->zlib) {
>          spice_critical("create zlib encoder failed");
>      }
>  }
> @@ -409,10 +409,10 @@ void dcc_encoders_init(DisplayChannelClient *dcc)
>  #ifdef USE_LZ4
>      image_encoders_init_lz4(enc);
>  #endif
> -    dcc_init_zlib(dcc);
> +    image_encoders_init_zlib(enc);
>  
>      // todo: tune level according to bandwidth
> -    dcc->zlib_level = ZLIB_DEFAULT_COMPRESSION_LEVEL;
> +    enc->zlib_level = ZLIB_DEFAULT_COMPRESSION_LEVEL;
>  }
>  
>  void dcc_encoders_free(DisplayChannelClient *dcc)
> @@ -428,8 +428,8 @@ void dcc_encoders_free(DisplayChannelClient *dcc)
>      lz4_encoder_destroy(enc->lz4);
>      enc->lz4 = NULL;
>  #endif
> -    zlib_encoder_destroy(dcc->zlib);
> -    dcc->zlib = NULL;
> +    zlib_encoder_destroy(enc->zlib);
> +    enc->zlib = NULL;
>  }
>  
>  /* Remove from the to_free list and the instances_list.
> diff --git a/server/dcc-encoders.h b/server/dcc-encoders.h
> index 1fb9e7c..092e213 100644
> --- a/server/dcc-encoders.h
> +++ b/server/dcc-encoders.h
> @@ -177,6 +177,11 @@ struct ImageEncoders {
>      Lz4Data lz4_data;
>      Lz4EncoderContext *lz4;
>  #endif
> +
> +    int zlib_level;
> +
> +    ZlibData zlib_data;
> +    ZlibEncoder *zlib;
>  };
>  
>  typedef struct compress_send_data_t {
> diff --git a/server/dcc.c b/server/dcc.c
> index 0bc0e04..ee21bb1 100644
> --- a/server/dcc.c
> +++ b/server/dcc.c
> @@ -746,14 +746,14 @@ static int dcc_compress_image_glz(DisplayChannelClient
> *dcc,
>          goto glz;
>      }
>      stat_start_time_init(&start_time, &display_channel->zlib_glz_stat);
> -    zlib_data = &dcc->zlib_data;
> +    zlib_data = &dcc->encoders.zlib_data;
>  
>      encoder_data_init(&zlib_data->data);
>  
>      zlib_data->data.u.compressed_data.next = glz_data->data.bufs_head;
>      zlib_data->data.u.compressed_data.size_left = glz_size;
>  
> -    zlib_size = zlib_encode(dcc->zlib, dcc->zlib_level,
> +    zlib_size = zlib_encode(dcc->encoders.zlib, dcc->encoders.zlib_level,
>                              glz_size, zlib_data->data.bufs_head->buf.bytes,
>                              sizeof(zlib_data->data.bufs_head->buf));
>  
> diff --git a/server/dcc.h b/server/dcc.h
> index bdfc001..c6c9903 100644
> --- a/server/dcc.h
> +++ b/server/dcc.h
> @@ -63,11 +63,6 @@ struct DisplayChannelClient {
>  
>      ImageEncoders encoders;
>  
> -    int zlib_level;
> -
> -    ZlibData zlib_data;
> -    ZlibEncoder *zlib;
> -
>      int expect_init;
>  
>      PixmapCache *pixmap_cache;


More information about the Spice-devel mailing list