-
- srcp_linesize = src_frame->linesize[plane] * 2;
- dstp_linesize = dst_frame->linesize[plane] * 2;
- for (j = lines; j > 0; j--) {
- const uint8_t *srcp_above = srcp - src_frame->linesize[plane];
- const uint8_t *srcp_below = srcp + src_frame->linesize[plane];
- if (j == lines)
- srcp_above = srcp; // there is no line above
- if (j == 1)
- srcp_below = srcp; // there is no line below
- for (i = 0; i < linesize; i++) {
- // this calculation is an integer representation of
- // '0.5 * current + 0.25 * above + 0.25 * below'
- // '1 +' is for rounding.
- dstp[i] = (1 + srcp[i] + srcp[i] + srcp_above[i] + srcp_below[i]) >> 2;
+ if (lowpass) {
+ int srcp_linesize = src_frame->linesize[plane] * 2;
+ int dstp_linesize = dst_frame->linesize[plane] * 2;
+ for (j = lines; j > 0; j--) {
+ const uint8_t *srcp_above = srcp - src_frame->linesize[plane];
+ const uint8_t *srcp_below = srcp + src_frame->linesize[plane];
+ if (j == lines)
+ srcp_above = srcp; // there is no line above
+ if (j == 1)
+ srcp_below = srcp; // there is no line below
+ for (i = 0; i < linesize; i++) {
+ // this calculation is an integer representation of
+ // '0.5 * current + 0.25 * above + 0.25 * below'
+ // '1 +' is for rounding.
+ dstp[i] = (1 + srcp[i] + srcp[i] + srcp_above[i] + srcp_below[i]) >> 2;
+ }
+ dstp += dstp_linesize;
+ srcp += srcp_linesize;