Commit bf47272f authored by Michael Niedermayer's avatar Michael Niedermayer

simpify state and make code 2% faster

reimar, dont hesitate to flame me for not sending patches and feel free to revert any or all of my changes to lzo.c if you dont like them

Originally committed as revision 7778 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent 5fe9c42c
......@@ -168,7 +168,7 @@ static inline void copy_backptr(LZOContext *c, int back, int cnt) {
* LZO_INPUT_PADDING, out must provide LZO_OUTPUT_PADDING additional bytes
*/
int lzo1x_decode(void *out, int *outlen, void *in, int *inlen) {
enum {COPY, BACKPTR} state = COPY;
int state= 0;
int x;
LZOContext c;
c.in = in;
......@@ -205,9 +205,7 @@ int lzo1x_decode(void *out, int *outlen, void *in, int *inlen) {
break;
}
}
} else
switch (state) {
case COPY:
} else if(!state){
cnt = get_len(&c, x, 15);
copy(&c, cnt + 3);
x = GETB(c);
......@@ -219,15 +217,13 @@ int lzo1x_decode(void *out, int *outlen, void *in, int *inlen) {
continue;
cnt = 1;
back = (1 << 11) + (GETB(c) << 2) + (x >> 2) + 1;
break;
case BACKPTR:
} else {
cnt = 0;
back = (GETB(c) << 2) + (x >> 2) + 1;
break;
}
copy_backptr(&c, back, cnt + 2);
state=
cnt = x & 3;
state = cnt ? BACKPTR : COPY;
if (cnt)
copy(&c, cnt);
x = GETB(c);
......
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