- swf_SetU8(&t1,'F');
- swf_SetU8(&t1,'W');
- swf_SetU8(&t1,'S');
- swf_SetU8(&t1,swf->fileVersion);
-
- swf_SetU32(&t1,swf->fileSize); // Keep space for filesize
+ { // measure header file size
+ TAG t2;
+ char b2[64];
+ memset(&t2,0x00,sizeof(TAG));
+ t2.data = (U8*)b2;
+ t2.memsize = 64;
+ swf_SetRect(&t2, &swf->movieSize);
+ swf_SetU16(&t2, swf->frameRate);
+ swf_SetU16(&t2, swf->frameCount);
+ l = swf_GetTagLen(&t2)+8;
+ }
+ swf->fileSize = l+len;
+
+ if(compress) {
+ char*id = "CWS";
+ writer->write(writer, id, 3);
+ }
+ else {
+ char*id = "FWS";
+ writer->write(writer, id, 3);
+ }
+
+ writer->write(writer, &swf->fileVersion, 1);
+ PUT32(b4, swf->fileSize);
+ writer->write(writer, b4, 4);
+
+ if(compress) {
+ writer_init_zlibdeflate(&zwriter, writer);
+ writer = &zwriter;
+ }
+