Hi, On Fri, Jan 15, 2016 at 05:11:33PM +0100, Pavel Grunt wrote: > --- > server/dcc-send.c | 44 +++----------------------------------------- > 1 file changed, 3 insertions(+), 41 deletions(-) > > diff --git a/server/dcc-send.c b/server/dcc-send.c > index c3f79ef..58e654e 100644 > --- a/server/dcc-send.c > +++ b/server/dcc-send.c > @@ -1920,20 +1920,14 @@ static void red_marshall_image(RedChannelClient *rcc, SpiceMarshaller *m, ImageI > DisplayChannelClient *dcc = RCC_TO_DCC(rcc); > DisplayChannel *display = DCC_TO_DC(dcc); > SpiceImage red_image; > - RedWorker *worker; > SpiceBitmap bitmap; > SpiceChunks *chunks; > QRegion *surface_lossy_region; > - int comp_succeeded = FALSE; > - int lossy_comp = FALSE; > - int quic_comp = FALSE; > - SpiceImageCompression comp_mode; > SpiceMsgDisplayDrawCopy copy; > SpiceMarshaller *src_bitmap_out, *mask_bitmap_out; > SpiceMarshaller *bitmap_palette_out, *lzplt_palette_out; > > spice_assert(rcc && display && item); > - worker = display->common.worker; > > QXL_SET_IMAGE_ID(&red_image, QXL_IMAGE_GROUP_RED, display_channel_generate_uid(display)); > red_image.descriptor.type = SPICE_IMAGE_TYPE_BITMAP; > @@ -1981,44 +1975,12 @@ static void red_marshall_image(RedChannelClient *rcc, SpiceMarshaller *m, ImageI > > compress_send_data_t comp_send_data = {0}; > > - comp_mode = dcc->image_compression; > - > - if (((comp_mode == SPICE_IMAGE_COMPRESSION_AUTO_LZ) || > - (comp_mode == SPICE_IMAGE_COMPRESSION_AUTO_GLZ)) && !bitmap_has_extra_stride(&bitmap)) { > - > - if (bitmap_fmt_has_graduality(item->image_format)) { > - BitmapGradualType grad_level; > - > - grad_level = bitmap_get_graduality_level(&bitmap); > - if (grad_level == BITMAP_GRADUAL_HIGH) { > - // if we use lz for alpha, the stride can't be extra > - lossy_comp = display->enable_jpeg && item->can_lossy; > - quic_comp = TRUE; > - } > - } > - } else if (comp_mode == SPICE_IMAGE_COMPRESSION_QUIC) { > - quic_comp = TRUE; > - } > - > - uint32_t groupid = red_worker_get_memslot(worker)->internal_groupslot_id; > - > - if (lossy_comp) { > - comp_succeeded = dcc_compress_image_jpeg(dcc, &red_image, &bitmap, &comp_send_data, groupid); > - } else if (quic_comp) { > - comp_succeeded = dcc_compress_image_quic(dcc, &red_image, &bitmap, &comp_send_data, groupid); > -#ifdef USE_LZ4 > - } else if (comp_mode == SPICE_IMAGE_COMPRESSION_LZ4 && > - bitmap_fmt_is_rgb(bitmap.format) && > - red_channel_client_test_remote_cap(&dcc->common.base, > - SPICE_DISPLAY_CAP_LZ4_COMPRESSION)) { > - comp_succeeded = dcc_compress_image_lz4(dcc, &red_image, &bitmap, &comp_send_data, groupid); > -#endif > - } else if (comp_mode != SPICE_IMAGE_COMPRESSION_OFF) { > - comp_succeeded = dcc_compress_image_lz(dcc, &red_image, &bitmap, &comp_send_data, groupid); > - } > + int comp_succeeded = dcc_compress_image(dcc, &red_image, &bitmap, NULL, item->can_lossy, &comp_send_data); > > surface_lossy_region = &dcc->surface_client_lossy_region[item->surface_id]; > if (comp_succeeded) { > + int lossy_comp = red_image.descriptor.type == SPICE_IMAGE_TYPE_JPEG || > + red_image.descriptor.type == SPICE_IMAGE_TYPE_JPEG_ALPHA; This is not explained.. so, dcc_compress_image takes it->can_lossy but you need to verify it in the end. Maybe a helper function would be more clear? > spice_marshall_Image(src_bitmap_out, &red_image, > &bitmap_palette_out, &lzplt_palette_out); > > -- > 2.5.0 > > _______________________________________________ > Spice-devel mailing list > Spice-devel@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/spice-devel _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel