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

Frediano Ziglio fziglio at redhat.com
Tue Nov 29 11:51:34 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
> 

LZ4_compress_fast_continue have 2 additional parameters.
Perhaps however LZ4_compress_fast_continue can be implemented using
LZ4_compress_continue but looks confusing stripping a boundary
size (looks like looking for overflows).

> > @@ -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.
> 

Frediano


More information about the Spice-devel mailing list