# HG changeset patch # User vitor # Date 1243169094 0 # Node ID 05cf2547e0f0d986cceafad406318caa7ae23a2d # Parent 3dcbde0de5775b429faa33c86ccb70f7940df6c8 Fix unaligned dsputil call. Should fix FATE corepng test on Solaris/Sparc. diff -r 3dcbde0de577 -r 05cf2547e0f0 pngdec.c --- a/pngdec.c Sun May 24 09:14:19 2009 +0000 +++ b/pngdec.c Sun May 24 12:44:54 2009 +0000 @@ -387,6 +387,7 @@ PNGDecContext * const s = avctx->priv_data; AVFrame *picture = data; AVFrame *p; + uint8_t *crow_buf_base = NULL; uint32_t tag, length; int ret, crc; @@ -527,9 +528,12 @@ goto fail; } /* compressed row */ - s->crow_buf = av_malloc(s->row_size + 1); - if (!s->crow_buf) + crow_buf_base = av_malloc(s->row_size + 16); + if (!crow_buf_base) goto fail; + + /* we want crow_buf+1 to be 16-byte aligned */ + s->crow_buf = crow_buf_base + 15; s->zstream.avail_out = s->crow_size; s->zstream.next_out = s->crow_buf; } @@ -612,7 +616,8 @@ ret = s->bytestream - s->bytestream_start; the_end: inflateEnd(&s->zstream); - av_freep(&s->crow_buf); + av_free(crow_buf_base); + s->crow_buf = NULL; av_freep(&s->last_row); av_freep(&s->tmp_row); return ret;