Commit 09d1208c authored by Vitor Sessak's avatar Vitor Sessak

Fix unaligned dsputil call.

Should fix FATE corepng test on Solaris/Sparc.

Originally committed as revision 18930 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent 46b4019b
......@@ -387,6 +387,7 @@ static int decode_frame(AVCodecContext *avctx,
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 @@ static int decode_frame(AVCodecContext *avctx,
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 @@ static int decode_frame(AVCodecContext *avctx,
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;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment