Hi,

On Thu, Dec 15, 2011 at 5:03 PM, Ronald S. Bultje <[email protected]>wrote:

> From: "Ronald S. Bultje" <[email protected]>
>
> This fixes integer multiplication overflows in RGB48 output
> (vertical) scaling as detected by IOC. What happens is that for
> certain types of filters (lanczos, spline, bicubic), the
> intermediate sum of coefficients in the middle of a filter can
> be larger than the fixed-point equivalent of 1.0, even if the
> final sum is 1.0. This is fine and we support that.
>
> However, at frame edges, initFilter() will merge the coefficients
> for the off-screen pixels into the top or bottom pixel, such as
> to emulate edge emulation. This means that suddenly, a single
> coefficient can be larger than the fixed-point equivalent of
> 1.0, which the vertical scaling routines do not support.
>
> Therefore, remove the merging of coefficients for edges for
> the vertical scaling filter, and instead add edge detection
> to the scaler itself so that it copies the pointers (not data)
> for the edges (i.e. it uses line[0] for line[-1] as well), so
> that a single coefficient is never larger than the fixed-point
> equivalent of 1.0.
> ---
>  libswscale/swscale.c |   33 ++++++++++++++++++++++++++++++---
>  libswscale/utils.c   |   48
> +++++++++++++++++++++++++-----------------------
>  2 files changed, 55 insertions(+), 26 deletions(-)
>

Ping.

Ronald
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to