Commit 7bd2f502 authored by Gregory Montoir's avatar Gregory Montoir Committed by Diego Biurrun

Remove context fields which can be used as simple local variables.

patch by Gregory Montoir, cyx users sourceforge net

Originally committed as revision 14086 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent ca3ed63e
...@@ -32,8 +32,6 @@ ...@@ -32,8 +32,6 @@
typedef struct SeqVideoContext { typedef struct SeqVideoContext {
AVCodecContext *avctx; AVCodecContext *avctx;
AVFrame frame; AVFrame frame;
unsigned int palette[256];
unsigned char block[8 * 8];
} SeqVideoContext; } SeqVideoContext;
...@@ -72,22 +70,23 @@ static const unsigned char *seq_decode_op1(SeqVideoContext *seq, const unsigned ...@@ -72,22 +70,23 @@ static const unsigned char *seq_decode_op1(SeqVideoContext *seq, const unsigned
const unsigned char *color_table; const unsigned char *color_table;
int b, i, len, bits; int b, i, len, bits;
GetBitContext gb; GetBitContext gb;
unsigned char block[8 * 8];
len = *src++; len = *src++;
if (len & 0x80) { if (len & 0x80) {
switch (len & 3) { switch (len & 3) {
case 1: case 1:
src = seq_unpack_rle_block(src, seq->block, sizeof(seq->block)); src = seq_unpack_rle_block(src, block, sizeof(block));
for (b = 0; b < 8; b++) { for (b = 0; b < 8; b++) {
memcpy(dst, &seq->block[b * 8], 8); memcpy(dst, &block[b * 8], 8);
dst += seq->frame.linesize[0]; dst += seq->frame.linesize[0];
} }
break; break;
case 2: case 2:
src = seq_unpack_rle_block(src, seq->block, sizeof(seq->block)); src = seq_unpack_rle_block(src, block, sizeof(block));
for (i = 0; i < 8; i++) { for (i = 0; i < 8; i++) {
for (b = 0; b < 8; b++) for (b = 0; b < 8; b++)
dst[b * seq->frame.linesize[0]] = seq->block[i * 8 + b]; dst[b * seq->frame.linesize[0]] = block[i * 8 + b];
++dst; ++dst;
} }
break; break;
...@@ -139,16 +138,17 @@ static void seqvideo_decode(SeqVideoContext *seq, const unsigned char *data, int ...@@ -139,16 +138,17 @@ static void seqvideo_decode(SeqVideoContext *seq, const unsigned char *data, int
int flags, i, j, x, y, op; int flags, i, j, x, y, op;
unsigned char c[3]; unsigned char c[3];
unsigned char *dst; unsigned char *dst;
uint32_t *palette;
flags = *data++; flags = *data++;
if (flags & 1) { if (flags & 1) {
palette = (uint32_t *)seq->frame.data[1];
for (i = 0; i < 256; i++) { for (i = 0; i < 256; i++) {
for (j = 0; j < 3; j++, data++) for (j = 0; j < 3; j++, data++)
c[j] = (*data << 2) | (*data >> 4); c[j] = (*data << 2) | (*data >> 4);
seq->palette[i] = AV_RB24(c); palette[i] = AV_RB24(c);
} }
memcpy(seq->frame.data[1], seq->palette, sizeof(seq->palette));
seq->frame.palette_has_changed = 1; seq->frame.palette_has_changed = 1;
} }
......
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