[FFmpeg-user] How chrRangeToJpeg_c() works?
Andrew Randrianasulu
randrianasulu at gmail.com
Mon Sep 9 18:06:23 EEST 2024
Looking at libswscale/swscale.c (due to
https://trac.ffmpeg.org/ticket/11182#comment:5) I do not understand
how it works :)
why shits to 11 and to 12 ?
// FIXME all pal and rgb srcFormats could do this conversion as well
// FIXME all scalers more complex than bilinear could do half of this transform
static void chrRangeToJpeg_c(int16_t *dstU, int16_t *dstV, int width)
{
int i;
for (i = 0; i < width; i++) {
dstU[i] = (FFMIN(dstU[i], 30775) * 4663 - 9289992) >> 12; // -264
dstV[i] = (FFMIN(dstV[i], 30775) * 4663 - 9289992) >> 12; // -264
}
}
static void chrRangeFromJpeg_c(int16_t *dstU, int16_t *dstV, int width)
{
int i;
for (i = 0; i < width; i++) {
dstU[i] = (dstU[i] * 1799 + 4081085) >> 11; // 1469
dstV[i] = (dstV[i] * 1799 + 4081085) >> 11; // 1469
}
}
===
can anyone knowledgeable write/add some more comments in code ? please :)
More information about the ffmpeg-user
mailing list