| 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;
|
|
|
| /**
|
|
|