|
|
@ -216,12 +216,12 @@ static int interp_##nbits##_##name(AVFilterContext *ctx, void *arg, int jobnr, i |
|
|
|
const int slice_end = (in->height * (jobnr+1)) / nb_jobs; \
|
|
|
|
const int slice_end = (in->height * (jobnr+1)) / nb_jobs; \
|
|
|
|
uint8_t *dstrow = out->data[0] + slice_start * out->linesize[0]; \
|
|
|
|
uint8_t *dstrow = out->data[0] + slice_start * out->linesize[0]; \
|
|
|
|
const uint8_t *srcrow = in ->data[0] + slice_start * in ->linesize[0]; \
|
|
|
|
const uint8_t *srcrow = in ->data[0] + slice_start * in ->linesize[0]; \
|
|
|
|
|
|
|
|
const float scale = (1. / ((1<<nbits) - 1)) * (lut3d->lutsize - 1); \
|
|
|
|
\
|
|
|
|
\
|
|
|
|
for (y = slice_start; y < slice_end; y++) { \
|
|
|
|
for (y = slice_start; y < slice_end; y++) { \
|
|
|
|
uint##nbits##_t *dst = (uint##nbits##_t *)dstrow; \
|
|
|
|
uint##nbits##_t *dst = (uint##nbits##_t *)dstrow; \
|
|
|
|
const uint##nbits##_t *src = (const uint##nbits##_t *)srcrow; \
|
|
|
|
const uint##nbits##_t *src = (const uint##nbits##_t *)srcrow; \
|
|
|
|
for (x = 0; x < in->width * step; x += step) { \
|
|
|
|
for (x = 0; x < in->width * step; x += step) { \
|
|
|
|
const float scale = (1. / ((1<<nbits) - 1)) * (lut3d->lutsize - 1); \
|
|
|
|
|
|
|
|
const struct rgbvec scaled_rgb = {src[x + r] * scale, \
|
|
|
|
const struct rgbvec scaled_rgb = {src[x + r] * scale, \
|
|
|
|
src[x + g] * scale, \
|
|
|
|
src[x + g] * scale, \
|
|
|
|
src[x + b] * scale}; \
|
|
|
|
src[x + b] * scale}; \
|
|
|
|