X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fmodules%2Fswfbits.c;h=72e65afbacdfa5ec0e3eefd4d290894bebeddf77;hb=8361cd1de3449cf6bb9c357853c9637bf50e9ce2;hp=220fff4976d097d6731aeb9ce86846ccb669d8e2;hpb=4a566feb5f1074db505f5f8a78c7fdf487d94b9a;p=swftools.git diff --git a/lib/modules/swfbits.c b/lib/modules/swfbits.c index 220fff4..72e65af 100644 --- a/lib/modules/swfbits.c +++ b/lib/modules/swfbits.c @@ -299,8 +299,8 @@ int swf_SetJPEGBitsFinish(JPEGBITS * jpegbits) return 0; } -void swf_SetJPEGBits2(TAG * tag, U16 width, U16 height, RGBA * bitmap, - int quality) +#if defined(HAVE_JPEGLIB) +void swf_SetJPEGBits2(TAG * tag, U16 width, U16 height, RGBA * bitmap, int quality) { JPEGBITS *jpeg; int y; @@ -318,6 +318,13 @@ void swf_SetJPEGBits2(TAG * tag, U16 width, U16 height, RGBA * bitmap, rfx_free(scanline); swf_SetJPEGBitsFinish(jpeg); } +#else +void swf_SetJPEGBits2(TAG * tag, U16 width, U16 height, RGBA * bitmap, int quality) +{ + fprintf(stderr, "Error: swftools compiled without jpeglib\n"); + return -1; +} +#endif void swf_GetJPEGSize(char *fname, int *width, int *height) { @@ -1158,6 +1165,15 @@ int swf_SetJPEGBits3(TAG * tag, U16 width, U16 height, RGBA * bitmap, int qualit return 0; } +#else +int swf_SetJPEGBits3(TAG * tag, U16 width, U16 height, RGBA * bitmap, int quality) +{ + fprintf(stderr, "Error: swftools compiled without jpeglib\n"); + return -1; +} +#endif + + /* expects mem to be non-premultiplied */ TAG* swf_AddImage(TAG*tag, int bitid, RGBA*mem, int width, int height, int quality) { @@ -1169,6 +1185,7 @@ TAG* swf_AddImage(TAG*tag, int bitid, RGBA*mem, int width, int height, int quali swf_SetU16(tag1, bitid); swf_SetLosslessImage(tag1, mem, width, height); +#if defined(HAVE_JPEGLIB) /* try jpeg image */ if(has_alpha) { tag2 = swf_InsertTag(0, ST_DEFINEBITSJPEG3); @@ -1179,8 +1196,9 @@ TAG* swf_AddImage(TAG*tag, int bitid, RGBA*mem, int width, int height, int quali swf_SetU16(tag2, bitid); swf_SetJPEGBits2(tag2, width, height, mem, quality); } +#endif - if(quality>100 || (tag1 && tag1->len < tag2->len)) { + if(quality>100 || !tag2 || (tag1 && tag1->len < tag2->len)) { /* use the zlib version- it's smaller */ tag1->prev = tag; if(tag) tag->next = tag1; @@ -1196,8 +1214,6 @@ TAG* swf_AddImage(TAG*tag, int bitid, RGBA*mem, int width, int height, int quali return tag; } -#endif - RGBA *swf_ExtractImage(TAG * tag, int *dwidth, int *dheight) { RGBA *img;