X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fswfdump.c;h=4902873fe37d954bb65ed962277975fdfd3a6acf;hb=495eb07179f8739f49496cfe79223cd85baf2bdd;hp=a6c0f78e1c26e005370dafecd62fd38c7a126459;hpb=892f39ec51f296d33ffa8dead43d65631eeabd1f;p=swftools.git diff --git a/src/swfdump.c b/src/swfdump.c index a6c0f78..4902873 100644 --- a/src/swfdump.c +++ b/src/swfdump.c @@ -249,6 +249,23 @@ void handleText(TAG*tag) printf("\n"); swf_FontExtract_DefineTextCallback(-1,0,tag,4, textcallback); } + +void handleDefineBits(TAG*tag) +{ + U16 id; + U8 mode; + U16 width,height; + int bpp; + id = swf_GetU16(tag); + mode = swf_GetU8(tag); + width = swf_GetU16(tag); + height = swf_GetU16(tag); + printf(" image %dx%d",width,height); + if(mode == 3) printf(" (8 bpp)"); + else if(mode == 4) printf(" (16 bpp)"); + else if(mode == 5) printf(" (32 bpp)"); + else printf(" (? bpp)"); +} void handleEditText(TAG*tag) { @@ -315,7 +332,6 @@ void printhandlerflags(U16 handlerflags) void handlePlaceObject2(TAG*tag, char*prefix) { U8 flags = swf_GetU8(tag); - printf("flags: %02x", flags); swf_GetU16(tag); //depth //flags&1: move if(flags&2) swf_GetU16(tag); //id @@ -386,7 +402,8 @@ void dumperror(const char* format, ...) vsprintf(buf, format, arglist); va_end(arglist); - printf("==== Error: %s ====\n", buf); + if(!html && !xy) + printf("==== Error: %s ====\n", buf); } int main (int argc,char ** argv) @@ -398,9 +415,9 @@ int main (int argc,char ** argv) int f; int xsize,ysize; char issprite = 0; // are we inside a sprite definition? - int spriteframe; + int spriteframe = 0; int mainframe=0; - char* spriteframelabel; + char* spriteframelabel = 0; char* framelabel = 0; char prefix[128]; int filesize = 0; @@ -463,20 +480,29 @@ int main (int argc,char ** argv) } if(html) { + char*fileversions[] = {"","1,0,0,0", "2,0,0,0","3,0,0,0","4,0,0,0", + "5,0,0,0","6,0,23,0","7,0,0,0","8,0,0,0"}; + if(swf.fileVersion>8) { + fprintf(stderr, "Fileversion>8\n"); + exit(1); + } printf("\n" + //http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,23,0? + " CODEBASE=\"http://active.macromedia.com/flash5/cabs/swflash.cab#version=%s\">\n" " \n" " \n" " \n" " \n" - " \n" + " PLUGINSPAGE=\"http://www.macromedia.com/go/getflashplayer\">\n" " \n" - "\n", xsize, ysize, swf.fileVersion, filename, filename, xsize, ysize); + "\n", xsize, ysize, fileversions[swf.fileVersion], + filename, filename, xsize, ysize); return 0; } printf("[HEADER] File version: %d\n", swf.fileVersion); @@ -598,7 +624,12 @@ int main (int argc,char ** argv) if(!issprite) {mainframe++; framelabel = 0;} } - if(tag->id == ST_DEFINEEDITTEXT) { + if(tag->id == ST_DEFINEBITSLOSSLESS || + tag->id == ST_DEFINEBITSLOSSLESS2) { + handleDefineBits(tag); + printf("\n"); + } + else if(tag->id == ST_DEFINEEDITTEXT) { handleEditText(tag); printf("\n"); }