mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/spice
synced 2025-12-26 22:48:19 +00:00
server: Properly order rgb for 24bit bitmaps when sending to libjpeg
SPICE_BITMAP_FMT_24BIT order is bgr, libjpeg wants rgb. This fixes freedesktop bug #28089
This commit is contained in:
parent
ccbb922d5a
commit
bdeae7ffb2
@ -7933,7 +7933,7 @@ static int red_rgb24bpp_to_24 (RedWorker *worker, const SpiceRect *src,
|
||||
uint32_t image_stride;
|
||||
uint8_t *frame_row;
|
||||
size_t offset;
|
||||
int i, chunk;
|
||||
int i, x, chunk;
|
||||
|
||||
chunks = image->data;
|
||||
offset = 0;
|
||||
@ -7958,7 +7958,13 @@ static int red_rgb24bpp_to_24 (RedWorker *worker, const SpiceRect *src,
|
||||
src_line += src->left * 3;
|
||||
|
||||
frame_row = frame;
|
||||
memcpy (frame_row, src_line, image_width * 3);
|
||||
for (x = 0; x < image_width; x++) {
|
||||
/* libjpegs stores rgb, spice/win32 stores bgr */
|
||||
*frame_row++ = src_line[2]; /* red */
|
||||
*frame_row++ = src_line[1]; /* green */
|
||||
*frame_row++ = src_line[0]; /* blue */
|
||||
src_line += 3;
|
||||
}
|
||||
frame += frame_stride;
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user