|
|
|
@ -237,27 +237,27 @@ static void draw_slice(AVFilterLink *inlink, int y, int h, int slice_dir) |
|
|
|
|
fade->is_packed_rgb ? 4 : 1, // pixstep for 8 bit packed formats
|
|
|
|
|
1, outpic->data[plane], outpic->linesize[plane]); |
|
|
|
|
} else { |
|
|
|
|
/* luma or rgb plane */ |
|
|
|
|
fade_plane(y, h, inlink->w, |
|
|
|
|
fade->factor, fade->black_level, fade->black_level_scaled, |
|
|
|
|
0, 1, // offset & pixstep for Y plane or RGB packed format
|
|
|
|
|
fade->bpp, outpic->data[0], outpic->linesize[0]); |
|
|
|
|
if (outpic->data[1] && outpic->data[2]) { |
|
|
|
|
/* chroma planes */ |
|
|
|
|
for (plane = 1; plane < 3; plane++) { |
|
|
|
|
for (i = 0; i < h; i++) { |
|
|
|
|
p = outpic->data[plane] + ((y+i) >> fade->vsub) * outpic->linesize[plane]; |
|
|
|
|
for (j = 0; j < inlink->w >> fade->hsub; j++) { |
|
|
|
|
/* 8421367 = ((128 << 1) + 1) << 15. It is an integer
|
|
|
|
|
* representation of 128.5. The .5 is for rounding |
|
|
|
|
* purposes. */ |
|
|
|
|
*p = ((*p - 128) * fade->factor + 8421367) >> 16; |
|
|
|
|
p++; |
|
|
|
|
/* luma or rgb plane */ |
|
|
|
|
fade_plane(y, h, inlink->w, |
|
|
|
|
fade->factor, fade->black_level, fade->black_level_scaled, |
|
|
|
|
0, 1, // offset & pixstep for Y plane or RGB packed format
|
|
|
|
|
fade->bpp, outpic->data[0], outpic->linesize[0]); |
|
|
|
|
if (outpic->data[1] && outpic->data[2]) { |
|
|
|
|
/* chroma planes */ |
|
|
|
|
for (plane = 1; plane < 3; plane++) { |
|
|
|
|
for (i = 0; i < h; i++) { |
|
|
|
|
p = outpic->data[plane] + ((y+i) >> fade->vsub) * outpic->linesize[plane]; |
|
|
|
|
for (j = 0; j < inlink->w >> fade->hsub; j++) { |
|
|
|
|
/* 8421367 = ((128 << 1) + 1) << 15. It is an integer
|
|
|
|
|
* representation of 128.5. The .5 is for rounding |
|
|
|
|
* purposes. */ |
|
|
|
|
*p = ((*p - 128) * fade->factor + 8421367) >> 16; |
|
|
|
|
p++; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
avfilter_draw_slice(inlink->dst->outputs[0], y, h, slice_dir); |
|
|
|
|