added '0' char for (0,0) mvds.
[swftools.git] / lib / h.263 / video.c
index cd7d2c4..98fea24 100644 (file)
@@ -5,13 +5,13 @@
    
    Copyright (c) 2003 Matthias Kramm <kramm@quiss.org> */
 
-#include "../config.h"
+#include "../../config.h"
 #include <unistd.h>
 #include <stdio.h>
 #include <fcntl.h>
 #include <stdarg.h>
-#include "../lib/rfxswf.h"
-#include "../lib/args.h"
+#include "../rfxswf.h"
+#include "../args.h"
 #include "h263tables.c"
 
 static char * filename = 0;
@@ -241,10 +241,11 @@ void get_DC_TCOEF(TAG*tag, int t, int has_dc, int has_tcoef)
     }
 }
            
-void readMVD(TAG*tag)
+int readMVD(TAG*tag)
 {
     int index = gethuffvalue(tag, mvd);
     DEBUG printf("mvd index:%d\n", index);
+    return index;
 }
 
 char has_quant[] = {0,1,0,0,1};
@@ -332,8 +333,11 @@ void decode_block(TAG*tag, int pictype)
     }
 
     if(has_mvd[mb_type]&1) {
-       readMVD(tag); //horizontal
-       readMVD(tag); //vertical
+       int x,y;
+       x = readMVD(tag); //horizontal
+       y = readMVD(tag); //vertical
+       if(x==32 && y==32)
+           printf("\b0");
     }
     if(has_mvd[mb_type]&2) {
        /* only in advanced prediction mode */
@@ -400,7 +404,7 @@ void handleVideoFrame(TAG*tag, char*prefix)
     sizeflags = swf_GetBits(tag, 3);
     switch(sizeflags)
     {
-       case 0: width = swf_GetU8(tag); height = swf_GetU8(tag); break;
+       case 0: width = swf_GetBits(tag,8); height = swf_GetBits(tag,8); break;
        case 1: width = swf_GetBits(tag, 16); height = swf_GetBits(tag, 16); break;
        case 2: width = 352; height = 288; break;
        case 3: width = 176; height = 144; break;