X-Git-Url: http://git.asbjorn.biz/?p=swftools.git;a=blobdiff_plain;f=lib%2Fh.263%2Fvideo.c;h=5200946cbf5f9fa8378d0b11f2df32b9074660cc;hp=2376017530a1b9f28439f45a1cf5fbccce8f768d;hb=73ad76d5e87558441fd67c1b48452a4d5f5a39af;hpb=c66d70eb818cbc80ddae1dd5f35352d048ce5a5c diff --git a/lib/h.263/video.c b/lib/h.263/video.c index 2376017..5200946 100644 --- a/lib/h.263/video.c +++ b/lib/h.263/video.c @@ -5,13 +5,13 @@ Copyright (c) 2003 Matthias Kramm */ -#include "../config.h" +#include "../../config.h" #include #include #include #include -#include "../lib/rfxswf.h" -#include "../lib/args.h" +#include "../rfxswf.h" +#include "../args.h" #include "h263tables.c" static char * filename = 0; @@ -259,12 +259,11 @@ void decode_block(TAG*tag, int pictype) { int t; int mb_type = -1, cbpc = -1; - int dbquant; + int dquant; int cbpy_index, cbpy_value; int intrablock = 0; int type; if(pictype == TYPE_INTER) /* non-intra pictures have a cod flag */ - /* TODO: according to the flash spec, this field is always present */ { int cod = swf_GetBits(tag, 1); DEBUG printf("cod=%d\n",cod); @@ -302,8 +301,8 @@ void decode_block(TAG*tag, int pictype) { intrablock = 1; } - - printf("%d", intrablock); + + printf("%c", "vqVii"[mb_type]); DEBUG printf("mcbpc type: %d mb_type:%d cbpc:%d\n", type, mb_type, cbpc); @@ -324,8 +323,12 @@ void decode_block(TAG*tag, int pictype) /* quantizer */ if(has_quant[mb_type]) { - dbquant = swf_GetBits(tag, 2); - DEBUG printf("quantizer: %d\n", dbquant); + dquant = swf_GetBits(tag, 2); + if(dquant == 0) dquant = -1; + else if(dquant == 1) dquant = -2; + else if(dquant == 2) dquant = +1; + else if(dquant == 3) dquant = +2; + DEBUG printf("dquant: %d\n", dquant); } if(has_mvd[mb_type]&1) { @@ -397,7 +400,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; @@ -441,8 +444,8 @@ void handleVideoFrame(TAG*tag, char*prefix) /*if(pictype == TYPE_INTER) return;*/ - if(pictype == TYPE_INTRA) - return; + /*if(pictype == TYPE_INTRA) + return;*/ /*tagnr++; if(tagnr!=2)