X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Frfxswf.c;h=3de037452e660c89bc2bd5b01dded6fbd9848d54;hb=edcb4eeac02833226bc1fb28541a6c158b0c03cd;hp=ac896f58c5255fc46016ead7cfe28c78e7b6edc1;hpb=6c3ab5574d31504d24710c2756899d49275c1a37;p=swftools.git diff --git a/lib/rfxswf.c b/lib/rfxswf.c index ac896f5..3de0374 100644 --- a/lib/rfxswf.c +++ b/lib/rfxswf.c @@ -47,14 +47,15 @@ extern "C" { #include "lame/lame.h" #endif #endif -#ifdef __cplusplus -} -#endif #ifdef HAVE_TIME_H #include #endif +#ifdef HAVE_IO_H +#include +#endif + #include "./bitio.h" #include "./MD5.h" @@ -337,7 +338,6 @@ void swf_GetRGBA(TAG * t, RGBA * col) void swf_GetGradient(TAG * tag, GRADIENT * gradient, char alpha) { - GRADIENT dummy; int t; if(!tag) { memset(gradient, 0, sizeof(GRADIENT)); @@ -771,7 +771,7 @@ int swf_VerifyPassword(TAG * t, const char * password) { char*md5string1, *md5string2; char*x; - char*md5, *salt; + char*salt; int n; if(t->len >= 5 && t->pos==0 && @@ -1071,7 +1071,7 @@ void swf_UnFoldSprite(TAG * t) void swf_FoldSprite(TAG * t) { TAG*sprtag=t,*tmp; - U16 id,frames,tmpid; + U16 id,frames; int level; if(t->id!=ST_DEFINESPRITE) return; @@ -1254,6 +1254,7 @@ int swf_ReadSWF2(reader_t*reader, SWF * swf) // Reads SWF to memory (malloc'ed reader_init_zlibinflate(&zreader, reader); reader = &zreader; } + swf->compressed = 0; // derive from version number from now on reader_GetRect(reader, &swf->movieSize); reader->read(reader, &swf->frameRate, 2); @@ -1382,11 +1383,10 @@ int swf_WriteSWF2(writer_t*writer, SWF * swf) // Writes SWF to file, return It also means that we don't initialize our own zlib writer, but assume the caller provided one. */ - if(swf->compressed) { + if(swf->compressed==1 || (swf->compressed==0 && swf->fileVersion>=6)) { char*id = "CWS"; writer->write(writer, id, 3); - } - else { + } else { char*id = "FWS"; writer->write(writer, id, 3); } @@ -1395,7 +1395,7 @@ int swf_WriteSWF2(writer_t*writer, SWF * swf) // Writes SWF to file, return PUT32(b4, swf->fileSize); writer->write(writer, b4, 4); - if(swf->compressed) { + if(swf->compressed==1 || (swf->compressed==0 && swf->fileVersion>=6)) { writer_init_zlibdeflate(&zwriter, writer); writer = &zwriter; } @@ -1421,7 +1421,7 @@ int swf_WriteSWF2(writer_t*writer, SWF * swf) // Writes SWF to file, return { if (swf_WriteTag2(writer, t)<0) return -1; t = swf_NextTag(t); } - if(swf->compressed) { + if(swf->compressed==1 || (swf->compressed==0 && swf->fileVersion>=6) || swf->compressed==8) { if(swf->compressed != 8) { zwriter.finish(&zwriter); return writer->pos - writer_lastpos; @@ -1437,7 +1437,6 @@ int swf_WriteSWF(int handle, SWF * swf) // Writes SWF to file, returns leng { writer_t writer; int len = 0; - swf->compressed = 0; if(handle<0) { writer_init_nullwriter(&writer); @@ -1450,22 +1449,6 @@ int swf_WriteSWF(int handle, SWF * swf) // Writes SWF to file, returns leng return len; } -int swf_WriteSWC(int handle, SWF * swf) // Writes SWF to file, returns length or <0 if fails -{ - writer_t writer; - int len = 0; - swf->compressed = 1; - - if(handle<0) { - writer_init_nullwriter(&writer); - len = swf_WriteSWF2(&writer, swf); - } - writer_init_filewriter(&writer, handle); - len = swf_WriteSWF2(&writer, swf); - writer.finish(&writer); - return len; -} - int swf_WriteHeader2(writer_t*writer,SWF * swf) { SWF myswf;