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

Frediano Ziglio fziglio at redhat.com
Tue Jun 7 10:17:51 UTC 2016


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 c4b85d3..a6e7b2c 100644
--- a/server/dcc-encoders.c
+++ b/server/dcc-encoders.c
@@ -386,14 +386,14 @@ static inline void dcc_init_lz4(EncodersData *enc)
 }
 #endif
 
-static void dcc_init_zlib(DisplayChannelClient *dcc)
+static void dcc_init_zlib(EncodersData *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
     dcc_init_lz4(enc);
 #endif
-    dcc_init_zlib(dcc);
+    dcc_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 e682b05..f1c4edf 100644
--- a/server/dcc-encoders.h
+++ b/server/dcc-encoders.h
@@ -178,6 +178,11 @@ struct EncodersData {
     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 c59858c..46182f9 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 ef4fae22..0f1a20a 100644
--- a/server/dcc.h
+++ b/server/dcc.h
@@ -63,11 +63,6 @@ struct DisplayChannelClient {
 
     EncodersData encoders;
 
-    int zlib_level;
-
-    ZlibData zlib_data;
-    ZlibEncoder *zlib;
-
     int expect_init;
 
     PixmapCache *pixmap_cache;
-- 
2.7.4



More information about the Spice-devel mailing list