X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;ds=sidebyside;f=lib%2Fmodules%2Fswfbits.c;h=19dde1c579bd6d544232e92447e8fad05416b682;hb=ec646624d627bef5c3d538be9e3b6dcad65bbf2e;hp=f761ae079c5121d8bf58ac5a6bb136ef0792de45;hpb=feddb673cf8404df91270489b130a72c65195866;p=swftools.git diff --git a/lib/modules/swfbits.c b/lib/modules/swfbits.c index f761ae0..19dde1c 100644 --- a/lib/modules/swfbits.c +++ b/lib/modules/swfbits.c @@ -760,3 +760,36 @@ RGBA* swf_ExtractImage(TAG*tag, int*dwidth, int*dheight) #undef OUTBUFFER_SIZE + +void swf_RemoveJPEGTables(SWF*swf) +{ + TAG* tag = swf->firstTag; + TAG* tables_tag = 0; + while(tag) { + if(tag->id == ST_JPEGTABLES) { + tables_tag = tag; + } + tag = tag->next; + } + + if(!tables_tag) + return; + + tag = swf->firstTag; + while(tag) { + if(tag->id == ST_DEFINEBITSJPEG) { + void*data = rfx_alloc(tag->len); + swf_GetBlock(tag, data, tag->len); + swf_ResetTag(tag, ST_DEFINEBITSJPEG2); + swf_SetBlock(tag, tables_tag->data, tables_tag->len); + swf_SetBlock(tag, data, tag->len); + free(data); + } + tag = tag->next; + } + if(swf->firstTag == tables_tag) + swf->firstTag = tables_tag->next; + swf_DeleteTag(tables_tag); +} + +