X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Frfxswf.c;h=1460c35d4d5f1e427f3288cc24ca939a4b22f0a7;hb=6cfa6f2326b39d3dee66a27cb77ad5e8fab021a1;hp=684c00209d244454e4693c8a99c66ca553183508;hpb=0784a8a882e7b98299fb6a90f0f9a7ebb322562b;p=swftools.git diff --git a/lib/rfxswf.c b/lib/rfxswf.c index 684c002..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 @@ -75,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; @@ -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"