Unified · Split
| @@ -161,27 +161,27 @@ typedef struct ThreadData { · 160 unmodified lines | |||
| 161 | continue; \ | 161 | continue; \ |
| 162 | } \ | 162 | } \ |
| 163 | \ | 163 | \ |
| 164 | for (int i = 0; i < s->nb_inputs; i++) \ | 164 | for (int i = 0; i < nb_inputs; i++) \ |
| 165 | linesize[i] = in[i]->linesize[p]; \ | 165 | linesize[i] = in[i]->linesize[p]; \ |
| 166 | \ | 166 | \ |
| 167 | for (int i = 0; i < s->nb_inputs; i++) \ | 167 | for (int i = 0; i < nb_inputs; i++) \ |
| 168 | srcf[i] = in[i]->data[p] + slice_start * linesize[i]; \ | 168 | srcf[i] = in[i]->data[p] + slice_start * linesize[i]; \ |
| 169 | \ | 169 | \ |
| 170 | for (int y = slice_start; y < slice_end; y++) { \ | 170 | for (int y = slice_start; y < slice_end; y++) { \ |
| 171 | for (int x = 0; x < width; x++) { \ | 171 | for (int x = 0; x < width; x++) { \ |
| 172 | float val = 0.f; \ | 172 | float val = 0.f; \ |
| 173 | \ | 173 | \ |
| 174 | for (int i = 0; i < s->nb_inputs; i++) { \ | 174 | for (int i = 0; i < nb_inputs; i++) { \ |
| 175 | float src = *(type *)(srcf[i] + x * sizeof(type)); \ | 175 | float src = *(type *)(srcf[i] + x * sizeof(type)); \ |
| 176 | \ | 176 | \ |
| 177 | val += src * weights[i]; \ | 177 | val += src * weights[i]; \ |
| 178 | } \ | 178 | } \ |
| 179 | \ | 179 | \ |
| 180 | dst[x] = clip(fun(val * s->wfactor), 0, s->max); \ | 180 | dst[x] = clip(fun(val * wfactor), 0, max); \ |
| 181 | } \ | 181 | } \ |
| 182 | \ | 182 | \ |
| 183 | dst += dst_linesize; \ | 183 | dst += dst_linesize; \ |
| 184 | for (int i = 0; i < s->nb_inputs; i++) \ | 184 | for (int i = 0; i < nb_inputs; i++) \ |
| 185 | srcf[i] += linesize[i]; \ | 185 | srcf[i] += linesize[i]; \ |
| 186 | } \ | 186 | } \ |
| 187 | } | 187 | } |
| @@ -200,6 +200,9 @@ static int mix_frames(AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs) · 12 unmodified lines | |||
| 200 | const float *weights = s->weights; | 200 | const float *weights = s->weights; |
| 201 | uint8_t **srcf = s->data + jobnr * s->nb_inputs; | 201 | uint8_t **srcf = s->data + jobnr * s->nb_inputs; |
| 202 | int *linesize = s->linesize + jobnr * s->nb_inputs; | 202 | int *linesize = s->linesize + jobnr * s->nb_inputs; |
| 203 | const int nb_inputs = s->nb_inputs; | ||
| 204 | const float wfactor = s->wfactor; | ||
| 205 | const int max = s->max; | ||
| 203 | 206 | ||
| 204 | if (s->depth <= 8) { | 207 | if (s->depth <= 8) { |
| 205 | MIX_SLICE(uint8_t, lrintf, CLIP8) | 208 | MIX_SLICE(uint8_t, lrintf, CLIP8) |