aboutsummaryrefslogtreecommitdiff
path: root/graphics/jpeg/files/patch-transupp.h
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/jpeg/files/patch-transupp.h')
-rw-r--r--graphics/jpeg/files/patch-transupp.h199
1 files changed, 22 insertions, 177 deletions
diff --git a/graphics/jpeg/files/patch-transupp.h b/graphics/jpeg/files/patch-transupp.h
index c8e1941f3fc4..2073ae3c8775 100644
--- a/graphics/jpeg/files/patch-transupp.h
+++ b/graphics/jpeg/files/patch-transupp.h
@@ -1,191 +1,36 @@
---- transupp.h.orig Wed Jul 23 22:39:12 1997
-+++ transupp.h Fri Jun 4 15:07:31 2004
-@@ -1,7 +1,7 @@
- /*
- * transupp.h
- *
-- * Copyright (C) 1997, Thomas G. Lane.
-+ * Copyright (C) 1997-2001, Thomas G. Lane.
- * This file is part of the Independent JPEG Group's software.
- * For conditions of distribution and use, see the accompanying README file.
- *
-@@ -22,32 +22,6 @@
- #define TRANSFORMS_SUPPORTED 1 /* 0 disables transform code */
- #endif
-
--/* Short forms of external names for systems with brain-damaged linkers. */
--
--#ifdef NEED_SHORT_EXTERNAL_NAMES
--#define jtransform_request_workspace jTrRequest
--#define jtransform_adjust_parameters jTrAdjust
--#define jtransform_execute_transformation jTrExec
--#define jcopy_markers_setup jCMrkSetup
--#define jcopy_markers_execute jCMrkExec
--#endif /* NEED_SHORT_EXTERNAL_NAMES */
--
--
--/*
-- * Codes for supported types of image transformations.
-- */
--
--typedef enum {
-- JXFORM_NONE, /* no transformation */
-- JXFORM_FLIP_H, /* horizontal flip */
-- JXFORM_FLIP_V, /* vertical flip */
-- JXFORM_TRANSPOSE, /* transpose across UL-to-LR axis */
-- JXFORM_TRANSVERSE, /* transpose across UR-to-LL axis */
-- JXFORM_ROT_90, /* 90-degree clockwise rotation */
-- JXFORM_ROT_180, /* 180-degree rotation */
+--- transupp.h.orig 2003-09-21 23:01:30.000000000 +0200
++++ transupp.h 2009-07-01 08:54:49.000000000 +0200
+@@ -96,7 +96,8 @@
+ JXFORM_TRANSVERSE, /* transpose across UR-to-LL axis */
+ JXFORM_ROT_90, /* 90-degree clockwise rotation */
+ JXFORM_ROT_180, /* 180-degree rotation */
- JXFORM_ROT_270 /* 270-degree clockwise (or 90 ccw) */
--} JXFORM_CODE;
--
++ JXFORM_ROT_270, /* 270-degree clockwise (or 90 ccw) */
++ JXFORM_DROP /* drop */
+ } JXFORM_CODE;
+
/*
- * Although rotating and flipping data expressed as DCT coefficients is not
- * hard, there is an asymmetry in the JPEG format specification for images
-@@ -75,6 +49,19 @@
- * (For example, -rot 270 -trim trims only the bottom edge, but -rot 90 -trim
- * followed by -rot 180 -trim trims both edges.)
- *
-+ * We also offer a lossless-crop option, which discards data outside a given
-+ * image region but losslessly preserves what is inside. Like the rotate and
-+ * flip transforms, lossless crop is restricted by the JPEG format: the upper
-+ * left corner of the selected region must fall on an iMCU boundary. If this
-+ * does not hold for the given crop parameters, we silently move the upper left
-+ * corner up and/or left to make it so, simultaneously increasing the region
-+ * dimensions to keep the lower right crop corner unchanged. (Thus, the
-+ * output image covers at least the requested region, but may cover more.)
-+ *
-+ * If both crop and a rotate/flip transform are requested, the crop is applied
-+ * last --- that is, the crop region is specified in terms of the destination
-+ * image.
-+ *
- * We also offer a "force to grayscale" option, which simply discards the
- * chrominance channels of a YCbCr image. This is lossless in the sense that
- * the luminance channel is preserved exactly. It's not the same kind of
-@@ -83,20 +70,96 @@
- * be aware of the option to know how many components to work on.
- */
+@@ -136,6 +137,10 @@
+ JDIMENSION crop_yoffset; /* Y offset of selected region */
+ JCROP_CODE crop_yoffset_set; /* (negative measures from bottom edge) */
-+
-+/* Short forms of external names for systems with brain-damaged linkers. */
-+
-+#ifdef NEED_SHORT_EXTERNAL_NAMES
-+#define jtransform_parse_crop_spec jTrParCrop
-+#define jtransform_request_workspace jTrRequest
-+#define jtransform_adjust_parameters jTrAdjust
-+#define jtransform_execute_transform jTrExec
-+#define jtransform_perfect_transform jTrPerfect
-+#define jcopy_markers_setup jCMrkSetup
-+#define jcopy_markers_execute jCMrkExec
-+#endif /* NEED_SHORT_EXTERNAL_NAMES */
-+
-+
-+/*
-+ * Codes for supported types of image transformations.
-+ */
-+
-+typedef enum {
-+ JXFORM_NONE, /* no transformation */
-+ JXFORM_FLIP_H, /* horizontal flip */
-+ JXFORM_FLIP_V, /* vertical flip */
-+ JXFORM_TRANSPOSE, /* transpose across UL-to-LR axis */
-+ JXFORM_TRANSVERSE, /* transpose across UR-to-LL axis */
-+ JXFORM_ROT_90, /* 90-degree clockwise rotation */
-+ JXFORM_ROT_180, /* 180-degree rotation */
-+ JXFORM_ROT_270, /* 270-degree clockwise (or 90 ccw) */
-+ JXFORM_DROP /* drop */
-+} JXFORM_CODE;
-+
-+/*
-+ * Codes for crop parameters, which can individually be unspecified,
-+ * positive, or negative. (Negative width or height makes no sense, though.)
-+ */
-+
-+typedef enum {
-+ JCROP_UNSET,
-+ JCROP_POS,
-+ JCROP_NEG
-+} JCROP_CODE;
-+
-+/*
-+ * Transform parameters struct.
-+ * NB: application must not change any elements of this struct after
-+ * calling jtransform_request_workspace.
-+ */
-+
- typedef struct {
- /* Options: set by caller */
- JXFORM_CODE transform; /* image transform operator */
-+ boolean perfect; /* if TRUE, fail if partial MCUs are requested */
- boolean trim; /* if TRUE, trim partial MCUs as needed */
- boolean force_grayscale; /* if TRUE, convert color image to grayscale */
-+ boolean crop; /* if TRUE, crop source image */
-+
-+ /* Crop parameters: application need not set these unless crop is TRUE.
-+ * These can be filled in by jtransform_parse_crop_spec().
-+ */
-+ JDIMENSION crop_width; /* Width of selected region */
-+ JCROP_CODE crop_width_set;
-+ JDIMENSION crop_height; /* Height of selected region */
-+ JCROP_CODE crop_height_set;
-+ JDIMENSION crop_xoffset; /* X offset of selected region */
-+ JCROP_CODE crop_xoffset_set; /* (negative measures from right edge) */
-+ JDIMENSION crop_yoffset; /* Y offset of selected region */
-+ JCROP_CODE crop_yoffset_set; /* (negative measures from bottom edge) */
-+
+ /* Drop parameters: set by caller for drop request */
+ j_decompress_ptr drop_ptr;
+ jvirt_barray_ptr * drop_coef_arrays;
-
++
/* Internal workspace: caller should not touch these */
int num_components; /* # of components in workspace */
jvirt_barray_ptr * workspace_coef_arrays; /* workspace for transformations */
-+ JDIMENSION output_width; /* cropped destination dimensions */
-+ JDIMENSION output_height;
-+ JDIMENSION x_crop_offset; /* destination crop offsets measured in iMCUs */
-+ JDIMENSION y_crop_offset;
-+ JDIMENSION drop_width; /* drop dimensions measured in iMCUs */
+@@ -143,6 +148,8 @@
+ JDIMENSION output_height;
+ JDIMENSION x_crop_offset; /* destination crop offsets measured in iMCUs */
+ JDIMENSION y_crop_offset;
++ JDIMENSION drop_width; /* drop dimensions measured in iMCUs */
+ JDIMENSION drop_height;
-+ int max_h_samp_factor; /* destination iMCU size */
-+ int max_v_samp_factor;
+ int max_h_samp_factor; /* destination iMCU size */
+ int max_v_samp_factor;
} jpeg_transform_info;
-
-
- #if TRANSFORMS_SUPPORTED
-
-+/* Parse a crop specification (written in X11 geometry style) */
-+EXTERN(boolean) jtransform_parse_crop_spec
-+ JPP((jpeg_transform_info *info, const char *spec));
- /* Request any required workspace */
- EXTERN(void) jtransform_request_workspace
- JPP((j_decompress_ptr srcinfo, jpeg_transform_info *info));
-@@ -106,10 +169,24 @@
- jvirt_barray_ptr *src_coef_arrays,
- jpeg_transform_info *info));
- /* Execute the actual transformation, if any */
--EXTERN(void) jtransform_execute_transformation
-+EXTERN(void) jtransform_execute_transform
- JPP((j_decompress_ptr srcinfo, j_compress_ptr dstinfo,
- jvirt_barray_ptr *src_coef_arrays,
- jpeg_transform_info *info));
-+/* Determine whether lossless transformation is perfectly
-+ * possible for a specified image and transformation.
-+ */
-+EXTERN(boolean) jtransform_perfect_transform
-+ JPP((JDIMENSION image_width, JDIMENSION image_height,
-+ int MCU_width, int MCU_height,
-+ JXFORM_CODE transform));
-+
-+/* jtransform_execute_transform used to be called
-+ * jtransform_execute_transformation, but some compilers complain about
-+ * routine names that long. This macro is here to avoid breaking any
-+ * old source code that uses the original name...
-+ */
-+#define jtransform_execute_transformation jtransform_execute_transform
-
- #endif /* TRANSFORMS_SUPPORTED */
-
-@@ -121,7 +198,8 @@
+@@ -191,7 +198,8 @@
typedef enum {
JCOPYOPT_NONE, /* copy no optional markers */
JCOPYOPT_COMMENTS, /* copy only comment (COM) markers */