[Ffmpeg-cvslog] r7778 - trunk/libavcodec/lzo.c

michael subversion
Wed Jan 31 11:34:13 CET 2007


Author: michael
Date: Wed Jan 31 11:34:13 2007
New Revision: 7778

Modified:
   trunk/libavcodec/lzo.c

Log:
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


Modified: trunk/libavcodec/lzo.c
==============================================================================
--- trunk/libavcodec/lzo.c	(original)
+++ trunk/libavcodec/lzo.c	Wed Jan 31 11:34:13 2007
@@ -168,7 +168,7 @@
  * 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 @@
                     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 @@
                     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);




More information about the ffmpeg-cvslog mailing list