X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Frfxswf.c;h=9b962355d6df9ce123e5d3da2ad0058fcdf75d73;hb=de0e909835e1cb1d2c0bb675f4dbed62bb452a9c;hp=2598fd20971fb07fb95ccbb6bdd2b60f5a62c0ca;hpb=5f94b7e9645c760d40679b2338b9a076ce3c5834;p=swftools.git diff --git a/lib/rfxswf.c b/lib/rfxswf.c index 2598fd2..9b96235 100644 --- a/lib/rfxswf.c +++ b/lib/rfxswf.c @@ -31,6 +31,9 @@ #endif // HAVE_ZLIB_H #endif // HAVE_LIBZ +#define LAME +#include "lame/lame.h" + #include "./bitio.h" // internal constants @@ -347,6 +350,10 @@ int swf_SetRect(TAG * t,SRECT * r) nbits = swf_CountBits(r->xmax,nbits); nbits = swf_CountBits(r->ymin,nbits); nbits = swf_CountBits(r->ymax,nbits); + if(nbits>=32) { + fprintf(stderr, "rfxswf: Warning: num_bits overflow in swf_SetRect\n"); + nbits=31; + } swf_SetBits(t,nbits,5); swf_SetBits(t,r->xmin,nbits); @@ -857,6 +864,7 @@ int swf_WriteSWF2(struct writer_t*writer, SWF * swf) // Writes SWF to file, TAG * t; int frameCount=0; struct writer_t zwriter; + int fileSize = 0; if (!swf) return -1; @@ -902,8 +910,9 @@ int swf_WriteSWF2(struct writer_t*writer, SWF * swf) // Writes SWF to file, l = swf_GetTagLen(&t2)+8; } + fileSize = l+len; if(len) {// don't touch headers without tags - swf->fileSize = l+len; + swf->fileSize = fileSize; swf->frameCount = frameCount; } @@ -950,7 +959,7 @@ int swf_WriteSWF2(struct writer_t*writer, SWF * swf) // Writes SWF to file, writer->finish(writer); //e.g. flush zlib buffers } } - return (int)swf->fileSize; + return (int)fileSize; } int swf_WriteSWF(int handle, SWF * swf) // Writes SWF to file, returns length or <0 if fails