Hi, Currently, the mjpeg encoder has to preprocess the images it gets from spice-server to make sure the pixel order is the one libjpeg expects (RGB). This means iterating over the whole images swapping pixels since the input images are BGR or BGRX. However, libjpeg-turbo, in addition to SIMD optimization to JPEG decoding, also brings additional input colorspaces, including BGR and BGRX. This patch series make use of these new colorspaces in the mjpeg encoder to avoid the conversion step. libjpeg-turbo use is optional and the code will still do the conversion step if libjpeg-turbo wasn't present at compile time. Most of these patches are refactoring, the one introducing the libjpeg-turbo code is the one before the last.
Christophe Christophe Fergeau (9): red_worker: remove 2 empty functions red_worker: factor pixel conversion code mjpeg_encoder: rework output buffer allocation red_worker: simplify red_rgb_to_24bpp prototype mjpeg_encoder: add mjpeg_encoder_encode_scanline mjpeg_encoder: add mjpeg_encoder_get_bytes_per_pixel red_worker: use new mjpeg_encoder_encode_scanline API mjpeg_encoder: use libjpeg-turbo extra colorspaces mjpeg_encoder: remove unused functions server/mjpeg_encoder.c | 226 +++++++++++++++++++++++++++++++++++++++++------- server/mjpeg_encoder.h | 10 ++- server/red_worker.c | 178 +++----------------------------------- 3 files changed, 213 insertions(+), 201 deletions(-) -- 1.7.5.4 _______________________________________________ Spice-devel mailing list Spice-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/spice-devel