# HG changeset patch # User reimar # Date 1243154212 0 # Node ID 19c88aa29bec0dee7155556d7ed57e0e6d345533 # Parent 9c9342d1ce1440f86ac49df8689f7046df5dda34 Move "block" variable in rtjpeg decoder to context to ensure sufficient alignment for idct_put on architectures/compilers that have problems aligning on the stack. diff -r 9c9342d1ce14 -r 19c88aa29bec rtjpeg.c --- a/rtjpeg.c Sun May 24 03:39:20 2009 +0000 +++ b/rtjpeg.c Sun May 24 08:36:52 2009 +0000 @@ -98,7 +98,6 @@ */ int rtjpeg_decode_frame_yuv420(RTJpegContext *c, AVFrame *f, const uint8_t *buf, int buf_size) { - DECLARE_ALIGNED_16(DCTELEM, block[64]); GetBitContext gb; int w = c->w / 16, h = c->h / 16; int x, y; @@ -107,6 +106,7 @@ init_get_bits(&gb, buf, buf_size * 8); for (y = 0; y < h; y++) { for (x = 0; x < w; x++) { + DCTELEM *block = c->block; if (get_block(&gb, block, c->scan, c->lquant)) c->dsp->idct_put(y1, f->linesize[0], block); y1 += 8; diff -r 9c9342d1ce14 -r 19c88aa29bec rtjpeg.h --- a/rtjpeg.h Sun May 24 03:39:20 2009 +0000 +++ b/rtjpeg.h Sun May 24 08:36:52 2009 +0000 @@ -31,6 +31,7 @@ uint8_t scan[64]; uint32_t lquant[64]; uint32_t cquant[64]; + DECLARE_ALIGNED_16(DCTELEM, block[64]); } RTJpegContext; void rtjpeg_decode_init(RTJpegContext *c, DSPContext *dsp,