Acked-by: Jonathon Jongsma <jjongsma@xxxxxxxxxx> On Fri, 2016-06-10 at 09:48 +0100, Frediano Ziglio wrote: > Also rename to image_encoders_compress_glz > > Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx> > --- > server/dcc.c | 31 ++++++++++++++++--------------- > 1 file changed, 16 insertions(+), 15 deletions(-) > > diff --git a/server/dcc.c b/server/dcc.c > index 82862af..cc8892f 100644 > --- a/server/dcc.c > +++ b/server/dcc.c > @@ -698,15 +698,15 @@ static const LzImageType bitmap_fmt_to_lz_image_type[] = > { > > #define MIN_GLZ_SIZE_FOR_ZLIB 100 > > -static int dcc_compress_image_glz(DisplayChannelClient *dcc, > - SpiceImage *dest, SpiceBitmap *src, > Drawable *drawable, > - compress_send_data_t* o_comp_data) > +static int image_encoders_compress_glz(ImageEncoders *enc, > + SpiceImage *dest, SpiceBitmap *src, > Drawable *drawable, > + compress_send_data_t* o_comp_data, > + gboolean enable_zlib_glz_wrap) > { > - DisplayChannel *display_channel = DCC_TO_DC(dcc); > stat_start_time_t start_time; > - stat_start_time_init(&start_time, &display_channel- > >encoder_globals.zlib_glz_stat); > + stat_start_time_init(&start_time, &enc->globals->zlib_glz_stat); > spice_assert(bitmap_fmt_is_rgb(src->format)); > - GlzData *glz_data = &dcc->encoders.glz_data; > + GlzData *glz_data = &enc->glz_data; > ZlibData *zlib_data; > LzImageType type = bitmap_fmt_to_lz_image_type[src->format]; > RedGlzDrawable *glz_drawable; > @@ -720,7 +720,7 @@ static int dcc_compress_image_glz(DisplayChannelClient > *dcc, > > encoder_data_init(&glz_data->data); > > - glz_drawable = get_glz_drawable(&dcc->encoders, drawable); > + glz_drawable = get_glz_drawable(enc, drawable); > glz_drawable_instance = add_glz_drawable_instance(glz_drawable); > > glz_data->data.u.lines_data.chunks = src->data; > @@ -728,27 +728,27 @@ static int dcc_compress_image_glz(DisplayChannelClient > *dcc, > glz_data->data.u.lines_data.next = 0; > glz_data->data.u.lines_data.reverse = 0; > > - glz_size = glz_encode(dcc->encoders.glz, type, src->x, src->y, > + glz_size = glz_encode(enc->glz, type, src->x, src->y, > (src->flags & SPICE_BITMAP_FLAGS_TOP_DOWN), NULL, > 0, > src->stride, glz_data->data.bufs_head->buf.bytes, > sizeof(glz_data->data.bufs_head->buf), > glz_drawable_instance, > &glz_drawable_instance->context); > > - stat_compress_add(&display_channel->encoder_globals.glz_stat, start_time, > src->stride * src->y, glz_size); > + stat_compress_add(&enc->globals->glz_stat, start_time, src->stride * src- > >y, glz_size); > > - if (!display_channel->enable_zlib_glz_wrap || (glz_size < > MIN_GLZ_SIZE_FOR_ZLIB)) { > + if (!enable_zlib_glz_wrap || (glz_size < MIN_GLZ_SIZE_FOR_ZLIB)) { > goto glz; > } > - stat_start_time_init(&start_time, &display_channel- > >encoder_globals.zlib_glz_stat); > - zlib_data = &dcc->encoders.zlib_data; > + stat_start_time_init(&start_time, &enc->globals->zlib_glz_stat); > + zlib_data = &enc->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->encoders.zlib, dcc->encoders.zlib_level, > + zlib_size = zlib_encode(enc->zlib, enc->zlib_level, > glz_size, zlib_data->data.bufs_head->buf.bytes, > sizeof(zlib_data->data.bufs_head->buf)); > > @@ -767,7 +767,7 @@ static int dcc_compress_image_glz(DisplayChannelClient > *dcc, > o_comp_data->comp_buf = zlib_data->data.bufs_head; > o_comp_data->comp_buf_size = zlib_size; > > - stat_compress_add(&display_channel->encoder_globals.zlib_glz_stat, > start_time, glz_size, zlib_size); > + stat_compress_add(&enc->globals->zlib_glz_stat, start_time, glz_size, > zlib_size); > return TRUE; > glz: > dest->descriptor.type = SPICE_IMAGE_TYPE_GLZ_RGB; > @@ -894,7 +894,8 @@ int dcc_compress_image(DisplayChannelClient *dcc, > pthread_rwlock_rdlock(&dcc->encoders.glz_dict->encode_lock); > frozen = dcc->encoders.glz_dict->migrate_freeze; > if (!frozen) { > - success = dcc_compress_image_glz(dcc, dest, src, drawable, > o_comp_data); > + success = image_encoders_compress_glz(&dcc->encoders, dest, > src, drawable, o_comp_data, > + display_channel- > >enable_zlib_glz_wrap); > } > pthread_rwlock_unlock(&dcc->encoders.glz_dict->encode_lock); > if (!frozen) { _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel