[Spice-devel] [PATCH spice-server] Use LZ4_compress_fast_continue if available

Uri Lublin uril at redhat.com
Tue Nov 29 11:39:43 UTC 2016


On 11/28/2016 07:50 PM, Frediano Ziglio wrote:
> This make compression faster and avoids a warning on newer
> lz4 versions.
>
> Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> ---
>  server/lz4-encoder.c | 9 ++++++++-
>  spice-common         | 2 +-
>  2 files changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/server/lz4-encoder.c b/server/lz4-encoder.c
> index f193fd8..9fabc35 100644
> --- a/server/lz4-encoder.c
> +++ b/server/lz4-encoder.c

Hi Frediano,

Nitpick: Since the functions signatures are the same, I think
a bit nicer is to "chose" the right function somewhere at the
top and later use it in the code.

For example:

#ifdef HAVE_LZ4_COMPRESS_FAST_CONTINUE
#define spice_lz4_compress_continue LZ4_compress_fast_continue
#else
#define spice_lz4_compress_continue LZ4_compress_continue
#endif

> @@ -75,9 +75,16 @@ int lz4_encode(Lz4EncoderContext *lz4, int height, int stride, uint8_t *io_ptr,
>          in_buf = lines;
>          in_size = stride * num_lines;
>          lines += in_size;
> -        compressed_lines = (uint8_t *) malloc(LZ4_compressBound(in_size) + 4);
> +        int bound_size = LZ4_compressBound(in_size);
> +        compressed_lines = (uint8_t *) malloc(bound_size + 4);
> +#ifdef HAVE_LZ4_COMPRESS_FAST_CONTINUE
> +        enc_size = LZ4_compress_fast_continue(stream, (const char *) in_buf,
> +                                              (char *) compressed_lines + 4, in_size,
> +                                              bound_size, 1);
> +#else
>          enc_size = LZ4_compress_continue(stream, (const char *) in_buf,
>                                           (char *) compressed_lines + 4, in_size);
> +#endif


and here simply
            enc_size = spice_lz4_compress_continue(stream, ...

Regards,
     Uri.

>          if (enc_size <= 0) {
>              spice_error("compress failed!");
>              free(compressed_lines);
> diff --git a/spice-common b/spice-common
> index 31819a2..9218da2 160000
> --- a/spice-common
> +++ b/spice-common
> @@ -1 +1 @@
> -Subproject commit 31819a24248ba5311e7293ddac519b8134e67fa0
> +Subproject commit 9218da25ebd8737aea88662c6d537b72cd380cd9
>



More information about the Spice-devel mailing list