X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Frfxswf.c;h=5acb5544e373f56ebc39a83b62c28ec7a7fcfb40;hb=2583e3a3d7b101fae3a1b4cd91769b41e9b89492;hp=82511d4fe490defe08dafd5e538c3e9fe0b700fd;hpb=2a477e3f4b12dd0f9175e705ce9568405e5b1f17;p=swftools.git diff --git a/lib/rfxswf.c b/lib/rfxswf.c index 82511d4..5acb554 100644 --- a/lib/rfxswf.c +++ b/lib/rfxswf.c @@ -139,7 +139,7 @@ int swf_GetBlock(TAG * t,U8 * b,int l) return l; } -int swf_SetBlock(TAG * t,U8 * b,int l) +int swf_SetBlock(TAG * t,const U8 * b,int l) // Appends Block to the end of Tagdata, returns size { U32 newlen = t->len + l; swf_ResetWriteBits(t); @@ -261,7 +261,7 @@ double swf_GetFixed(TAG * t) } void swf_SetFixed(TAG * t, double f) { - U16 fr = (U16)(f-(int)f)*65536; + U16 fr = (U16)((f-(int)f)*65536); swf_SetU16(t, fr); swf_SetU16(t, (U16)f - (f<0 && fr!=0)); } @@ -273,7 +273,7 @@ float swf_GetFixed8(TAG * t) } void swf_SetFixed8(TAG * t, float f) { - U8 fr = (U8)(f-(int)f)*256; + U8 fr = (U8)((f-(int)f)*256); swf_SetU8(t, fr); swf_SetU8(t, (U8)f - (f<0 && fr!=0)); } @@ -938,7 +938,12 @@ int swf_WriteTag2(writer_t*writer, TAG * t) t->id!=ST_DEFINEBITSJPEG&&t->id!=ST_DEFINEBITSJPEG2&&t->id!=ST_DEFINEBITSJPEG3); if (writer) - { if (short_tag) + { +#ifdef MEASURE + int oldpos = writer->pos; +#endif + + if (short_tag) { raw[0] = SWAP16(len|((t->id&0x3ff)<<6)); if (writer->write(writer,raw,2)!=2) { @@ -981,6 +986,11 @@ int swf_WriteTag2(writer_t*writer, TAG * t) #ifdef DEBUG_RFXSWF else if (t->len) fprintf(stderr,"WriteTag(): Tag Data Error, id=%i\n",t->id); #endif + +#ifdef MEASURE + writer->flush(writer); + printf("TAG %s costs %d bytes\n", swf_TagGetName(t), writer->pos-oldpos); +#endif } return t->len+(short_tag?2:6);