[Spice-devel] [PATCH 11/30] Encapsulate lz4 information in EncodersData structure
Frediano Ziglio
fziglio at redhat.com
Tue Jun 7 10:17:49 UTC 2016
Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
---
server/dcc-encoders.c | 16 ++++++++--------
server/dcc-encoders.h | 5 +++++
server/dcc.c | 16 +++++++++-------
server/dcc.h | 4 ----
4 files changed, 22 insertions(+), 19 deletions(-)
diff --git a/server/dcc-encoders.c b/server/dcc-encoders.c
index 01eb9b8..dadcb07 100644
--- a/server/dcc-encoders.c
+++ b/server/dcc-encoders.c
@@ -373,14 +373,14 @@ static void dcc_init_jpeg(EncodersData *enc)
}
#ifdef USE_LZ4
-static inline void dcc_init_lz4(DisplayChannelClient *dcc)
+static inline void dcc_init_lz4(EncodersData *enc)
{
- dcc->lz4_data.usr.more_space = lz4_usr_more_space;
- dcc->lz4_data.usr.more_lines = lz4_usr_more_lines;
+ enc->lz4_data.usr.more_space = lz4_usr_more_space;
+ enc->lz4_data.usr.more_lines = lz4_usr_more_lines;
- dcc->lz4 = lz4_encoder_create(&dcc->lz4_data.usr);
+ enc->lz4 = lz4_encoder_create(&enc->lz4_data.usr);
- if (!dcc->lz4) {
+ if (!enc->lz4) {
spice_critical("create lz4 encoder failed");
}
}
@@ -407,7 +407,7 @@ void dcc_encoders_init(DisplayChannelClient *dcc)
dcc_init_lz(enc);
dcc_init_jpeg(enc);
#ifdef USE_LZ4
- dcc_init_lz4(dcc);
+ dcc_init_lz4(enc);
#endif
dcc_init_zlib(dcc);
@@ -425,8 +425,8 @@ void dcc_encoders_free(DisplayChannelClient *dcc)
jpeg_encoder_destroy(enc->jpeg);
enc->jpeg = NULL;
#ifdef USE_LZ4
- lz4_encoder_destroy(dcc->lz4);
- dcc->lz4 = NULL;
+ lz4_encoder_destroy(enc->lz4);
+ enc->lz4 = NULL;
#endif
zlib_encoder_destroy(dcc->zlib);
dcc->zlib = NULL;
diff --git a/server/dcc-encoders.h b/server/dcc-encoders.h
index e906d9b..eb34785 100644
--- a/server/dcc-encoders.h
+++ b/server/dcc-encoders.h
@@ -173,6 +173,11 @@ struct EncodersData {
JpegData jpeg_data;
JpegEncoderContext *jpeg;
+
+#ifdef USE_LZ4
+ Lz4Data lz4_data;
+ Lz4EncoderContext *lz4;
+#endif
};
typedef struct compress_send_data_t {
diff --git a/server/dcc.c b/server/dcc.c
index dca9715..aeaa2eb 100644
--- a/server/dcc.c
+++ b/server/dcc.c
@@ -785,14 +785,15 @@ glz:
}
#ifdef USE_LZ4
-static int dcc_compress_image_lz4(DisplayChannelClient *dcc, SpiceImage *dest,
- SpiceBitmap *src, compress_send_data_t* o_comp_data)
+static int dcc_compress_image_lz4(EncodersData *enc, SpiceImage *dest,
+ SpiceBitmap *src, compress_send_data_t* o_comp_data,
+ stat_info_t *stats)
{
- Lz4Data *lz4_data = &dcc->lz4_data;
- Lz4EncoderContext *lz4 = dcc->lz4;
+ Lz4Data *lz4_data = &enc->lz4_data;
+ Lz4EncoderContext *lz4 = enc->lz4;
int lz4_size = 0;
stat_start_time_t start_time;
- stat_start_time_init(&start_time, &DCC_TO_DC(dcc)->lz4_stat);
+ stat_start_time_init(&start_time, stats);
#ifdef COMPRESS_DEBUG
spice_info("LZ4 compress");
@@ -829,7 +830,7 @@ static int dcc_compress_image_lz4(DisplayChannelClient *dcc, SpiceImage *dest,
o_comp_data->comp_buf = lz4_data->data.bufs_head;
o_comp_data->comp_buf_size = lz4_size;
- stat_compress_add(&DCC_TO_DC(dcc)->lz4_stat, start_time, src->stride * src->y,
+ stat_compress_add(stats, start_time, src->stride * src->y,
o_comp_data->comp_buf_size);
return TRUE;
}
@@ -964,7 +965,8 @@ int dcc_compress_image(DisplayChannelClient *dcc,
case SPICE_IMAGE_COMPRESSION_LZ4:
if (red_channel_client_test_remote_cap(&dcc->common.base,
SPICE_DISPLAY_CAP_LZ4_COMPRESSION)) {
- success = dcc_compress_image_lz4(dcc, dest, src, o_comp_data);
+ success = dcc_compress_image_lz4(&dcc->encoders, dest, src, o_comp_data,
+ &display_channel->lz4_stat);
break;
}
#endif
diff --git a/server/dcc.h b/server/dcc.h
index b200d50..ef4fae22 100644
--- a/server/dcc.h
+++ b/server/dcc.h
@@ -65,10 +65,6 @@ struct DisplayChannelClient {
int zlib_level;
-#ifdef USE_LZ4
- Lz4Data lz4_data;
- Lz4EncoderContext *lz4;
-#endif
ZlibData zlib_data;
ZlibEncoder *zlib;
--
2.7.4
More information about the Spice-devel
mailing list