summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@gmail.com>2013-09-16 20:36:51 +0200
committerPavel Grunt <pgrunt@redhat.com>2015-11-13 15:17:23 +0100
commit21b5ce69684ab47805f5fab3a99c8887448a5a67 (patch)
treeb72b9ffce9985873da7cd21041340b0f842fbdf8
parentc9b33a09c756e762d2a1e7c4f37dce0cbe1f22e2 (diff)
worker: don't use weird RedCompressedBuf nbytes shifting
-rw-r--r--server/display-channel.h3
-rw-r--r--server/red_worker.c20
2 files changed, 11 insertions, 12 deletions
diff --git a/server/display-channel.h b/server/display-channel.h
index 12ef60aa..599cce79 100644
--- a/server/display-channel.h
+++ b/server/display-channel.h
@@ -70,10 +70,9 @@
#define NUM_STREAMS 50
#define NUM_SURFACES 10000
-#define RED_COMPRESS_BUF_SIZE (1024 * 64)
typedef struct RedCompressBuf RedCompressBuf;
struct RedCompressBuf {
- uint32_t buf[RED_COMPRESS_BUF_SIZE / 4];
+ uint8_t buf[64 * 1024];
RedCompressBuf *next;
RedCompressBuf *send_next;
};
diff --git a/server/red_worker.c b/server/red_worker.c
index d3c5b701..59586bf0 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -3758,7 +3758,7 @@ static void glz_usr_free(GlzEncoderUsrContext *usr, void *ptr)
free(ptr);
}
-static inline int encoder_usr_more_space(EncoderData *enc_data, uint32_t **io_ptr)
+static int encoder_usr_more_space(EncoderData *enc_data, uint8_t **io_ptr)
{
RedCompressBuf *buf;
@@ -3769,45 +3769,45 @@ static inline int encoder_usr_more_space(EncoderData *enc_data, uint32_t **io_pt
enc_data->bufs_tail = buf;
buf->send_next = NULL;
*io_ptr = buf->buf;
- return sizeof(buf->buf) >> 2;
+ return sizeof(buf->buf);
}
static int quic_usr_more_space(QuicUsrContext *usr, uint32_t **io_ptr, int rows_completed)
{
EncoderData *usr_data = &(((QuicData *)usr)->data);
- return encoder_usr_more_space(usr_data, io_ptr);
+ return encoder_usr_more_space(usr_data, (uint8_t **)io_ptr) / sizeof(uint32_t);
}
static int lz_usr_more_space(LzUsrContext *usr, uint8_t **io_ptr)
{
EncoderData *usr_data = &(((LzData *)usr)->data);
- return (encoder_usr_more_space(usr_data, (uint32_t **)io_ptr) << 2);
+ return encoder_usr_more_space(usr_data, io_ptr);
}
static int glz_usr_more_space(GlzEncoderUsrContext *usr, uint8_t **io_ptr)
{
EncoderData *usr_data = &(((GlzData *)usr)->data);
- return (encoder_usr_more_space(usr_data, (uint32_t **)io_ptr) << 2);
+ return encoder_usr_more_space(usr_data, io_ptr);
}
static int jpeg_usr_more_space(JpegEncoderUsrContext *usr, uint8_t **io_ptr)
{
EncoderData *usr_data = &(((JpegData *)usr)->data);
- return (encoder_usr_more_space(usr_data, (uint32_t **)io_ptr) << 2);
+ return encoder_usr_more_space(usr_data, io_ptr);
}
#ifdef USE_LZ4
static int lz4_usr_more_space(Lz4EncoderUsrContext *usr, uint8_t **io_ptr)
{
EncoderData *usr_data = &(((Lz4Data *)usr)->data);
- return (encoder_usr_more_space(usr_data, (uint32_t **)io_ptr) << 2);
+ return encoder_usr_more_space(usr_data, io_ptr);
}
#endif
static int zlib_usr_more_space(ZlibEncoderUsrContext *usr, uint8_t **io_ptr)
{
EncoderData *usr_data = &(((ZlibData *)usr)->data);
- return (encoder_usr_more_space(usr_data, (uint32_t **)io_ptr) << 2);
+ return encoder_usr_more_space(usr_data, io_ptr);
}
static inline int encoder_usr_more_lines(EncoderData *enc_data, uint8_t **lines)
@@ -4461,8 +4461,8 @@ static inline int red_quic_compress_image(DisplayChannelClient *dcc, SpiceImage
stride = -src->stride;
}
size = quic_encode(quic, type, src->x, src->y, NULL, 0, stride,
- quic_data->data.bufs_head->buf,
- sizeof(quic_data->data.bufs_head->buf) >> 2);
+ (uint32_t*)quic_data->data.bufs_head->buf,
+ sizeof(quic_data->data.bufs_head->buf) / sizeof(uint32_t));
// the compressed buffer is bigger than the original data
if ((size << 2) > (src->y * src->stride)) {