OSDN Git Service

factorize
authorMichael Niedermayer <michaelni@gmx.at>
Sun, 25 Mar 2007 14:02:54 +0000 (14:02 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Sun, 25 Mar 2007 14:02:54 +0000 (14:02 +0000)
Originally committed as revision 8510 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/lzw.c

index cb12eb8..240ff13 100644 (file)
@@ -192,13 +192,12 @@ int ff_lzw_decode(LZWState *p, uint8_t *buf, int len){
     oc = s->oc;
     fc = s->fc;
 
-    while (sp > s->stack) {
-        *buf++ = *(--sp);
-        if ((--l) == 0)
-            goto the_end;
-    }
-
     for (;;) {
+        while (sp > s->stack) {
+            *buf++ = *(--sp);
+            if ((--l) == 0)
+                goto the_end;
+        }
         c = lzw_get_code(s);
         if (c == s->end_code) {
             s->end_code = -1;
@@ -242,11 +241,6 @@ int ff_lzw_decode(LZWState *p, uint8_t *buf, int len){
                     s->curmask = mask[++s->cursize];
                 }
             }
-            while (sp > s->stack) {
-                *buf++ = *(--sp);
-                if ((--l) == 0)
-                    goto the_end;
-            }
         }
     }
   the_end: