summaryrefslogtreecommitdiff
path: root/backend/escl/escl_jpeg.c
diff options
context:
space:
mode:
authorJörg Frings-Fürst <debian@jff.email>2024-03-03 09:55:14 +0100
committerJörg Frings-Fürst <debian@jff.email>2024-03-03 09:55:14 +0100
commitb098beb219b0b300ec7eb915bfa2b3038c3fb533 (patch)
tree08c40dc8b180b31f504945e8da3e3ea3950e4145 /backend/escl/escl_jpeg.c
parent2938695ca4c9bca7834817465662e31570f6d32f (diff)
parent23c348d62ab9f0a902189c70921310a5f856852c (diff)
Merge branch 'feature/upstream' into develop
Diffstat (limited to 'backend/escl/escl_jpeg.c')
-rw-r--r--backend/escl/escl_jpeg.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/backend/escl/escl_jpeg.c b/backend/escl/escl_jpeg.c
index 1dd3ec9..62c20c0 100644
--- a/backend/escl/escl_jpeg.c
+++ b/backend/escl/escl_jpeg.c
@@ -232,7 +232,13 @@ get_JPEG_data(capabilities_t *scanner, int *width, int *height, int *bps)
y_off,
w,
h);
- surface = malloc(w * h * cinfo.output_components);
+ jpeg_start_decompress(&cinfo);
+ if (x_off > 0 || w < cinfo.output_width)
+ jpeg_crop_scanline(&cinfo, &x_off, &w);
+ lineSize = w * cinfo.output_components;
+ if (y_off > 0)
+ jpeg_skip_scanlines(&cinfo, y_off);
+ surface = malloc(cinfo.output_width * cinfo.output_height * cinfo.output_components);
if (surface == NULL) {
jpeg_destroy_decompress(&cinfo);
DBG( 1, "Escl Jpeg : Memory allocation problem\n");
@@ -242,12 +248,6 @@ get_JPEG_data(capabilities_t *scanner, int *width, int *height, int *bps)
}
return (SANE_STATUS_NO_MEM);
}
- jpeg_start_decompress(&cinfo);
- if (x_off > 0 || w < cinfo.output_width)
- jpeg_crop_scanline(&cinfo, &x_off, &w);
- lineSize = w * cinfo.output_components;
- if (y_off > 0)
- jpeg_skip_scanlines(&cinfo, y_off);
pos = 0;
while (cinfo.output_scanline < (unsigned int)rh) {
rowptr[0] = (JSAMPROW)surface + (lineSize * pos); // ..cinfo.output_scanline);