in tjunittest.c [562:590]
static void decompTest(tjhandle handle, unsigned char *jpegBuf,
size_t jpegSize, int w, int h, int pf, char *basename,
int subsamp)
{
int i, n = 0;
tjscalingfactor *sf = NULL;
if (lossless) {
_decompTest(handle, jpegBuf, jpegSize, w, h, pf, basename, subsamp,
TJUNSCALED);
return;
}
sf = tj3GetScalingFactors(&n);
if (!sf || !n) THROW_TJ(NULL);
for (i = 0; i < n; i++) {
if (subsamp == TJSAMP_444 || subsamp == TJSAMP_GRAY ||
((subsamp == TJSAMP_411 || subsamp == TJSAMP_441) && sf[i].num == 1 &&
(sf[i].denom == 2 || sf[i].denom == 1)) ||
(subsamp != TJSAMP_411 && subsamp != TJSAMP_441 && sf[i].num == 1 &&
(sf[i].denom == 4 || sf[i].denom == 2 || sf[i].denom == 1)))
_decompTest(handle, jpegBuf, jpegSize, w, h, pf, basename, subsamp,
sf[i]);
}
bailout:
return;
}