#include #include #include #include #include "ets.h" #define noDUMP_FILE_NAME "dump.ebdp" #define LITTLE_ENDIAN /* Needed for PSD support */ //#define TEST_PSD_DUMP /* PSD structure. Since this data can be compressed planar data we need an object to maintain our context state. */ struct psd_ctx_s { int width; int height; int num_channels; int depth; int curr_row; void *rle_row; int *row_lengths; int *band_row_length_index; long *band_file_offset; void *output_buffer; void (*read_line)(ETS_SrcPixel **ibufs, int xs, FILE *fi, int planes, void *image_ctx); void (*write_line)(uchar **obufs, int xs, FILE *fo, int planes, void *image_ctx); void (*finalize)(void *image_ctx); uchar *permute; }; typedef struct psd_ctx_s psd_ctx_t; static void die(char *why) { fprintf(stderr, "%s\n", why); exit(1); } #define MAX_SIZE 65536 #define M 16 static const char * get_arg (int argc, char **argv, int *pi, const char *arg) { if (arg[0] != 0) { return arg; } else { (*pi)++; if (*pi == argc) { return NULL; } else { return argv[*pi]; } } } static int usage (void) { printf("Usage: ETS\n"); printf("ETS \n"); printf(" -i same format as input - omit for stdout\n"); printf(" -g optional textual table of gamma values\n"); printf(" -e