X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Frfxswf.c;h=0abd61ac1cb67f75b825b8e681188a07316f64b8;hb=18fe677319093e0e5d80eb8fc626d2c5a88e4724;hp=acec56564246add0d0679604e20369a751630757;hpb=1fd32055c18aeabc8e40474c3bc4a927caf55cb4;p=swftools.git diff --git a/lib/rfxswf.c b/lib/rfxswf.c index acec565..0abd61a 100644 --- a/lib/rfxswf.c +++ b/lib/rfxswf.c @@ -332,13 +332,13 @@ void swf_GetGradient(TAG * tag, GRADIENT * gradient, char alpha) memset(gradient, 0, sizeof(GRADIENT)); return; } - U8 num = swf_GetU8(tag); + U8 num = swf_GetU8(tag) & 15; if(gradient) { gradient->num = num; gradient->rgba = rfx_calloc(sizeof(RGBA)*gradient->num); gradient->ratios = rfx_calloc(sizeof(gradient->ratios[0])*gradient->num); } - for(t=0;tnum;t++) + for(t=0;tpos; - if(swf->fileVersion >= 8) { - if ((swf->firstTag && swf->firstTag->id != ST_FILEATTRIBUTES) && - (!swf->firstTag->next || swf->firstTag->next->id != ST_FILEATTRIBUTES)) - { - U32 flags = 0; // | 128 = usenetwork, | 8 = hasmetadata - swf_SetU32(swf_InsertTagBefore(swf, swf->firstTag,ST_FILEATTRIBUTES),flags); - } - } - // Insert REFLEX Tag #ifdef INSERT_RFX_TAG @@ -1303,6 +1294,29 @@ int swf_WriteSWF2(writer_t*writer, SWF * swf) // Writes SWF to file, return #endif // INSERT_RFX_TAG + if(swf->fileVersion >= 9) { + if ((!swf->firstTag || swf->firstTag->id != ST_SCENEDESCRIPTION) && + (!swf->firstTag || + !swf->firstTag->next || swf->firstTag->next->id != ST_SCENEDESCRIPTION) && + (!swf->firstTag || + !swf->firstTag->next || + !swf->firstTag->next->next || swf->firstTag->next->next->id != ST_SCENEDESCRIPTION)) + { + TAG*scene = swf_InsertTagBefore(swf, swf->firstTag,ST_SCENEDESCRIPTION); + swf_SetU16(scene, 1); + swf_SetString(scene, "Scene 1"); + swf_SetU8(scene, 0); + } + } + + if(swf->fileVersion >= 8) { + if (swf->firstTag && swf->firstTag->id != ST_FILEATTRIBUTES) + { + U32 flags = 0x8; // | 128 = usenetwork, | 8 = hasmetadata + swf_SetU32(swf_InsertTagBefore(swf, swf->firstTag,ST_FILEATTRIBUTES),flags); + } + } + // Count Frames + File Size len = 0;