mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/spice
synced 2026-01-07 11:55:10 +00:00
Encapsulate quic information in a new ImageEncoders structure
Start putting all encoding code into dcc-encoders.c. Signed-off-by: Frediano Ziglio <fziglio@redhat.com> Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
This commit is contained in:
parent
2d34002e59
commit
d7fb16c80e
@ -291,19 +291,19 @@ static int zlib_usr_more_input(ZlibEncoderUsrContext *usr, uint8_t** input)
|
||||
return buf_size;
|
||||
}
|
||||
|
||||
static void dcc_init_quic(DisplayChannelClient *dcc)
|
||||
static void image_encoders_init_quic(ImageEncoders *enc)
|
||||
{
|
||||
dcc->quic_data.usr.error = quic_usr_error;
|
||||
dcc->quic_data.usr.warn = quic_usr_warn;
|
||||
dcc->quic_data.usr.info = quic_usr_warn;
|
||||
dcc->quic_data.usr.malloc = quic_usr_malloc;
|
||||
dcc->quic_data.usr.free = quic_usr_free;
|
||||
dcc->quic_data.usr.more_space = quic_usr_more_space;
|
||||
dcc->quic_data.usr.more_lines = quic_usr_more_lines;
|
||||
enc->quic_data.usr.error = quic_usr_error;
|
||||
enc->quic_data.usr.warn = quic_usr_warn;
|
||||
enc->quic_data.usr.info = quic_usr_warn;
|
||||
enc->quic_data.usr.malloc = quic_usr_malloc;
|
||||
enc->quic_data.usr.free = quic_usr_free;
|
||||
enc->quic_data.usr.more_space = quic_usr_more_space;
|
||||
enc->quic_data.usr.more_lines = quic_usr_more_lines;
|
||||
|
||||
dcc->quic = quic_create(&dcc->quic_data.usr);
|
||||
enc->quic = quic_create(&enc->quic_data.usr);
|
||||
|
||||
if (!dcc->quic) {
|
||||
if (!enc->quic) {
|
||||
spice_critical("create quic failed");
|
||||
}
|
||||
}
|
||||
@ -400,8 +400,10 @@ static void dcc_init_zlib(DisplayChannelClient *dcc)
|
||||
|
||||
void dcc_encoders_init(DisplayChannelClient *dcc)
|
||||
{
|
||||
ImageEncoders *enc = &dcc->encoders;
|
||||
|
||||
dcc_init_glz_data(dcc);
|
||||
dcc_init_quic(dcc);
|
||||
image_encoders_init_quic(enc);
|
||||
dcc_init_lz(dcc);
|
||||
dcc_init_jpeg(dcc);
|
||||
#ifdef USE_LZ4
|
||||
@ -415,8 +417,9 @@ void dcc_encoders_init(DisplayChannelClient *dcc)
|
||||
|
||||
void dcc_encoders_free(DisplayChannelClient *dcc)
|
||||
{
|
||||
quic_destroy(dcc->quic);
|
||||
dcc->quic = NULL;
|
||||
ImageEncoders *enc = &dcc->encoders;
|
||||
quic_destroy(enc->quic);
|
||||
enc->quic = NULL;
|
||||
lz_destroy(dcc->lz);
|
||||
dcc->lz = NULL;
|
||||
jpeg_encoder_destroy(dcc->jpeg);
|
||||
|
||||
@ -34,6 +34,7 @@
|
||||
typedef struct RedCompressBuf RedCompressBuf;
|
||||
typedef struct GlzDrawableInstanceItem GlzDrawableInstanceItem;
|
||||
typedef struct RedGlzDrawable RedGlzDrawable;
|
||||
typedef struct ImageEncoders ImageEncoders;
|
||||
|
||||
void dcc_encoders_init (DisplayChannelClient *dcc);
|
||||
void dcc_encoders_free (DisplayChannelClient *dcc);
|
||||
@ -160,6 +161,11 @@ struct RedGlzDrawable {
|
||||
DisplayChannelClient *dcc;
|
||||
};
|
||||
|
||||
struct ImageEncoders {
|
||||
QuicData quic_data;
|
||||
QuicContext *quic;
|
||||
};
|
||||
|
||||
#define RED_RELEASE_BUNCH_SIZE 64
|
||||
|
||||
#endif /* DCC_ENCODERS_H_ */
|
||||
|
||||
@ -1029,8 +1029,8 @@ static int dcc_compress_image_lz4(DisplayChannelClient *dcc, SpiceImage *dest,
|
||||
static int dcc_compress_image_quic(DisplayChannelClient *dcc, SpiceImage *dest,
|
||||
SpiceBitmap *src, compress_send_data_t* o_comp_data)
|
||||
{
|
||||
QuicData *quic_data = &dcc->quic_data;
|
||||
QuicContext *quic = dcc->quic;
|
||||
QuicData *quic_data = &dcc->encoders.quic_data;
|
||||
QuicContext *quic = dcc->encoders.quic;
|
||||
volatile QuicImageType type;
|
||||
int size, stride;
|
||||
stat_start_time_t start_time;
|
||||
|
||||
@ -61,10 +61,11 @@ struct DisplayChannelClient {
|
||||
spice_wan_compression_t jpeg_state;
|
||||
spice_wan_compression_t zlib_glz_state;
|
||||
int jpeg_quality;
|
||||
|
||||
ImageEncoders encoders;
|
||||
|
||||
int zlib_level;
|
||||
|
||||
QuicData quic_data;
|
||||
QuicContext *quic;
|
||||
LzData lz_data;
|
||||
LzContext *lz;
|
||||
JpegData jpeg_data;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user