for (i = pixels - 1; i >= 0; i--)
{
- /* TODO: need to balance the colours */
- colour16[3*i] = gray16[i];
- colour16[3*i + 1] = gray16[i];
- colour16[3*i + 2] = gray16[i];
+ colour16[3*i] = saturateu16((gray16[i]*36532) >> 15);
+ colour16[3*i + 1] = saturateu16((gray16[i]*37216) >> 16);
+ colour16[3*i + 2] = saturateu16((gray16[i]*47900) >> 14);
}
return pixels;
}
for (i = pixels - 1; i >= 0; i--)
{
- /* TODO: need to balance the colours */
- colour8[3*i] = gray16[i] >> 8;
- colour8[3*i + 1] = gray16[i] >> 8;
- colour8[3*i + 2] = gray16[i] >> 8;
+ colour8[3*i] = saturateu8((gray16[i]*36532) >> 23);
+ colour8[3*i + 1] = saturateu8((gray16[i]*37216) >> 24);
+ colour8[3*i + 2] = saturateu8((gray16[i]*47900) >> 22);
}
return pixels;
}
else
{
i = s->output_width*s->output_bytes_per_pixel;
- memcpy(buf, s->pixel_row[1], i);
+ memcpy(buf, s->pixel_row[0], i);
}
return i;
}
/*
* SpanDSP - a series of DSP components for telephony
*
- * ima_adpcm.c - Conversion routines between linear 16 bit PCM data and
+ * ima_adpcm.h - Conversion routines between linear 16 bit PCM data and
* IMA/DVI/Intel ADPCM format.
*
* Written by Steve Underwood <steveu@coppice.org>
/*
* SpanDSP - a series of DSP components for telephony
*
- * private/ima_adpcm.c - Conversion routines between linear 16 bit PCM data
+ * private/ima_adpcm.h - Conversion routines between linear 16 bit PCM data
* and IMA/DVI/Intel ADPCM format.
*
* Written by Steve Underwood <steveu@coppice.org>