char -> const char
[swftools.git] / lib / modules / swfbits.c
index 1d9d412..7d1b980 100644 (file)
@@ -393,6 +393,7 @@ int swf_SetJPEGBits(TAG * t, char *fname, int quality)
        }
     }
 
+    rfx_free(scanline);
     swf_SetJPEGBitsFinish(out);
     jpeg_finish_decompress(&cinfo);
     fclose(f);
@@ -626,7 +627,7 @@ RGBA *swf_JPEG2TagToImage(TAG * tag, int *width, int *height)
 
 #ifdef HAVE_ZLIB
     if(offset) {
-       U32 datalen = cinfo.output_width*cinfo.output_height;
+       uLongf datalen = cinfo.output_width*cinfo.output_height;
        U8* alphadata = (U8*)rfx_alloc(datalen);
        int error;
        tag->len = oldtaglen;
@@ -915,7 +916,7 @@ void swf_SetLosslessImage(TAG*tag, RGBA*data, int width, int height)
 RGBA *swf_DefineLosslessBitsTagToImage(TAG * tag, int *dwidth, int *dheight)
 {
     int id, format, height, width, pos;
-    U32 datalen, datalen2;
+    uLongf datalen, datalen2;
     int error;
     int bpp = 1;
     int cols = 0;
@@ -1145,7 +1146,7 @@ TAG* swf_AddImage(TAG*tag, int bitid, RGBA*mem, int width, int height, int quali
        swf_SetJPEGBits2(tag2, width, height, mem, quality);
     }
 
-    if(tag1 && tag1->len < tag2->len) {
+    if(quality>100 || (tag1 && tag1->len < tag2->len)) {
        /* use the zlib version- it's smaller */
        tag1->prev = tag;
        if(tag) tag->next = tag1;