Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(142)

Unified Diff: turbojpeg.h

Issue 8720003: Update libjpeg-turbo to r722. (Closed) Base URL: svn://chrome-svn/chrome/trunk/deps/third_party/libjpeg_turbo/
Patch Set: '' Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tjunittest.c ('k') | turbojpeg.c » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: turbojpeg.h
===================================================================
--- turbojpeg.h (revision 106486)
+++ turbojpeg.h (working copy)
@@ -315,6 +315,13 @@
* a grayscale output image.
*/
#define TJXOPT_GRAY 8
+/**
+ * This option will prevent #tjTransform() from outputting a JPEG image for
+ * this particular transform (this can be used in conjunction with a custom
+ * filter to capture the transformed DCT coefficients without transcoding
+ * them.)
+ */
+#define TJXOPT_NOOUTPUT 16
/**
@@ -362,7 +369,7 @@
/**
* Lossless transform
*/
-typedef struct
+typedef struct tjtransform
{
/**
* Cropping region
@@ -376,6 +383,44 @@
* The bitwise OR of one of more of the @ref TJXOPT_CROP "transform options"
*/
int options;
+ /**
+ * Arbitrary data that can be accessed within the body of the callback
+ * function
+ */
+ void *data;
+ /**
+ * A callback function that can be used to modify the DCT coefficients
+ * after they are losslessly transformed but before they are transcoded to a
+ * new JPEG file. This allows for custom filters or other transformations to
+ * be applied in the frequency domain.
+ *
+ * @param coeffs pointer to an array of transformed DCT coefficients. (NOTE:
+ * this pointer is not guaranteed to be valid once the callback
+ * returns, so applications wishing to hand off the DCT coefficients
+ * to another function or library should make a copy of them within
+ * the body of the callback.)
+ * @param arrayRegion #tjregion structure containing the width and height of
+ * the array pointed to by <tt>coeffs</tt> as well as its offset
+ * relative to the component plane. TurboJPEG implementations may
+ * choose to split each component plane into multiple DCT coefficient
+ * arrays and call the callback function once for each array.
+ * @param planeRegion #tjregion structure containing the width and height of
+ * the component plane to which <tt>coeffs</tt> belongs
+ * @param componentID ID number of the component plane to which
+ * <tt>coeffs</tt> belongs (Y, Cb, and Cr have, respectively, ID's of
+ * 0, 1, and 2 in typical JPEG images.)
+ * @param transformID ID number of the transformed image to which
+ * <tt>coeffs</tt> belongs. This is the same as the index of the
+ * transform in the transforms array that was passed to
+ * #tjTransform().
+ * @param transform a pointer to a #tjtransform structure that specifies the
+ * parameters and/or cropping region for this transform
+ *
+ * @return 0 if the callback was successful, or -1 if an error occurred.
+ */
+ int (*customFilter)(short *coeffs, tjregion arrayRegion,
+ tjregion planeRegion, int componentIndex, int transformIndex,
+ struct tjtransform *transform);
} tjtransform;
/**
« no previous file with comments | « tjunittest.c ('k') | turbojpeg.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698