On Fri, Jun 10, 2011 at 02:46:27PM +0200, Andreas Öman wrote:
> ---
> libavcodec/pngdec.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/libavcodec/pngdec.c b/libavcodec/pngdec.c
> index 7477f67..d4ec38e 100644
> --- a/libavcodec/pngdec.c
> +++ b/libavcodec/pngdec.c
> @@ -232,7 +232,7 @@ static void png_filter_row(DSPContext *dsp, uint8_t *dst,
> int filter_type,
> p = last[i];
> dst[i] = p + src[i];
> }
> - if(bpp > 1 && size > 4) {
> + if(bpp > 1 && bpp <=4 && size > 4) {
> // would write off the end of the array if we let it process the
> last pixel with bpp=3
> int w = bpp==4 ? size : size-3;
> dsp->add_png_paeth_prediction(dst+i, src+i, last+i, w-i, bpp);
> --
IIRC Michael committed a "fix" for SIMD part which somehow splits this
function execution into two parts, maybe it's worth doing that in pngdec.c
(or properly fix SIMD counterpart instead).
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel