mirror of https://git.ffmpeg.org/ffmpeg.git
Move eatgq blocks array from the stack to the codec context and make sure
it is aligned as necessary for DSPContext's idct_put. Just aligning it on the stack would have been possible but less reliable and without any real benefit. Originally committed as revision 18896 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
533c3c84e7
commit
f2a875db87
|
@ -42,6 +42,7 @@ typedef struct TgqContext {
|
||||||
int width,height;
|
int width,height;
|
||||||
ScanTable scantable;
|
ScanTable scantable;
|
||||||
int qtable[64];
|
int qtable[64];
|
||||||
|
DECLARE_ALIGNED_16(DCTELEM, block[6][64]);
|
||||||
} TgqContext;
|
} TgqContext;
|
||||||
|
|
||||||
static av_cold int tgq_decode_init(AVCodecContext *avctx){
|
static av_cold int tgq_decode_init(AVCodecContext *avctx){
|
||||||
|
@ -144,7 +145,6 @@ static void tgq_decode_mb(TgqContext *s, int mb_y, int mb_x, const uint8_t **bs,
|
||||||
int mode;
|
int mode;
|
||||||
int i;
|
int i;
|
||||||
int8_t dc[6];
|
int8_t dc[6];
|
||||||
DCTELEM block[6][64];
|
|
||||||
|
|
||||||
mode = bytestream_get_byte(bs);
|
mode = bytestream_get_byte(bs);
|
||||||
if (mode>buf_end-*bs) {
|
if (mode>buf_end-*bs) {
|
||||||
|
@ -156,8 +156,8 @@ static void tgq_decode_mb(TgqContext *s, int mb_y, int mb_x, const uint8_t **bs,
|
||||||
GetBitContext gb;
|
GetBitContext gb;
|
||||||
init_get_bits(&gb, *bs, mode*8);
|
init_get_bits(&gb, *bs, mode*8);
|
||||||
for(i=0; i<6; i++)
|
for(i=0; i<6; i++)
|
||||||
tgq_decode_block(s, block[i], &gb);
|
tgq_decode_block(s, s->block[i], &gb);
|
||||||
tgq_idct_put_mb(s, block, mb_x, mb_y);
|
tgq_idct_put_mb(s, s->block, mb_x, mb_y);
|
||||||
}else{
|
}else{
|
||||||
if (mode==3) {
|
if (mode==3) {
|
||||||
memset(dc, (*bs)[0], 4);
|
memset(dc, (*bs)[0], 4);
|
||||||
|
|
Loading…
Reference in New Issue