diff --git a/server/dcc-encoders.c b/server/dcc-encoders.c index 156ce2f0..ea68ac15 100644 --- a/server/dcc-encoders.c +++ b/server/dcc-encoders.c @@ -32,6 +32,16 @@ typedef struct GlzDrawableInstanceItem GlzDrawableInstanceItem; +struct GlzSharedDictionary { + RingItem base; + GlzEncDictContext *dict; + uint32_t refs; + uint8_t id; + pthread_rwlock_t encode_lock; + int migrate_freeze; + RedClient *client; // channel clients of the same client share the dict +}; + /* for each qxl drawable, there may be several instances of lz drawables */ /* TODO - reuse this stuff for the top level. I just added a second level of multiplicity * at the Drawable by keeping a ring, so: diff --git a/server/dcc-encoders.h b/server/dcc-encoders.h index 10119eb7..114dacda 100644 --- a/server/dcc-encoders.h +++ b/server/dcc-encoders.h @@ -35,6 +35,7 @@ typedef struct RedCompressBuf RedCompressBuf; typedef struct RedGlzDrawable RedGlzDrawable; typedef struct ImageEncoders ImageEncoders; typedef struct ImageEncoderSharedData ImageEncoderSharedData; +typedef struct GlzSharedDictionary GlzSharedDictionary; void image_encoder_shared_init(ImageEncoderSharedData *shared_data); void image_encoder_shared_stat_reset(ImageEncoderSharedData *shared_data); @@ -71,16 +72,6 @@ static inline void compress_buf_free(RedCompressBuf *buf) g_free(buf); } -typedef struct GlzSharedDictionary { - RingItem base; - GlzEncDictContext *dict; - uint32_t refs; - uint8_t id; - pthread_rwlock_t encode_lock; - int migrate_freeze; - RedClient *client; // channel clients of the same client share the dict -} GlzSharedDictionary; - gboolean image_encoders_get_glz_dictionary(ImageEncoders *enc, struct RedClient *client, uint8_t id, int window_size);