summaryrefslogtreecommitdiff
path: root/jpeg/jpeg-6b.patch
diff options
context:
space:
mode:
Diffstat (limited to 'jpeg/jpeg-6b.patch')
-rw-r--r--jpeg/jpeg-6b.patch236
1 files changed, 236 insertions, 0 deletions
diff --git a/jpeg/jpeg-6b.patch b/jpeg/jpeg-6b.patch
new file mode 100644
index 000000000000..c7c96a3eb736
--- /dev/null
+++ b/jpeg/jpeg-6b.patch
@@ -0,0 +1,236 @@
+--- misc/jpeg-6b/jconfig.h 2009-03-19 11:30:46.000000000 +0100
++++ misc/build/jpeg-6b/jconfig.h 2009-03-19 11:30:30.000000000 +0100
+@@ -1 +1,16 @@
+-dummy
++#define HAVE_PROTOTYPES
++#define HAVE_UNSIGNED_CHAR
++#define HAVE_UNSIGNED_SHORT
++#undef CHAR_IS_UNSIGNED
++#define HAVE_STDDEF_H
++#define HAVE_STDLIB_H
++#undef NEED_BSD_STRINGS
++#undef NEED_SYS_TYPES_H
++#undef NEED_FAR_POINTERS
++#undef NEED_SHORT_EXTERNAL_NAMES
++#undef INCOMPLETE_TYPES_BROKEN
++
++#ifdef JPEG_INTERNALS
++#undef RIGHT_SHIFT_IS_UNSIGNED
++#define NO_GETENV
++#endif
+--- misc/jpeg-6b/jdcolor.c 1997-08-04 01:39:16.000000000 +0200
++++ misc/build/jpeg-6b/jdcolor.c 2009-03-19 11:30:30.000000000 +0100
+@@ -284,6 +284,90 @@
+ }
+ }
+
++METHODDEF(void)
++ycck_rgb_convert (j_decompress_ptr cinfo,
++ JSAMPIMAGE input_buf, JDIMENSION input_row,
++ JSAMPARRAY output_buf, int num_rows)
++{
++ my_cconvert_ptr cconvert = (my_cconvert_ptr) cinfo->cconvert;
++ JDIMENSION num_cols = cinfo->output_width;
++ long cc, cm, cy, ck;
++ long y, cb, cr;
++ register JSAMPROW outptr;
++ register JSAMPROW inptr0, inptr1, inptr2, inptr3;
++ register JDIMENSION col;
++ register JSAMPLE* range_limit = cinfo->sample_range_limit;
++ register int* Crrtab = cconvert->Cr_r_tab;
++ register int* Cbbtab = cconvert->Cb_b_tab;
++ register INT32* Crgtab = cconvert->Cr_g_tab;
++ register INT32* Cbgtab = cconvert->Cb_g_tab;
++ SHIFT_TEMPS
++
++ while( --num_rows >= 0 )
++ {
++ inptr0 = input_buf[0][input_row];
++ inptr1 = input_buf[1][input_row];
++ inptr2 = input_buf[2][input_row];
++ inptr3 = input_buf[3][input_row++];
++
++ for( col = 0, outptr = *output_buf++; col < num_cols; col++ )
++ {
++ y = GETJSAMPLE(inptr0[col]);
++ cb = GETJSAMPLE(inptr1[col]);
++ cr = GETJSAMPLE(inptr2[col]);
++
++ // YCCK => CMYK
++ cc = 255L - range_limit[MAXJSAMPLE - (y + Crrtab[cr])];
++ cm = 255L - range_limit[MAXJSAMPLE - (y + ((int) RIGHT_SHIFT(Cbgtab[cb] + Crgtab[cr], SCALEBITS)))];
++ cy = 255L - range_limit[MAXJSAMPLE - (y + Cbbtab[cb])];
++ ck = 255L - inptr3[col];
++
++ // CMYK => RGB
++ outptr[ RGB_RED ] = range_limit[ 255L - ( cc + ck ) ];
++ outptr[ RGB_GREEN ] = range_limit[ 255L - ( cm + ck ) ];
++ outptr[ RGB_BLUE ] = range_limit[ 255L - ( cy + ck ) ];
++ outptr += RGB_PIXELSIZE;
++ }
++ }
++}
++
++METHODDEF(void)
++cmyk_rgb_convert (j_decompress_ptr cinfo,
++ JSAMPIMAGE input_buf, JDIMENSION input_row,
++ JSAMPARRAY output_buf, int num_rows)
++{
++ my_cconvert_ptr cconvert = (my_cconvert_ptr) cinfo->cconvert;
++ JDIMENSION num_cols = cinfo->output_width;
++ long cc, cm, cy, ck;
++ long y, cb, cr;
++ register JSAMPROW outptr;
++ register JSAMPROW inptr0, inptr1, inptr2, inptr3;
++ register JDIMENSION col;
++ register JSAMPLE* range_limit = cinfo->sample_range_limit;
++ SHIFT_TEMPS
++
++ while( --num_rows >= 0 )
++ {
++ inptr0 = input_buf[0][input_row];
++ inptr1 = input_buf[1][input_row];
++ inptr2 = input_buf[2][input_row];
++ inptr3 = input_buf[3][input_row++];
++
++ for( col = 0, outptr = *output_buf++; col < num_cols; col++ )
++ {
++ cc = 255 - GETJSAMPLE(inptr0[col]);
++ cm = 255 - GETJSAMPLE(inptr1[col]);
++ cy = 255 - GETJSAMPLE(inptr2[col]);
++ ck = 255 - GETJSAMPLE(inptr3[col]);
++
++ // CMYK => RGB
++ outptr[ RGB_RED ] = range_limit[ 255L - ( cc + ck ) ];
++ outptr[ RGB_GREEN ] = range_limit[ 255L - ( cm + ck ) ];
++ outptr[ RGB_BLUE ] = range_limit[ 255L - ( cy + ck ) ];
++ outptr += RGB_PIXELSIZE;
++ }
++ }
++}
+
+ /*
+ * Empty method for start_pass.
+@@ -364,6 +448,11 @@
+ cconvert->pub.color_convert = gray_rgb_convert;
+ } else if (cinfo->jpeg_color_space == JCS_RGB && RGB_PIXELSIZE == 3) {
+ cconvert->pub.color_convert = null_convert;
++ } else if (cinfo->jpeg_color_space == JCS_YCCK) {
++ cconvert->pub.color_convert = ycck_rgb_convert;
++ build_ycc_rgb_table(cinfo);
++ } else if (cinfo->jpeg_color_space == JCS_CMYK) {
++ cconvert->pub.color_convert = cmyk_rgb_convert;
+ } else
+ ERREXIT(cinfo, JERR_CONVERSION_NOTIMPL);
+ break;
+--- misc/jpeg-6b/jmorecfg.h 1997-08-10 01:58:56.000000000 +0200
++++ misc/build/jpeg-6b/jmorecfg.h 2009-03-19 11:30:30.000000000 +0100
+@@ -157,8 +157,8 @@
+
+ /* INT32 must hold at least signed 32-bit values. */
+
+-#ifndef XMD_H /* X11/xmd.h correctly defines INT32 */
+-typedef long INT32;
++#if !defined XMD_H && !defined _SOLAR_H /* X11/xmd.h correctly defines INT32 */
++typedef int INT32;
+ #endif
+
+ /* Datatype used for image dimensions. The JPEG standard only supports
+@@ -311,9 +311,9 @@
+ * can't use color quantization if you change that value.
+ */
+
+-#define RGB_RED 0 /* Offset of Red in an RGB scanline element */
++#define RGB_RED 2 /* Offset of Red in an RGB scanline element */
+ #define RGB_GREEN 1 /* Offset of Green */
+-#define RGB_BLUE 2 /* Offset of Blue */
++#define RGB_BLUE 0 /* Offset of Blue */
+ #define RGB_PIXELSIZE 3 /* JSAMPLEs per RGB scanline element */
+
+
+--- misc/jpeg-6b/makefile.mk 2009-03-19 11:30:46.000000000 +0100
++++ misc/build/jpeg-6b/makefile.mk 2009-03-19 11:30:30.000000000 +0100
+@@ -1 +1,82 @@
+-dummy
++#*************************************************************************
++#
++# $RCSfile: makefile.mk,v $
++#
++# $Revision: 1.5 $
++#
++# last change: $Author: thb $ $Date: 2001/08/14 12:53:46 $
++#
++# Copyright according the GNU Public License.
++#
++#*************************************************************************
++
++PRJ=..$/..$/..$/..
++
++PRJNAME=jpeg
++TARGET=jpeglib
++LIBTARGET=NO
++EXTERNAL_WARNINGS_NOT_ERRORS=TRUE
++VISIBILITY_HIDDEN=TRUE
++
++# --- Settings -----------------------------------------------------------
++
++.INCLUDE : settings.mk
++
++
++.IF "$(GUI)$(CPU)"=="WNTP"
++CFLAGS=$(CFLAGS) -Od
++.ENDIF
++
++# --- Files --------------------------------------------------------
++
++SLOFILES= $(SLO)$/jcapimin.obj \
++ $(SLO)$/jcapistd.obj \
++ $(SLO)$/jccoefct.obj \
++ $(SLO)$/jccolor.obj \
++ $(SLO)$/jcdctmgr.obj \
++ $(SLO)$/jcinit.obj \
++ $(SLO)$/jchuff.obj \
++ $(SLO)$/jcphuff.obj \
++ $(SLO)$/jcmainct.obj \
++ $(SLO)$/jcmarker.obj \
++ $(SLO)$/jcmaster.obj \
++ $(SLO)$/jcomapi.obj \
++ $(SLO)$/jcparam.obj \
++ $(SLO)$/jcprepct.obj \
++ $(SLO)$/jcsample.obj \
++ $(SLO)$/jdhuff.obj \
++ $(SLO)$/jdinput.obj \
++ $(SLO)$/jdtrans.obj \
++ $(SLO)$/jdapimin.obj \
++ $(SLO)$/jdapistd.obj \
++ $(SLO)$/jdatadst.obj \
++ $(SLO)$/jdatasrc.obj \
++ $(SLO)$/jdcoefct.obj \
++ $(SLO)$/jdcolor.obj \
++ $(SLO)$/jddctmgr.obj \
++ $(SLO)$/jdphuff.obj \
++ $(SLO)$/jdmainct.obj \
++ $(SLO)$/jdmarker.obj \
++ $(SLO)$/jdmaster.obj \
++ $(SLO)$/jdmerge.obj \
++ $(SLO)$/jdpostct.obj \
++ $(SLO)$/jdsample.obj \
++ $(SLO)$/jerror.obj \
++ $(SLO)$/jfdctflt.obj \
++ $(SLO)$/jfdctfst.obj \
++ $(SLO)$/jfdctint.obj \
++ $(SLO)$/jidctflt.obj \
++ $(SLO)$/jidctfst.obj \
++ $(SLO)$/jidctint.obj \
++ $(SLO)$/jidctred.obj \
++ $(SLO)$/jmemmgr.obj \
++ $(SLO)$/jmemnobs.obj \
++ $(SLO)$/jquant1.obj \
++ $(SLO)$/jquant2.obj \
++ $(SLO)$/jutils.obj
++
++LIB1TARGET=$(SLB)$/$(TARGET).lib
++LIB1ARCHIV=$(LB)$/lib$(TARGET).a
++LIB1OBJFILES=$(SLOFILES)
++
++.INCLUDE : target.mk