common: Major bugfixes in the rgb8 panorama split code.

* In the blend code, don't double-increment buffer pointer
 * Use correct row count in the blend code

And in the sinfonia code:

 * Set the post-panel-split data buffer lengths correctly
This commit is contained in:
Solomon Peachy 2024-01-20 18:16:49 -05:00
parent b6f7513d52
commit 12a3206847
2 changed files with 3 additions and 5 deletions

View File

@ -29,7 +29,7 @@
#include <signal.h>
#include <strings.h> /* For strncasecmp */
#define BACKEND_VERSION "0.130"
#define BACKEND_VERSION "0.131"
#ifndef CORRTABLE_PATH
#ifdef PACKAGE_DATA_DIR
@ -2000,9 +2000,6 @@ static void dyesub_pano_process_rgb8(const struct dnp_panodata *pano,
PROCESS_PIXEL(lhc->rhYMC[0],2); /* B/Y */
}
}
/* Next row */
data += cols * 3;
}
}
@ -2040,7 +2037,7 @@ void dyesub_pano_split_rgb8(const uint8_t *src, uint16_t cols, uint8_t numpanels
}
dyesub_pano_process_rgb8(&panodata, panels[i], lh, rh,
cols, panel_rows[i] - overlap_rows * 2,
cols, panel_rows[i],
overlap_rows, pad_rows);
}
}

View File

@ -327,6 +327,7 @@ int sinfonia_panorama_splitjob(struct sinfonia_printjob *injob,
/* Fill in header differences */
memcpy(newjobs[i], injob, sizeof(struct sinfonia_printjob));
newjobs[i]->databuf = panels[i];
newjobs[i]->datalen = panel_rows[i] * cols;
newjobs[i]->jp.rows = panel_rows[i];
// XXX what else?