[Spice-devel] [PATCH v2 07/30] Encapsulate jpeg information in ImageEncoders structure
Jonathon Jongsma
jjongsma at redhat.com
Thu Jun 9 20:44:04 UTC 2016
Acked-by: Jonathon Jongsma <jjongsma at redhat.com>
On Thu, 2016-06-09 at 13:31 +0100, Frediano Ziglio wrote:
> Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> ---
> server/dcc-encoders.c | 16 ++++++++--------
> server/dcc-encoders.h | 5 +++++
> server/dcc.c | 8 ++++----
> server/dcc.h | 3 ---
> 4 files changed, 17 insertions(+), 15 deletions(-)
>
> diff --git a/server/dcc-encoders.c b/server/dcc-encoders.c
> index e795065..279c134 100644
> --- a/server/dcc-encoders.c
> +++ b/server/dcc-encoders.c
> @@ -360,14 +360,14 @@ static void dcc_init_glz_data(DisplayChannelClient *dcc)
> dcc->glz_data.usr.free_image = glz_usr_free_image;
> }
>
> -static void dcc_init_jpeg(DisplayChannelClient *dcc)
> +static void image_encoders_init_jpeg(ImageEncoders *enc)
> {
> - dcc->jpeg_data.usr.more_space = jpeg_usr_more_space;
> - dcc->jpeg_data.usr.more_lines = jpeg_usr_more_lines;
> + enc->jpeg_data.usr.more_space = jpeg_usr_more_space;
> + enc->jpeg_data.usr.more_lines = jpeg_usr_more_lines;
>
> - dcc->jpeg = jpeg_encoder_create(&dcc->jpeg_data.usr);
> + enc->jpeg = jpeg_encoder_create(&enc->jpeg_data.usr);
>
> - if (!dcc->jpeg) {
> + if (!enc->jpeg) {
> spice_critical("create jpeg encoder failed");
> }
> }
> @@ -405,7 +405,7 @@ void dcc_encoders_init(DisplayChannelClient *dcc)
> dcc_init_glz_data(dcc);
> image_encoders_init_quic(enc);
> image_encoders_init_lz(enc);
> - dcc_init_jpeg(dcc);
> + image_encoders_init_jpeg(enc);
> #ifdef USE_LZ4
> dcc_init_lz4(dcc);
> #endif
> @@ -422,8 +422,8 @@ void dcc_encoders_free(DisplayChannelClient *dcc)
> enc->quic = NULL;
> lz_destroy(enc->lz);
> enc->lz = NULL;
> - jpeg_encoder_destroy(dcc->jpeg);
> - dcc->jpeg = NULL;
> + jpeg_encoder_destroy(enc->jpeg);
> + enc->jpeg = NULL;
> #ifdef USE_LZ4
> lz4_encoder_destroy(dcc->lz4);
> dcc->lz4 = NULL;
> diff --git a/server/dcc-encoders.h b/server/dcc-encoders.h
> index 21e2fa4..5bb0208 100644
> --- a/server/dcc-encoders.h
> +++ b/server/dcc-encoders.h
> @@ -167,6 +167,11 @@ struct ImageEncoders {
>
> LzData lz_data;
> LzContext *lz;
> +
> + int jpeg_quality;
> +
> + JpegData jpeg_data;
> + JpegEncoderContext *jpeg;
> };
>
> typedef struct compress_send_data_t {
> diff --git a/server/dcc.c b/server/dcc.c
> index 2d715d9..b5fbb09 100644
> --- a/server/dcc.c
> +++ b/server/dcc.c
> @@ -379,7 +379,7 @@ DisplayChannelClient *dcc_new(DisplayChannel *display,
> dcc->jpeg_state = jpeg_state;
> dcc->zlib_glz_state = zlib_glz_state;
> // TODO: tune quality according to bandwidth
> - dcc->jpeg_quality = 85;
> + dcc->encoders.jpeg_quality = 85;
>
> size_t stream_buf_size;
> stream_buf_size = 32*1024;
> @@ -787,9 +787,9 @@ glz:
> static int dcc_compress_image_jpeg(DisplayChannelClient *dcc, SpiceImage
> *dest,
> SpiceBitmap *src, compress_send_data_t*
> o_comp_data)
> {
> - JpegData *jpeg_data = &dcc->jpeg_data;
> + JpegData *jpeg_data = &dcc->encoders.jpeg_data;
> LzData *lz_data = &dcc->encoders.lz_data;
> - JpegEncoderContext *jpeg = dcc->jpeg;
> + JpegEncoderContext *jpeg = dcc->encoders.jpeg;
> LzContext *lz = dcc->encoders.lz;
> volatile JpegEncoderImageType jpeg_in_type;
> int jpeg_size = 0;
> @@ -846,7 +846,7 @@ static int dcc_compress_image_jpeg(DisplayChannelClient
> *dcc, SpiceImage *dest,
> jpeg_data->data.u.lines_data.reverse = 1;
> stride = -src->stride;
> }
> - jpeg_size = jpeg_encode(jpeg, dcc->jpeg_quality, jpeg_in_type,
> + jpeg_size = jpeg_encode(jpeg, dcc->encoders.jpeg_quality, jpeg_in_type,
> src->x, src->y, NULL,
> 0, stride, jpeg_data->data.bufs_head->buf.bytes,
> sizeof(jpeg_data->data.bufs_head->buf));
> diff --git a/server/dcc.h b/server/dcc.h
> index d10ba87..034b9b1 100644
> --- a/server/dcc.h
> +++ b/server/dcc.h
> @@ -60,14 +60,11 @@ struct DisplayChannelClient {
> SpiceImageCompression image_compression;
> spice_wan_compression_t jpeg_state;
> spice_wan_compression_t zlib_glz_state;
> - int jpeg_quality;
>
> ImageEncoders encoders;
>
> int zlib_level;
>
> - JpegData jpeg_data;
> - JpegEncoderContext *jpeg;
> #ifdef USE_LZ4
> Lz4Data lz4_data;
> Lz4EncoderContext *lz4;
More information about the Spice-devel
mailing list