X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Frfxswf.c;h=1460c35d4d5f1e427f3288cc24ca939a4b22f0a7;hb=6cfa6f2326b39d3dee66a27cb77ad5e8fab021a1;hp=ac896f58c5255fc46016ead7cfe28c78e7b6edc1;hpb=6c3ab5574d31504d24710c2756899d49275c1a37;p=swftools.git diff --git a/lib/rfxswf.c b/lib/rfxswf.c index ac896f5..1460c35 100644 --- a/lib/rfxswf.c +++ b/lib/rfxswf.c @@ -26,18 +26,6 @@ #include "mem.h" #include "rfxswf.h" - -#ifdef HAVE_JPEGLIB -#define HAVE_BOOLEAN -#ifdef __cplusplus -extern "C" { -#endif -#include -#ifdef __cplusplus -} -#endif -#endif // HAVE_JPEGLIB - #ifdef HAVE_ZLIB #include #endif // HAVE_ZLIB @@ -47,14 +35,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" @@ -74,11 +63,6 @@ U32 swf_GetTagLen(TAG * t) { return t->len; } U8* swf_GetTagLenPtr(TAG * t) { return &(t->data[t->len]); } U32 swf_GetTagPos(TAG * t) { return t->pos; } -// for future purpose: avoid high level lib functions to change tagpos/bitpos - -#define swf_SaveTagPos(tag) -#define swf_RestoreTagPos(tag) - void swf_SetTagPos(TAG * t,U32 pos) { swf_ResetReadBits(t); if (pos<=t->len) t->pos = pos; @@ -337,7 +321,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 +754,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 +1054,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 +1237,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 +1366,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 +1378,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 +1404,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 +1420,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 +1432,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; @@ -1531,18 +1497,18 @@ void swf_FreeTags(SWF * swf) // Frees all malloc'ed memory for t // include advanced functions -#include "modules/swfdump.c" -#include "modules/swfshape.c" -#include "modules/swftext.c" -#include "modules/swffont.c" -#include "modules/swfobject.c" -#include "modules/swfbutton.c" -#include "modules/swftools.c" -#include "modules/swfcgi.c" -#include "modules/swfbits.c" -#include "modules/swfaction.c" -#include "modules/swfabc.c" -#include "modules/swfsound.c" -#include "modules/swfdraw.c" -#include "modules/swfrender.c" -#include "modules/swffilter.c" +//#include "modules/swfdump.c" +//#include "modules/swfshape.c" +//#include "modules/swftext.c" +//#include "modules/swffont.c" +//#include "modules/swfobject.c" +//#include "modules/swfbutton.c" +//#include "modules/swftools.c" +//#include "modules/swfcgi.c" +//#include "modules/swfbits.c" +//#include "modules/swfaction.c" +//#include "modules/swfabc.c" +//#include "modules/swfsound.c" +//#include "modules/swfdraw.c" +//#include "modules/swfrender.c" +//#include "modules/swffilter.c"