diff --git a/contrib/media/updf_newlib/apps/Makefile b/contrib/media/updf_newlib/apps/Makefile index ca5796696c..2813808912 100755 --- a/contrib/media/updf_newlib/apps/Makefile +++ b/contrib/media/updf_newlib/apps/Makefile @@ -6,7 +6,7 @@ LDFLAGS = -static -nostdlib -T $(SDK_DIR)/sources/newlib/app.lds --image-base 0 CFLAGS = -c -fno-ident -O2 -fomit-frame-pointer -fno-ident -U__WIN32__ -U_Win32 -U_WIN32 -U__MINGW32__ -UWIN32 -INCLUDES = -I ../SYSCALL/include -I $(SDK_DIR)/sources/newlib/libc/include -I $(SDK_DIR)/sources/freetype/include -I $(SDK_DIR)/sources/zlib -I ../include -I ../fitz -I ../pdf +INCLUDES = -I ../SYSCALL/include -I $(SDK_DIR)/sources/newlib/libc/include -I $(SDK_DIR)/sources/freetype/include -I $(SDK_DIR)/sources/zlib -I ../fitz -I ../pdf LIBPATH = -L $(SDK_DIR)/lib -L /home/autobuild/tools/win32/mingw32/lib -L ../lib APPS_SRC := $(notdir $(wildcard *.c)) diff --git a/contrib/media/updf_newlib/apps/kos_main.c b/contrib/media/updf_newlib/apps/kos_main.c index 40ecfc81a4..075fac6fb6 100755 --- a/contrib/media/updf_newlib/apps/kos_main.c +++ b/contrib/media/updf_newlib/apps/kos_main.c @@ -110,14 +110,14 @@ void winreloadfile(pdfapp_t *app) void winclose(pdfapp_t *app) { pdfapp_close(&gapp); - __menuet__sys_exit(); + exit(0); } void RunOpenApp(char name[]) { - char cmd[250] = "*pdf* "; - strcat(cmd, name); - RunApp("/sys/lod", cmd); + char cmd[250] = "*pdf* "; + strcat(cmd, name); + RunApp("/sys/lod", cmd); } @@ -371,7 +371,7 @@ int main (int argc, char* argv[]) if (argc == 1) { kol_board_puts("uPDF: no param set, showing OpenDialog"); RunOpenApp(argv[0]); - __menuet__sys_exit(); + exit(0); } kol_board_puts(argv[1]); @@ -398,78 +398,77 @@ int main (int argc, char* argv[]) __menuet__get_screen_max(&screen_max_x, &screen_max_y); __menuet__set_bitfield_for_wanted_events(EVENT_REDRAW+EVENT_KEY+EVENT_BUTTON+EVENT_MOUSE_CHANGE); - for(;;) - { - - switch(__menuet__wait_for_event()) + for(;;) { - case evReDraw: - // gapp.shrinkwrap = 2; - __menuet__window_redraw(1); - __menuet__define_window(screen_max_x / 2 - 350-50+kos_random(50), - screen_max_y / 2 - 300-50+kos_random(50), - 700, 600, 0x73000000, 0x800000FF, Title); - __menuet__window_redraw(2); - __menuet__get_process_table(&Form, PID_WHOAMI); - if (Form.window_state > 2) continue; //fix rolled up - Form.client_width++; //fix for Menuet kernel bug - Form.client_height++; //fix for Menuet kernel bug - DrawWindow(); - break; - - case evKey: - key = __menuet__getkey(); - if (key_mode_enter_page_number) - { - HandleNewPageNumber(key); + switch(__menuet__wait_for_event()) + { + case evReDraw: + // gapp.shrinkwrap = 2; + __menuet__window_redraw(1); + __menuet__define_window(screen_max_x / 2 - 350-50+kos_random(50), + screen_max_y / 2 - 300-50+kos_random(50), + 700, 600, 0x73000000, 0x800000FF, Title); + __menuet__window_redraw(2); + __menuet__get_process_table(&Form, PID_WHOAMI); + if (Form.window_state > 2) continue; //fix rolled up + Form.client_width++; //fix for Menuet kernel bug + Form.client_height++; //fix for Menuet kernel bug + DrawWindow(); break; - } - if (key==ASCII_KEY_ESC) DrawWindow(); //close help - if (key==ASCII_KEY_PGDN) pdfapp_onkey(&gapp, ']'); - if (key==ASCII_KEY_PGUP) pdfapp_onkey(&gapp, '['); - if (key==ASCII_KEY_HOME) pdfapp_onkey(&gapp, 'g'); - if (key==ASCII_KEY_END ) pdfapp_onkey(&gapp, 'G'); - if (key=='g' ) pdfapp_onkey(&gapp, 'c'); - if ((key=='[' ) || (key=='l')) PageRotateLeft(); - if ((key==']' ) || (key=='r')) PageRotateRight(); - if (key==ASCII_KEY_DOWN ) PageScrollDown(); - if (key==ASCII_KEY_UP ) PageScrollUp(); - if (key=='-') PageZoomOut(); - if ((key=='=') || (key=='+')) PageZoomIn(); - break; - case evButton: - butt = __menuet__get_button_id(); - if(butt==1) __menuet__sys_exit(); - if(butt==10) RunOpenApp(argv[0]); - if(butt==11) PageZoomOut(); //magnify - - if(butt==12) PageZoomIn(); //magnify + - if(butt==13) //show help - { - kol_paint_bar(0, TOOLBAR_HEIGHT, Form.client_width, Form.client_height - TOOLBAR_HEIGHT, 0xF2F2F2); - __menuet__write_text(20, TOOLBAR_HEIGHT + 20 , 0x90000000, "uPDF for KolibriOS v1.2", 0); - __menuet__write_text(21, TOOLBAR_HEIGHT + 20 , 0x90000000, "uPDF for KolibriOS v1.2", 0); - for (ii=0; help[ii]!=0; ii++) { - __menuet__write_text(20, TOOLBAR_HEIGHT + 60 + ii * 15, 0x80000000, help[ii], 0); + case evKey: + key = __menuet__getkey(); + if (key_mode_enter_page_number) + { + HandleNewPageNumber(key); + break; } - } - if(butt==14) pdfapp_onkey(&gapp, '['); //previous page - if(butt==15) pdfapp_onkey(&gapp, ']'); //next page - if(butt==16) PageRotateLeft(); - if(butt==17) PageRotateRight(); - if(butt==20) GetNewPageNumber(); - break; + if (key==ASCII_KEY_ESC) DrawWindow(); //close help + if (key==ASCII_KEY_PGDN) pdfapp_onkey(&gapp, ']'); + if (key==ASCII_KEY_PGUP) pdfapp_onkey(&gapp, '['); + if (key==ASCII_KEY_HOME) pdfapp_onkey(&gapp, 'g'); + if (key==ASCII_KEY_END ) pdfapp_onkey(&gapp, 'G'); + if (key=='g' ) pdfapp_onkey(&gapp, 'c'); + if ((key=='[' ) || (key=='l')) PageRotateLeft(); + if ((key==']' ) || (key=='r')) PageRotateRight(); + if (key==ASCII_KEY_DOWN ) PageScrollDown(); + if (key==ASCII_KEY_UP ) PageScrollUp(); + if (key=='-') PageZoomOut(); + if ((key=='=') || (key=='+')) PageZoomIn(); + break; - case evMouse: - if (mouse_wheels_state = kos_get_mouse_wheels()) - { - if (mouse_wheels_state==1) { PageScrollDown(); PageScrollDown(); } - if (mouse_wheels_state==-1) { PageScrollUp(); PageScrollUp(); } - } - //sprintf (debugstr, "mouse_wheels_state: %d \n", mouse_wheels_state); - //kol_board_puts(debugstr); - //pdfapp_onmouse(&gapp, int x, int y, int btn, int modifiers, int state) - break; + case evButton: + butt = __menuet__get_button_id(); + if(butt==1) exit(0); + if(butt==10) RunOpenApp(argv[0]); + if(butt==11) PageZoomOut(); //magnify - + if(butt==12) PageZoomIn(); //magnify + + if(butt==13) //show help + { + kol_paint_bar(0, TOOLBAR_HEIGHT, Form.client_width, Form.client_height - TOOLBAR_HEIGHT, 0xF2F2F2); + __menuet__write_text(20, TOOLBAR_HEIGHT + 20 , 0x90000000, "uPDF for KolibriOS v1.2", 0); + __menuet__write_text(21, TOOLBAR_HEIGHT + 20 , 0x90000000, "uPDF for KolibriOS v1.2", 0); + for (ii=0; help[ii]!=0; ii++) { + __menuet__write_text(20, TOOLBAR_HEIGHT + 60 + ii * 15, 0x80000000, help[ii], 0); + } + } + if(butt==14) pdfapp_onkey(&gapp, '['); //previous page + if(butt==15) pdfapp_onkey(&gapp, ']'); //next page + if(butt==16) PageRotateLeft(); + if(butt==17) PageRotateRight(); + if(butt==20) GetNewPageNumber(); + break; + + case evMouse: + if (mouse_wheels_state = kos_get_mouse_wheels()) + { + if (mouse_wheels_state==1) { PageScrollDown(); PageScrollDown(); } + if (mouse_wheels_state==-1) { PageScrollUp(); PageScrollUp(); } + } + //sprintf (debugstr, "mouse_wheels_state: %d \n", mouse_wheels_state); + //kol_board_puts(debugstr); + //pdfapp_onmouse(&gapp, int x, int y, int btn, int modifiers, int state) + break; + } } - } } diff --git a/contrib/media/updf_newlib/apps/pdfapp.c b/contrib/media/updf_newlib/apps/pdfapp.c index 5e2b88be1f..acea0b4dd2 100755 --- a/contrib/media/updf_newlib/apps/pdfapp.c +++ b/contrib/media/updf_newlib/apps/pdfapp.c @@ -1,6 +1,7 @@ #include "fitz.h" #include "mupdf.h" #include "pdfapp.h" +#include "kolibri.h" #include /* for tolower() */ @@ -109,12 +110,12 @@ static void pdfapp_open_pdf(pdfapp_t *app, char *filename, int fd) /* * Open PDF and load xref table */ -__menuet__debug_out("FZ OPEN\n"); +kol_board_puts("FZ OPEN\n"); //file = fz_open_fd(fd); - __menuet__debug_out("FZ ready\n"); + kol_board_puts("FZ ready\n"); error = pdf_open_xref(&app->xref, filename, NULL); if (error){ - __menuet__debug_out("FZ can't open\n"); + kol_board_puts("FZ can't open\n"); pdfapp_error(app, fz_rethrow(error, "cannot open document '%s'", filename));} fz_close(file); @@ -160,16 +161,16 @@ __menuet__debug_out("FZ OPEN\n"); /* * Start at first page */ - __menuet__debug_out("Start at first page\n"); + kol_board_puts("Start at first page\n"); error = pdf_load_page_tree(app->xref); if (error) { - __menuet__debug_out("Can't load tree\n"); + kol_board_puts("Can't load tree\n"); pdfapp_error(app, fz_rethrow(error, "cannot load page tree"));} -__menuet__debug_out("Page counter\n"); +kol_board_puts("Page counter\n"); app->pagecount = pdf_count_pages(app->xref); - __menuet__debug_out("All is set!\n"); + kol_board_puts("All is set!\n"); } void pdfapp_open(pdfapp_t *app, char *filename, int fd, int reload) @@ -375,7 +376,7 @@ static void pdfapp_showpage(pdfapp_t *app, int loadpage, int drawpage, int repai if (app->shrinkwrap) { - __menuet__debug_out ("SHRINK\n"); + kol_board_puts ("SHRINK\n"); int w = app->image->w; int h = app->image->h; if (app->winw == w) diff --git a/contrib/media/updf_newlib/draw/Makefile b/contrib/media/updf_newlib/draw/Makefile index d79cb9aa8e..4e769111df 100755 --- a/contrib/media/updf_newlib/draw/Makefile +++ b/contrib/media/updf_newlib/draw/Makefile @@ -2,12 +2,10 @@ CC = kos32-gcc LD = kos32-ld SDK_DIR = $(abspath ../../../sdk) -LDFLAGS = -call_shared -nostdlib -T $(SDK_DIR)/sources/newlib/app-dynamic.lds --image-base 0 CFLAGS = -c -fno-ident -O2 -fomit-frame-pointer -fno-ident -U__WIN32__ -U_Win32 -U_WIN32 -U__MINGW32__ -UWIN32 INCLUDES = -I $(SDK_DIR)/sources/newlib/libc/include -I ../fitz -LIBPATH = -L $(SDK_DIR)/lib -L /home/autobuild/tools/win32/mingw32/lib DRAW_SRC := $(notdir $(wildcard *.c)) OBJECTS = $(patsubst %.c, %.o, $(DRAW_SRC)) diff --git a/contrib/media/updf_newlib/fitz/Makefile b/contrib/media/updf_newlib/fitz/Makefile index 68030dab29..562ccec512 100755 --- a/contrib/media/updf_newlib/fitz/Makefile +++ b/contrib/media/updf_newlib/fitz/Makefile @@ -5,7 +5,7 @@ SDK_DIR = $(abspath ../../../sdk) CFLAGS = -c -fno-ident -O2 -fomit-frame-pointer -fno-ident -U__WIN32__ -U_Win32 -U_WIN32 -U__MINGW32__ -UWIN32 -INCLUDES = -I $(SDK_DIR)/sources/newlib/libc/include -I $(SDK_DIR)/sources/freetype/include -I $(SDK_DIR)/sources/zlib -I ../libopenjpeg -I ../include +INCLUDES = -I $(SDK_DIR)/sources/newlib/libc/include -I $(SDK_DIR)/sources/freetype/include -I $(SDK_DIR)/sources/libjpeg -I $(SDK_DIR)/sources/zlib -I ../libopenjpeg -I ../libjbig2dec FITZ_SRC := $(notdir $(wildcard *.c)) OBJECTS = $(patsubst %.c, %.o, $(FITZ_SRC)) diff --git a/contrib/media/updf_newlib/include/j2k.h b/contrib/media/updf_newlib/include/j2k.h deleted file mode 100755 index 8fc8e6dce2..0000000000 --- a/contrib/media/updf_newlib/include/j2k.h +++ /dev/null @@ -1,446 +0,0 @@ -/* - * Copyright (c) 2002-2007, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium - * Copyright (c) 2002-2007, Professor Benoit Macq - * Copyright (c) 2001-2003, David Janssens - * Copyright (c) 2002-2003, Yannick Verschueren - * Copyright (c) 2003-2007, Francois-Olivier Devaux and Antonin Descampe - * Copyright (c) 2005, Herve Drolon, FreeImage Team - * Copyright (c) 2006-2007, Parvatha Elangovan - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS' - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ -#ifndef __J2K_H -#define __J2K_H -/** -@file j2k.h -@brief The JPEG-2000 Codestream Reader/Writer (J2K) - -The functions in J2K.C have for goal to read/write the several parts of the codestream: markers and data. -*/ - -/** @defgroup J2K J2K - JPEG-2000 codestream reader/writer */ -/*@{*/ - -#define J2K_CP_CSTY_PRT 0x01 -#define J2K_CP_CSTY_SOP 0x02 -#define J2K_CP_CSTY_EPH 0x04 -#define J2K_CCP_CSTY_PRT 0x01 -#define J2K_CCP_CBLKSTY_LAZY 0x01 /**< Selective arithmetic coding bypass */ -#define J2K_CCP_CBLKSTY_RESET 0x02 /**< Reset context probabilities on coding pass boundaries */ -#define J2K_CCP_CBLKSTY_TERMALL 0x04 /**< Termination on each coding pass */ -#define J2K_CCP_CBLKSTY_VSC 0x08 /**< Vertically stripe causal context */ -#define J2K_CCP_CBLKSTY_PTERM 0x10 /**< Predictable termination */ -#define J2K_CCP_CBLKSTY_SEGSYM 0x20 /**< Segmentation symbols are used */ -#define J2K_CCP_QNTSTY_NOQNT 0 -#define J2K_CCP_QNTSTY_SIQNT 1 -#define J2K_CCP_QNTSTY_SEQNT 2 - -/* ----------------------------------------------------------------------- */ - -#define J2K_MS_SOC 0xff4f /**< SOC marker value */ -#define J2K_MS_SOT 0xff90 /**< SOT marker value */ -#define J2K_MS_SOD 0xff93 /**< SOD marker value */ -#define J2K_MS_EOC 0xffd9 /**< EOC marker value */ -#define J2K_MS_SIZ 0xff51 /**< SIZ marker value */ -#define J2K_MS_COD 0xff52 /**< COD marker value */ -#define J2K_MS_COC 0xff53 /**< COC marker value */ -#define J2K_MS_RGN 0xff5e /**< RGN marker value */ -#define J2K_MS_QCD 0xff5c /**< QCD marker value */ -#define J2K_MS_QCC 0xff5d /**< QCC marker value */ -#define J2K_MS_POC 0xff5f /**< POC marker value */ -#define J2K_MS_TLM 0xff55 /**< TLM marker value */ -#define J2K_MS_PLM 0xff57 /**< PLM marker value */ -#define J2K_MS_PLT 0xff58 /**< PLT marker value */ -#define J2K_MS_PPM 0xff60 /**< PPM marker value */ -#define J2K_MS_PPT 0xff61 /**< PPT marker value */ -#define J2K_MS_SOP 0xff91 /**< SOP marker value */ -#define J2K_MS_EPH 0xff92 /**< EPH marker value */ -#define J2K_MS_CRG 0xff63 /**< CRG marker value */ -#define J2K_MS_COM 0xff64 /**< COM marker value */ -/* UniPG>> */ -#ifdef USE_JPWL -#define J2K_MS_EPC 0xff68 /**< EPC marker value (Part 11: JPEG 2000 for Wireless) */ -#define J2K_MS_EPB 0xff66 /**< EPB marker value (Part 11: JPEG 2000 for Wireless) */ -#define J2K_MS_ESD 0xff67 /**< ESD marker value (Part 11: JPEG 2000 for Wireless) */ -#define J2K_MS_RED 0xff69 /**< RED marker value (Part 11: JPEG 2000 for Wireless) */ -#endif /* USE_JPWL */ -#ifdef USE_JPSEC -#define J2K_MS_SEC 0xff65 /**< SEC marker value (Part 8: Secure JPEG 2000) */ -#define J2K_MS_INSEC 0xff94 /**< INSEC marker value (Part 8: Secure JPEG 2000) */ -#endif /* USE_JPSEC */ -/* < there was a PPT marker for the present tile */ - int ppt; - /** used in case of multiple marker PPT (number of info already stored) */ - int ppt_store; - /** ppmbug1 */ - int ppt_len; - /** add fixed_quality */ - float distoratio[100]; - /** tile-component coding parameters */ - opj_tccp_t *tccps; -} opj_tcp_t; - -/** -Coding parameters -*/ -typedef struct opj_cp { - /** Digital cinema profile*/ - OPJ_CINEMA_MODE cinema; - /** Maximum rate for each component. If == 0, component size limitation is not considered */ - int max_comp_size; - /** Size of the image in bits*/ - int img_size; - /** Rsiz*/ - OPJ_RSIZ_CAPABILITIES rsiz; - /** Enabling Tile part generation*/ - char tp_on; - /** Flag determining tile part generation*/ - char tp_flag; - /** Position of tile part flag in progression order*/ - int tp_pos; - /** allocation by rate/distortion */ - int disto_alloc; - /** allocation by fixed layer */ - int fixed_alloc; - /** add fixed_quality */ - int fixed_quality; - /** if != 0, then original dimension divided by 2^(reduce); if == 0 or not used, image is decoded to the full resolution */ - int reduce; - /** if != 0, then only the first "layer" layers are decoded; if == 0 or not used, all the quality layers are decoded */ - int layer; - /** if == NO_LIMITATION, decode entire codestream; if == LIMIT_TO_MAIN_HEADER then only decode the main header */ - OPJ_LIMIT_DECODING limit_decoding; - /** XTOsiz */ - int tx0; - /** YTOsiz */ - int ty0; - /** XTsiz */ - int tdx; - /** YTsiz */ - int tdy; - /** comment for coding */ - char *comment; - /** number of tiles in width */ - int tw; - /** number of tiles in heigth */ - int th; - /** ID number of the tiles present in the codestream */ - int *tileno; - /** size of the vector tileno */ - int tileno_size; - /** packet header store there for futur use in t2_decode_packet */ - unsigned char *ppm_data; - /** pointer remaining on the first byte of the first header if ppm is used */ - unsigned char *ppm_data_first; - /** if ppm == 1 --> there was a PPM marker for the present tile */ - int ppm; - /** use in case of multiple marker PPM (number of info already store) */ - int ppm_store; - /** use in case of multiple marker PPM (case on non-finished previous info) */ - int ppm_previous; - /** ppmbug1 */ - int ppm_len; - /** tile coding parameters */ - opj_tcp_t *tcps; - /** fixed layer */ - int *matrice; -/* UniPG>> */ -#ifdef USE_JPWL - /** enables writing of EPC in MH, thus activating JPWL */ - bool epc_on; - /** enables writing of EPB, in case of activated JPWL */ - bool epb_on; - /** enables writing of ESD, in case of activated JPWL */ - bool esd_on; - /** enables writing of informative techniques of ESD, in case of activated JPWL */ - bool info_on; - /** enables writing of RED, in case of activated JPWL */ - bool red_on; - /** error protection method for MH (0,1,16,32,37-128) */ - int hprot_MH; - /** tile number of header protection specification (>=0) */ - int hprot_TPH_tileno[JPWL_MAX_NO_TILESPECS]; - /** error protection methods for TPHs (0,1,16,32,37-128) */ - int hprot_TPH[JPWL_MAX_NO_TILESPECS]; - /** tile number of packet protection specification (>=0) */ - int pprot_tileno[JPWL_MAX_NO_PACKSPECS]; - /** packet number of packet protection specification (>=0) */ - int pprot_packno[JPWL_MAX_NO_PACKSPECS]; - /** error protection methods for packets (0,1,16,32,37-128) */ - int pprot[JPWL_MAX_NO_PACKSPECS]; - /** enables writing of ESD, (0/2/4 bytes) */ - int sens_size; - /** sensitivity addressing size (0=auto/2/4 bytes) */ - int sens_addr; - /** sensitivity range (0-3) */ - int sens_range; - /** sensitivity method for MH (-1,0-7) */ - int sens_MH; - /** tile number of sensitivity specification (>=0) */ - int sens_TPH_tileno[JPWL_MAX_NO_TILESPECS]; - /** sensitivity methods for TPHs (-1,0-7) */ - int sens_TPH[JPWL_MAX_NO_TILESPECS]; - /** enables JPWL correction at the decoder */ - bool correct; - /** expected number of components at the decoder */ - int exp_comps; - /** maximum number of tiles at the decoder */ - int max_tiles; -#endif /* USE_JPWL */ -/* <cp. -@param j2k J2K decompressor handle -@param parameters decompression parameters -*/ -void j2k_setup_decoder(opj_j2k_t *j2k, opj_dparameters_t *parameters); -/** -Decode an image from a JPEG-2000 codestream -@param j2k J2K decompressor handle -@param cio Input buffer stream -@param cstr_info Codestream information structure if required, NULL otherwise -@return Returns a decoded image if successful, returns NULL otherwise -*/ -opj_image_t* j2k_decode(opj_j2k_t *j2k, opj_cio_t *cio, opj_codestream_info_t *cstr_info); -/** -Decode an image form a JPT-stream (JPEG 2000, JPIP) -@param j2k J2K decompressor handle -@param cio Input buffer stream -@param cstr_info Codestream information structure if required, NULL otherwise -@return Returns a decoded image if successful, returns NULL otherwise -*/ -opj_image_t* j2k_decode_jpt_stream(opj_j2k_t *j2k, opj_cio_t *cio, opj_codestream_info_t *cstr_info); -/** -Creates a J2K compression structure -@param cinfo Codec context info -@return Returns a handle to a J2K compressor if successful, returns NULL otherwise -*/ -opj_j2k_t* j2k_create_compress(opj_common_ptr cinfo); -/** -Destroy a J2K compressor handle -@param j2k J2K compressor handle to destroy -*/ -void j2k_destroy_compress(opj_j2k_t *j2k); -/** -Setup the encoder parameters using the current image and using user parameters. -Coding parameters are returned in j2k->cp. -@param j2k J2K compressor handle -@param parameters compression parameters -@param image input filled image -*/ -void j2k_setup_encoder(opj_j2k_t *j2k, opj_cparameters_t *parameters, opj_image_t *image); -/** -Converts an enum type progression order to string type -*/ -char *j2k_convert_progression_order(OPJ_PROG_ORDER prg_order); -/** -Encode an image into a JPEG-2000 codestream -@param j2k J2K compressor handle -@param cio Output buffer stream -@param image Image to encode -@param cstr_info Codestream information structure if required, NULL otherwise -@return Returns true if successful, returns false otherwise -*/ -bool j2k_encode(opj_j2k_t *j2k, opj_cio_t *cio, opj_image_t *image, opj_codestream_info_t *cstr_info); - -/* ----------------------------------------------------------------------- */ -/*@}*/ - -/*@}*/ - -#endif /* __J2K_H */ diff --git a/contrib/media/updf_newlib/include/j2k_lib.h b/contrib/media/updf_newlib/include/j2k_lib.h deleted file mode 100755 index 7df4d36775..0000000000 --- a/contrib/media/updf_newlib/include/j2k_lib.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) 2005, Hervé Drolon, FreeImage Team - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS' - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ -#ifndef __J2K_LIB_H -#define __J2K_LIB_H -/** -@file j2k_lib.h -@brief Internal functions - -The functions in J2K_LIB.C are internal utilities mainly used for timing. -*/ - -/** @defgroup MISC MISC - Miscellaneous internal functions */ -/*@{*/ - -/** @name Exported functions */ -/*@{*/ -/* ----------------------------------------------------------------------- */ - -/** -Difference in successive opj_clock() calls tells you the elapsed time -@return Returns time in seconds -*/ -double opj_clock(void); - -/* ----------------------------------------------------------------------- */ -/*@}*/ - -/*@}*/ - -#endif /* __J2K_LIB_H */ - diff --git a/contrib/media/updf_newlib/include/jbig2.h b/contrib/media/updf_newlib/include/jbig2.h deleted file mode 100755 index c090516f6b..0000000000 --- a/contrib/media/updf_newlib/include/jbig2.h +++ /dev/null @@ -1,135 +0,0 @@ -/* - jbig2dec - - Copyright (C) 2002-2005 Artifex Software, Inc. - - This software is distributed under license and may not - be copied, modified or distributed except as expressly - authorized under the terms of the license contained in - the file LICENSE in this distribution. - - For further licensing information refer to http://artifex.com/ or - contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, - San Rafael, CA 94903, U.S.A., +1(415)492-9861. -*/ - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef _JBIG2_H -#define _JBIG2_H - -/* warning levels */ -typedef enum { - JBIG2_SEVERITY_DEBUG, - JBIG2_SEVERITY_INFO, - JBIG2_SEVERITY_WARNING, - JBIG2_SEVERITY_FATAL -} Jbig2Severity; - -typedef enum { - JBIG2_OPTIONS_EMBEDDED = 1 -} Jbig2Options; - -/* forward public structure declarations */ -typedef struct _Jbig2Allocator Jbig2Allocator; -typedef struct _Jbig2Ctx Jbig2Ctx; -typedef struct _Jbig2GlobalCtx Jbig2GlobalCtx; -typedef struct _Jbig2Segment Jbig2Segment; -typedef struct _Jbig2Image Jbig2Image; - -/* private structures */ -typedef struct _Jbig2Page Jbig2Page; -typedef struct _Jbig2SymbolDictionary Jbig2SymbolDictionary; - -/* - this is the general image structure used by the jbig2dec library - images are 1 bpp, packed into rows a byte at a time. stride gives - the byte offset to the next row, while width and height define - the size of the image area in pixels. -*/ - -struct _Jbig2Image { - int width, height, stride; - uint8_t *data; - int refcount; -}; - -Jbig2Image* jbig2_image_new(Jbig2Ctx *ctx, int width, int height); -Jbig2Image* jbig2_image_clone(Jbig2Ctx *ctx, Jbig2Image *image); -void jbig2_image_release(Jbig2Ctx *ctx, Jbig2Image *image); -void jbig2_image_free(Jbig2Ctx *ctx, Jbig2Image *image); -void jbig2_image_clear(Jbig2Ctx *ctx, Jbig2Image *image, int value); -Jbig2Image *jbig2_image_resize(Jbig2Ctx *ctx, Jbig2Image *image, - int width, int height); - -/* errors are returned from the library via a callback. If no callback - is provided (a NULL argument is passed ot jbig2_ctx_new) a default - handler is used which prints fatal errors to the stderr stream. */ - -/* error callback */ -typedef int (*Jbig2ErrorCallback) (void *data, - const char *msg, Jbig2Severity severity, - int32_t seg_idx); - -/* memory allocation is likewise done via a set of callbacks so that - clients can better control memory usage. If a NULL is passed for - this argumennt of jbig2_ctx_new, a default allocator based on malloc() - is used. */ - -/* dynamic memory callbacks */ -struct _Jbig2Allocator { - void *(*alloc) (Jbig2Allocator *allocator, size_t size); - void (*free) (Jbig2Allocator *allocator, void *p); - void *(*realloc) (Jbig2Allocator *allocator, void *p, size_t size); -}; - -/* decoder context */ -Jbig2Ctx *jbig2_ctx_new (Jbig2Allocator *allocator, - Jbig2Options options, - Jbig2GlobalCtx *global_ctx, - Jbig2ErrorCallback error_callback, - void *error_callback_data); -void jbig2_ctx_free (Jbig2Ctx *ctx); - -/* global context for embedded streams */ -Jbig2GlobalCtx *jbig2_make_global_ctx (Jbig2Ctx *ctx); -void jbig2_global_ctx_free (Jbig2GlobalCtx *global_ctx); - -/* submit data to the decoder */ -int jbig2_data_in (Jbig2Ctx *ctx, const unsigned char *data, size_t size); - -/* get the next available decoded page image. NULL means there isn't one. */ -Jbig2Image *jbig2_page_out (Jbig2Ctx *ctx); -/* mark a returned page image as no longer needed. */ -int jbig2_release_page (Jbig2Ctx *ctx, Jbig2Image *image); -/* mark the current page as complete, simulating an end-of-page segment (for broken streams) */ -int jbig2_complete_page (Jbig2Ctx *ctx); - - -/* segment header routines */ - -struct _Jbig2Segment { - uint32_t number; - uint8_t flags; - uint32_t page_association; - size_t data_length; - int referred_to_segment_count; - uint32_t *referred_to_segments; - void *result; -}; - -Jbig2Segment *jbig2_parse_segment_header (Jbig2Ctx *ctx, uint8_t *buf, size_t buf_size, - size_t *p_header_size); -int jbig2_parse_segment (Jbig2Ctx *ctx, Jbig2Segment *segment, - const uint8_t *segment_data); -void jbig2_free_segment (Jbig2Ctx *ctx, Jbig2Segment *segment); - -Jbig2Segment *jbig2_find_segment(Jbig2Ctx *ctx, uint32_t number); - -#endif /* _JBIG2_H */ - -#ifdef __cplusplus -} -#endif diff --git a/contrib/media/updf_newlib/include/jbig2_arith.h b/contrib/media/updf_newlib/include/jbig2_arith.h deleted file mode 100755 index 317878f57b..0000000000 --- a/contrib/media/updf_newlib/include/jbig2_arith.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - jbig2dec - - Copyright (C) 2001 Artifex Software, Inc. - - This software is distributed under license and may not - be copied, modified or distributed except as expressly - authorized under the terms of the license contained in - the file LICENSE in this distribution. - - For further licensing information refer to http://artifex.com/ or - contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, - San Rafael, CA 94903, U.S.A., +1(415)492-9861. -*/ - -typedef struct _Jbig2ArithState Jbig2ArithState; - -/* An arithmetic coding context is stored as a single byte, with the - index in the low order 7 bits (actually only 6 are used), and the - MPS in the top bit. */ -typedef unsigned char Jbig2ArithCx; - -/* allocate and initialize a new arithmetic coding state */ -Jbig2ArithState * -jbig2_arith_new (Jbig2Ctx *ctx, Jbig2WordStream *ws); - -/* decode a bit */ -bool -jbig2_arith_decode (Jbig2ArithState *as, Jbig2ArithCx *pcx); - - diff --git a/contrib/media/updf_newlib/include/jbig2_arith_iaid.h b/contrib/media/updf_newlib/include/jbig2_arith_iaid.h deleted file mode 100755 index c04f898a81..0000000000 --- a/contrib/media/updf_newlib/include/jbig2_arith_iaid.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - jbig2dec - - Copyright (C) 2001 Artifex Software, Inc. - - This software is distributed under license and may not - be copied, modified or distributed except as expressly - authorized under the terms of the license contained in - the file LICENSE in this distribution. - - For further licensing information refer to http://artifex.com/ or - contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, - San Rafael, CA 94903, U.S.A., +1(415)492-9861. -*/ - -typedef struct _Jbig2ArithIaidCtx Jbig2ArithIaidCtx; - -Jbig2ArithIaidCtx * -jbig2_arith_iaid_ctx_new(Jbig2Ctx *ctx, int SBSYMCODELEN); - -int -jbig2_arith_iaid_decode(Jbig2ArithIaidCtx *ctx, Jbig2ArithState *as, - int32_t *p_result); - -void -jbig2_arith_iaid_ctx_free(Jbig2Ctx *ctx, Jbig2ArithIaidCtx *iax); diff --git a/contrib/media/updf_newlib/include/jbig2_arith_int.h b/contrib/media/updf_newlib/include/jbig2_arith_int.h deleted file mode 100755 index 3d3cb3f9c1..0000000000 --- a/contrib/media/updf_newlib/include/jbig2_arith_int.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - jbig2dec - - Copyright (C) 2001 Artifex Software, Inc. - - This software is distributed under license and may not - be copied, modified or distributed except as expressly - authorized under the terms of the license contained in - the file LICENSE in this distribution. - - For further licensing information refer to http://artifex.com/ or - contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, - San Rafael, CA 94903, U.S.A., +1(415)492-9861. -*/ - -typedef struct _Jbig2ArithIntCtx Jbig2ArithIntCtx; - -Jbig2ArithIntCtx * -jbig2_arith_int_ctx_new(Jbig2Ctx *ctx); - -int -jbig2_arith_int_decode(Jbig2ArithIntCtx *ctx, Jbig2ArithState *as, - int32_t *p_result); - -void -jbig2_arith_int_ctx_free(Jbig2Ctx *ctx, Jbig2ArithIntCtx *iax); diff --git a/contrib/media/updf_newlib/include/jbig2_generic.h b/contrib/media/updf_newlib/include/jbig2_generic.h deleted file mode 100755 index 9111cf7d39..0000000000 --- a/contrib/media/updf_newlib/include/jbig2_generic.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - jbig2dec - - Copyright (C) 2002-2004 Artifex Software, Inc. - - This software is distributed under license and may not - be copied, modified or distributed except as expressly - authorized under the terms of the license contained in - the file LICENSE in this distribution. - - For further licensing information refer to http://artifex.com/ or - contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, - San Rafael, CA 94903, U.S.A., +1(415)492-9861. -*/ - -/** - * Headers for Generic and Generic Refinement region handling - **/ - -/* 6.4 Table 2 */ -typedef struct { - bool MMR; - /* GBW */ - /* GBH */ - int GBTEMPLATE; - bool TPGDON; - bool USESKIP; - /* SKIP */ - int8_t gbat[8]; -} Jbig2GenericRegionParams; - -/* return the appropriate context size for the given template */ -int -jbig2_generic_stats_size(Jbig2Ctx *ctx, int template); - -int -jbig2_decode_generic_region(Jbig2Ctx *ctx, - Jbig2Segment *segment, - const Jbig2GenericRegionParams *params, - Jbig2ArithState *as, - Jbig2Image *image, - Jbig2ArithCx *GB_stats); - - -/* 6.3 Table 6 */ -typedef struct { - /* GRW */ - /* GRH */ - bool GRTEMPLATE; - Jbig2Image *reference; - int32_t DX, DY; - bool TPGRON; - int8_t grat[4]; -} Jbig2RefinementRegionParams; - -int -jbig2_decode_refinement_region(Jbig2Ctx *ctx, - Jbig2Segment *segment, - const Jbig2RefinementRegionParams *params, - Jbig2ArithState *as, - Jbig2Image *image, - Jbig2ArithCx *GB_stats); diff --git a/contrib/media/updf_newlib/include/jbig2_huffman.h b/contrib/media/updf_newlib/include/jbig2_huffman.h deleted file mode 100755 index fb9b9f41d6..0000000000 --- a/contrib/media/updf_newlib/include/jbig2_huffman.h +++ /dev/null @@ -1,105 +0,0 @@ -/* - jbig2dec - - Copyright (C) 2001-2005 Artifex Software, Inc. - - This software is distributed under license and may not - be copied, modified or distributed except as expressly - authorized under the terms of the license contained in - the file LICENSE in this distribution. - - For further licensing information refer to http://artifex.com/ or - contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, - San Rafael, CA 94903, U.S.A., +1(415)492-9861. -*/ - -#ifndef JBIG2_HUFFMAN_H -#define JBIG2_HUFFMAN_H - -/* Huffman coder interface */ - -typedef struct _Jbig2HuffmanEntry Jbig2HuffmanEntry; -typedef struct _Jbig2HuffmanState Jbig2HuffmanState; -typedef struct _Jbig2HuffmanTable Jbig2HuffmanTable; -typedef struct _Jbig2HuffmanParams Jbig2HuffmanParams; - -struct _Jbig2HuffmanEntry { - union { - int32_t RANGELOW; - Jbig2HuffmanTable *ext_table; - } u; - byte PREFLEN; - byte RANGELEN; - byte flags; -}; - -struct _Jbig2HuffmanTable { - int log_table_size; - Jbig2HuffmanEntry *entries; -}; - -typedef struct _Jbig2HuffmanLine Jbig2HuffmanLine; - -struct _Jbig2HuffmanLine { - int PREFLEN; - int RANGELEN; - int RANGELOW; -}; - -struct _Jbig2HuffmanParams { - bool HTOOB; - int n_lines; - const Jbig2HuffmanLine *lines; -}; - -Jbig2HuffmanState * -jbig2_huffman_new (Jbig2Ctx *ctx, Jbig2WordStream *ws); - -void -jbig2_huffman_free (Jbig2Ctx *ctx, Jbig2HuffmanState *hs); - -void -jbig2_huffman_skip(Jbig2HuffmanState *hs); - -void jbig2_huffman_advance(Jbig2HuffmanState *hs, int offset); - -int -jbig2_huffman_offset(Jbig2HuffmanState *hs); - -int32_t -jbig2_huffman_get (Jbig2HuffmanState *hs, - const Jbig2HuffmanTable *table, bool *oob); - -int32_t -jbig2_huffman_get_bits (Jbig2HuffmanState *hs, const int bits); - -#ifdef JBIG2_DEBUG -void jbig2_dump_huffman_state(Jbig2HuffmanState *hs); -void jbig2_dump_huffman_binary(Jbig2HuffmanState *hs); -#endif - -Jbig2HuffmanTable * -jbig2_build_huffman_table (Jbig2Ctx *ctx, const Jbig2HuffmanParams *params); - -void -jbig2_release_huffman_table (Jbig2Ctx *ctx, Jbig2HuffmanTable *table); - -/* standard Huffman templates defined by the specification */ -extern const Jbig2HuffmanParams jbig2_huffman_params_A; /* Table B.1 */ -extern const Jbig2HuffmanParams jbig2_huffman_params_B; /* Table B.2 */ -extern const Jbig2HuffmanParams jbig2_huffman_params_C; /* Table B.3 */ -extern const Jbig2HuffmanParams jbig2_huffman_params_D; /* Table B.4 */ -extern const Jbig2HuffmanParams jbig2_huffman_params_E; /* Table B.5 */ -extern const Jbig2HuffmanParams jbig2_huffman_params_F; /* Table B.6 */ -extern const Jbig2HuffmanParams jbig2_huffman_params_G; /* Table B.7 */ -extern const Jbig2HuffmanParams jbig2_huffman_params_H; /* Table B.8 */ -extern const Jbig2HuffmanParams jbig2_huffman_params_I; /* Table B.9 */ -extern const Jbig2HuffmanParams jbig2_huffman_params_J; /* Table B.10 */ -extern const Jbig2HuffmanParams jbig2_huffman_params_K; /* Table B.11 */ -extern const Jbig2HuffmanParams jbig2_huffman_params_L; /* Table B.12 */ -extern const Jbig2HuffmanParams jbig2_huffman_params_M; /* Table B.13 */ -extern const Jbig2HuffmanParams jbig2_huffman_params_N; /* Table B.14 */ -extern const Jbig2HuffmanParams jbig2_huffman_params_O; /* Table B.15 */ - - -#endif /* JBIG2_HUFFMAN_H */ diff --git a/contrib/media/updf_newlib/include/jbig2_hufftab.h b/contrib/media/updf_newlib/include/jbig2_hufftab.h deleted file mode 100755 index c8a967ac41..0000000000 --- a/contrib/media/updf_newlib/include/jbig2_hufftab.h +++ /dev/null @@ -1,335 +0,0 @@ -/* - jbig2dec - - Copyright (C) 2001-2005 Artifex Software, Inc. - - This software is distributed under license and may not - be copied, modified or distributed except as expressly - authorized under the terms of the license contained in - the file LICENSE in this distribution. - - For further licensing information refer to http://artifex.com/ or - contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, - San Rafael, CA 94903, U.S.A., +1(415)492-9861. -*/ - -/* predefined Huffman table definitions - -- See Annex B of the JBIG2 specification */ - -#ifndef JBIG2_HUFFTAB_H -#define JBIG2_HUFFTAB_H - -/* types are in jbig2_huffman.h, you must include that first */ - - -/* Table B.1 */ -const Jbig2HuffmanLine -jbig2_huffman_lines_A[] = { - { 1, 4, 0 }, - { 2, 8, 16 }, - { 3, 16, 272 }, - { 0, 32, -1 }, /* low */ - { 3, 32, 65808 } /* high */ -}; - -const Jbig2HuffmanParams -jbig2_huffman_params_A = { FALSE, 5, jbig2_huffman_lines_A }; - -/* Table B.2 */ -const Jbig2HuffmanLine -jbig2_huffman_lines_B[] = { - { 1, 0, 0 }, - { 2, 0, 1 }, - { 3, 0, 2 }, - { 4, 3, 3 }, - { 5, 6, 11 }, - { 0, 32, -1 }, /* low */ - { 6, 32, 75 }, /* high */ - { 6, 0, 0 } -}; - -const Jbig2HuffmanParams -jbig2_huffman_params_B = { TRUE, 8, jbig2_huffman_lines_B }; - -/* Table B.3 */ -const Jbig2HuffmanLine -jbig2_huffman_lines_C[] = { - { 8, 8, -256 }, - { 1, 0, 0 }, - { 2, 0, 1 }, - { 3, 0, 2 }, - { 4, 3, 3 }, - { 5, 6, 11 }, - { 8, 32, -257 }, /* low */ - { 7, 32, 75 }, /* high */ - { 6, 0, 0 } /* OOB */ -}; - -const Jbig2HuffmanParams -jbig2_huffman_params_C = { TRUE, 9, jbig2_huffman_lines_C }; - -/* Table B.4 */ -const Jbig2HuffmanLine -jbig2_huffman_lines_D[] = { - { 1, 0, 1 }, - { 2, 0, 2 }, - { 3, 0, 3 }, - { 4, 3, 4 }, - { 5, 6, 12 }, - { 0, 32, -1 }, /* low */ - { 5, 32, 76 }, /* high */ -}; - -const Jbig2HuffmanParams -jbig2_huffman_params_D = { FALSE, 7, jbig2_huffman_lines_D }; - -/* Table B.5 */ -const Jbig2HuffmanLine -jbig2_huffman_lines_E[] = { - {7, 8, -255}, - {1, 0, 1}, - {2, 0, 2}, - {3, 0, 3}, - {4, 3, 4}, - {5, 6, 12}, - {7, 32, -256}, /* low */ - {6, 32, 76} /* high */ -}; - -const Jbig2HuffmanParams -jbig2_huffman_params_E = { FALSE, 8, jbig2_huffman_lines_E }; - -/* Table B.6 */ -const Jbig2HuffmanLine -jbig2_huffman_lines_F[] = { - {5, 10, -2048}, - {4, 9, -1024}, - {4, 8, -512}, - {4, 7, -256}, - {5, 6, -128}, - {5, 5, -64}, - {4, 5, -32}, - {2, 7, 0}, - {3, 7, 128}, - {3, 8, 256}, - {4, 9, 512}, - {4, 10, 1024}, - {6, 32, -2049}, /* low */ - {6, 32, 2048} /* high */ -}; - -const Jbig2HuffmanParams -jbig2_huffman_params_F = { FALSE, 14, jbig2_huffman_lines_F }; - -/* Table B.7 */ -const Jbig2HuffmanLine -jbig2_huffman_lines_G[] = { - {4, 9, -1024}, - {3, 8, -512}, - {4, 7, -256}, - {5, 6, -128}, - {5, 5, -64}, - {4, 5, -32}, - {4, 5, 0}, - {5, 5, 32}, - {5, 6, 64}, - {4, 7, 128}, - {3, 8, 256}, - {3, 9, 512}, - {3, 10, 1024}, - {5, 32, -1025}, /* low */ - {5, 32, 2048} /* high */ -}; - -const Jbig2HuffmanParams -jbig2_huffman_params_G = { FALSE, 15, jbig2_huffman_lines_G }; - -/* Table B.8 */ -const Jbig2HuffmanLine -jbig2_huffman_lines_H[] = { - {8, 3, -15}, - {9, 1, -7}, - {8, 1, -5}, - {9, 0, -3}, - {7, 0, -2}, - {4, 0, -1}, - {2, 1, 0}, - {5, 0, 2}, - {6, 0, 3}, - {3, 4, 4}, - {6, 1, 20}, - {4, 4, 22}, - {4, 5, 38}, - {5, 6, 70}, - {5, 7, 134}, - {6, 7, 262}, - {7, 8, 390}, - {6, 10, 646}, - {9, 32, -16}, /* low */ - {9, 32, 1670}, /* high */ - {2, 0, 0} /* OOB */ -}; - -const Jbig2HuffmanParams -jbig2_huffman_params_H = { TRUE, 21, jbig2_huffman_lines_H }; - -/* Table B.9 */ -const Jbig2HuffmanLine -jbig2_huffman_lines_I[] = { - {8, 4, -31}, - {9, 2, -15}, - {8, 2, -11}, - {9, 1, -7}, - {7, 1, -5}, - {4, 1, -3}, - {3, 1, -1}, - {3, 1, 1}, - {5, 1, 3}, - {6, 1, 5}, - {3, 5, 7}, - {6, 2, 39}, - {4, 5, 43}, - {4, 6, 75}, - {5, 7, 139}, - {5, 8, 267}, - {6, 8, 523}, - {7, 9, 779}, - {6, 11, 1291}, - {9, 32, -32}, /* low */ - {9, 32, 3339}, /* high */ - {2, 0, 0} /* OOB */ -}; - -const Jbig2HuffmanParams -jbig2_huffman_params_I = { TRUE, 22, jbig2_huffman_lines_I }; - -/* Table B.10 */ -const Jbig2HuffmanLine -jbig2_huffman_lines_J[] = { - {7, 4, -21}, - {8, 0, -5}, - {7, 0, -4}, - {5, 0, -3}, - {2, 2, -2}, - {5, 0, 2}, - {6, 0, 3}, - {7, 0, 4}, - {8, 0, 5}, - {2, 6, 6}, - {5, 5, 70}, - {6, 5, 102}, - {6, 6, 134}, - {6, 7, 198}, - {6, 8, 326}, - {6, 9, 582}, - {6, 10, 1094}, - {7, 11, 2118}, - {8, 32, -22}, /* low */ - {8, 32, 4166}, /* high */ - {2, 0, 0} /* OOB */ -}; - -const Jbig2HuffmanParams -jbig2_huffman_params_J = { TRUE, 21, jbig2_huffman_lines_J }; - -/* Table B.11 */ -const Jbig2HuffmanLine -jbig2_huffman_lines_K[] = { - {1, 0, 1}, - {2, 1, 2}, - {4, 0, 3}, - {4, 1, 5}, - {5, 1, 7}, - {5, 2, 9}, - {6, 2, 13}, - {7, 2, 17}, - {7, 3, 21}, - {7, 4, 29}, - {7, 5, 45}, - {7, 6, 77}, - {7, 32, 141} /* high */ -}; - -const Jbig2HuffmanParams -jbig2_huffman_params_K = { FALSE, 13, jbig2_huffman_lines_K }; - -/* Table B.12 */ -const Jbig2HuffmanLine -jbig2_huffman_lines_L[] = { - {1, 0, 1}, - {2, 0, 2}, - {3, 1, 3}, - {5, 0, 5}, - {5, 1, 6}, - {6, 1, 8}, - {7, 0, 10}, - {7, 1, 11}, - {7, 2, 13}, - {7, 3, 17}, - {7, 4, 25}, - {8, 5, 41}, - {8, 32, 73} -}; - -const Jbig2HuffmanParams -jbig2_huffman_params_L = { FALSE, 13, jbig2_huffman_lines_L }; - - -/* Table B.13 */ -const Jbig2HuffmanLine -jbig2_huffman_lines_M[] = { - {1, 0, 1}, - {3, 0, 2}, - {4, 0, 3}, - {5, 0, 4}, - {4, 1, 5}, - {3, 3, 7}, - {6, 1, 15}, - {6, 2, 17}, - {6, 3, 21}, - {6, 4, 29}, - {6, 5, 45}, - {7, 6, 77}, - {7, 32, 141} /* high */ -}; - -const Jbig2HuffmanParams -jbig2_huffman_params_M = { FALSE, 13, jbig2_huffman_lines_M }; - -/* Table B.14 */ -const Jbig2HuffmanLine -jbig2_huffman_lines_N[] = { - { 3, 0, -2 }, - { 3, 0, -1 }, - { 1, 0, 0 }, - { 3, 3, 1 }, - { 3, 6, 2 }, - { 0, 32, -1 }, /* low */ - { 0, 32, 3 }, /* high */ -}; - -const Jbig2HuffmanParams -jbig2_huffman_params_N = { FALSE, 7, jbig2_huffman_lines_N }; - -/* Table B.15 */ -const Jbig2HuffmanLine -jbig2_huffman_lines_O[] = { - {7, 4, -24}, - {6, 2, -8}, - {5, 1, -4}, - {4, 0, -2}, - {3, 0, -1}, - {1, 0, 0}, - {3, 0, 1}, - {4, 0, 2}, - {5, 1, 3}, - {6, 2, 5}, - {7, 4, 9}, - {7, 32, -25}, /* low */ - {7, 32, 25} /* high */ -}; - -const Jbig2HuffmanParams -jbig2_huffman_params_O = { FALSE, 13, jbig2_huffman_lines_O }; - -#endif /* JBIG2_HUFFTAB_H */ diff --git a/contrib/media/updf_newlib/include/jbig2_image.h b/contrib/media/updf_newlib/include/jbig2_image.h deleted file mode 100755 index a09e368208..0000000000 --- a/contrib/media/updf_newlib/include/jbig2_image.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - jbig2dec - - Copyright (C) 2001-2002 Artifex Software, Inc. - - This software is distributed under license and may not - be copied, modified or distributed except as expressly - authorized under the terms of the license contained in - the file LICENSE in this distribution. - - For further licensing information refer to http://artifex.com/ or - contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, - San Rafael, CA 94903, U.S.A., +1(415)492-9861. -*/ - - -#ifndef _JBIG2_IMAGE_H -#define _JBIG2_IMAGE_H - -int jbig2_image_get_pixel(Jbig2Image *image, int x, int y); -int jbig2_image_set_pixel(Jbig2Image *image, int x, int y, int value); - -/* routines for dumping the image data in various formats */ -/* FIXME: should these be in the client instead? */ - -#include - -int jbig2_image_write_pbm_file(Jbig2Image *image, char *filename); -int jbig2_image_write_pbm(Jbig2Image *image, FILE *out); -Jbig2Image *jbig2_image_read_pbm_file(Jbig2Ctx *ctx, char *filename); -Jbig2Image *jbig2_image_read_pbm(Jbig2Ctx *ctx, FILE *in); - -#ifdef HAVE_LIBPNG -int jbig2_image_write_png_file(Jbig2Image *image, char *filename); -int jbig2_image_write_png(Jbig2Image *image, FILE *out); -#endif - -#endif /* _JBIG2_IMAGE_H */ diff --git a/contrib/media/updf_newlib/include/jbig2_metadata.h b/contrib/media/updf_newlib/include/jbig2_metadata.h deleted file mode 100755 index d61acab758..0000000000 --- a/contrib/media/updf_newlib/include/jbig2_metadata.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - jbig2dec - - Copyright (C) 2003 Artifex Software, Inc. - - This software is distributed under license and may not - be copied, modified or distributed except as expressly - authorized under the terms of the license contained in - the file LICENSE in this distribution. - - For further licensing information refer to http://artifex.com/ or - contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, - San Rafael, CA 94903, U.S.A., +1(415)492-9861. -*/ - - -#ifndef _JBIG2_METADATA_H -#define _JBIG2_METADATA_H - -/* metadata from extension segments */ - -/* these bits should be moved to jbig2.h for public access */ -typedef enum { - JBIG2_ENCODING_ASCII, - JBIG2_ENCODING_UCS16 -} Jbig2Encoding; - -typedef struct _Jbig2Metadata Jbig2Metadata; - -Jbig2Metadata *jbig2_metadata_new(Jbig2Ctx *ctx, Jbig2Encoding encoding); -void jbig2_metadata_free(Jbig2Ctx *ctx, Jbig2Metadata *md); -int jbig2_metadata_add(Jbig2Ctx *ctx, Jbig2Metadata *md, - const char *key, const int key_length, - const char *value, const int value_length); - -struct _Jbig2Metadata { - Jbig2Encoding encoding; - char **keys, **values; - int entries, max_entries; -}; - -/* these bits can go to jbig2_priv.h */ -int jbig2_comment_ascii(Jbig2Ctx *ctx, Jbig2Segment *segment, - const uint8_t *segment_data); -int jbig2_comment_unicode(Jbig2Ctx *ctx, Jbig2Segment *segment, - const uint8_t *segment_data); - -#endif /* _JBIG2_METADATA_H */ diff --git a/contrib/media/updf_newlib/include/jbig2_mmr.h b/contrib/media/updf_newlib/include/jbig2_mmr.h deleted file mode 100755 index cde4ec6897..0000000000 --- a/contrib/media/updf_newlib/include/jbig2_mmr.h +++ /dev/null @@ -1,22 +0,0 @@ -/* - jbig2dec - - Copyright (C) 2001 Artifex Software, Inc. - - This software is distributed under license and may not - be copied, modified or distributed except as expressly - authorized under the terms of the license contained in - the file LICENSE in this distribution. - - For further licensing information refer to http://artifex.com/ or - contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, - San Rafael, CA 94903, U.S.A., +1(415)492-9861. -*/ - -int -jbig2_decode_generic_mmr(Jbig2Ctx *ctx, - Jbig2Segment *segment, - const Jbig2GenericRegionParams *params, - const byte *data, size_t size, - Jbig2Image *image); - diff --git a/contrib/media/updf_newlib/include/jbig2_priv.h b/contrib/media/updf_newlib/include/jbig2_priv.h deleted file mode 100755 index cf617ed068..0000000000 --- a/contrib/media/updf_newlib/include/jbig2_priv.h +++ /dev/null @@ -1,177 +0,0 @@ -/* - jbig2dec - - Copyright (C) 2002 Artifex Software, Inc. - - This software is distributed under license and may not - be copied, modified or distributed except as expressly - authorized under the terms of the license contained in - the file LICENSE in this distribution. - - For further licensing information refer to http://artifex.com/ or - contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, - San Rafael, CA 94903, U.S.A., +1(415)492-9861. -*/ - -/* library internals */ - -typedef uint8_t byte; -typedef int bool; - -#ifndef TRUE -#define TRUE 1 -#endif -#ifndef FALSE -#define FALSE 0 -#endif - -#ifndef NULL -#define NULL ((void*)0) -#endif - -typedef enum { - JBIG2_FILE_HEADER, - JBIG2_FILE_SEQUENTIAL_HEADER, - JBIG2_FILE_SEQUENTIAL_BODY, - JBIG2_FILE_RANDOM_HEADERS, - JBIG2_FILE_RANDOM_BODIES, - JBIG2_FILE_EOF -} Jbig2FileState; - -struct _Jbig2Ctx { - Jbig2Allocator *allocator; - Jbig2Options options; - const Jbig2Ctx *global_ctx; - Jbig2ErrorCallback error_callback; - void *error_callback_data; - - byte *buf; - size_t buf_size; - unsigned int buf_rd_ix; - unsigned int buf_wr_ix; - - Jbig2FileState state; - - uint8_t file_header_flags; - int32_t n_pages; - - int n_segments_max; - Jbig2Segment **segments; - int n_segments; /* index of last segment header parsed */ - int segment_index; /* index of last segment body parsed */ - - /* list of decoded pages, including the one in progress, - currently stored as a contiguous, 0-indexed array. */ - int current_page; - int max_page_index; - Jbig2Page *pages; -}; - -int32_t -jbig2_get_int32 (const byte *buf); - -int16_t -jbig2_get_int16 (const byte *buf); - -/* dynamic memory management */ -void * -jbig2_alloc (Jbig2Allocator *allocator, size_t size); - -void -jbig2_free (Jbig2Allocator *allocator, void *p); - -void * -jbig2_realloc (Jbig2Allocator *allocator, void *p, size_t size); - -#define jbig2_new(ctx, t, size) ((t *)jbig2_alloc(ctx->allocator, (size) * sizeof(t))) - -#define jbig2_renew(ctx, p, t, size) ((t *)jbig2_realloc(ctx->allocator, (p), (size) * sizeof(t))) - -int -jbig2_error (Jbig2Ctx *ctx, Jbig2Severity severity, int32_t seg_idx, - const char *fmt, ...); - -/* the page structure handles decoded page - results. it's allocated by a 'page info' - segement and marked complete by an 'end of page' - segment. -*/ -typedef enum { - JBIG2_PAGE_FREE, - JBIG2_PAGE_NEW, - JBIG2_PAGE_COMPLETE, - JBIG2_PAGE_RETURNED, - JBIG2_PAGE_RELEASED -} Jbig2PageState; - -struct _Jbig2Page { - Jbig2PageState state; - uint32_t number; - uint32_t height, width; /* in pixels */ - uint32_t x_resolution, - y_resolution; /* in pixels per meter */ - uint16_t stripe_size; - bool striped; - int end_row; - uint8_t flags; - Jbig2Image *image; -}; - -int jbig2_page_info (Jbig2Ctx *ctx, Jbig2Segment *segment, const uint8_t *segment_data); -int jbig2_end_of_stripe(Jbig2Ctx *ctx, Jbig2Segment *segment, const uint8_t *segment_data); -int jbig2_end_of_page(Jbig2Ctx *ctx, Jbig2Segment *segment, const uint8_t *segment_data); -int jbig2_extension_segment(Jbig2Ctx *ctx, Jbig2Segment *segment, const uint8_t *segment_data); - -typedef enum { - JBIG2_COMPOSE_OR = 0, - JBIG2_COMPOSE_AND = 1, - JBIG2_COMPOSE_XOR = 2, - JBIG2_COMPOSE_XNOR = 3, - JBIG2_COMPOSE_REPLACE = 4 -} Jbig2ComposeOp; - -int jbig2_image_compose(Jbig2Ctx *ctx, Jbig2Image *dst, Jbig2Image *src, int x, int y, Jbig2ComposeOp op); -int jbig2_page_add_result(Jbig2Ctx *ctx, Jbig2Page *page, Jbig2Image *src, int x, int y, Jbig2ComposeOp op); - -/* region segment info */ - -typedef struct { - int32_t width; - int32_t height; - int32_t x; - int32_t y; - Jbig2ComposeOp op; - uint8_t flags; -} Jbig2RegionSegmentInfo; - -void jbig2_get_region_segment_info(Jbig2RegionSegmentInfo *info, const uint8_t *segment_data); -int jbig2_text_region(Jbig2Ctx *ctx, Jbig2Segment *segment, const uint8_t *segment_data); - -/* 7.4 */ -int jbig2_immediate_generic_region(Jbig2Ctx *ctx, Jbig2Segment *segment, - const uint8_t *segment_data); -int jbig2_refinement_region(Jbig2Ctx *ctx, Jbig2Segment *segment, - const byte *segment_data); - -int jbig2_pattern_dictionary(Jbig2Ctx *ctx, Jbig2Segment *segment, - const byte *segment_data); -int jbig2_halftone_region(Jbig2Ctx *ctx, Jbig2Segment *segment, - const byte *segment_data); - - -/* The word stream design is a compromise between simplicity and - trying to amortize the number of method calls. Each ::get_next_word - invocation pulls 4 bytes from the stream, packed big-endian into a - 32 bit word. The offset argument is provided as a convenience. It - begins at 0 and increments by 4 for each successive invocation. */ -typedef struct _Jbig2WordStream Jbig2WordStream; - -struct _Jbig2WordStream { - uint32_t (*get_next_word) (Jbig2WordStream *self, int offset); -}; - -Jbig2WordStream * -jbig2_word_stream_buf_new(Jbig2Ctx *ctx, const byte *data, size_t size); - -void -jbig2_word_stream_buf_free(Jbig2Ctx *ctx, Jbig2WordStream *ws); diff --git a/contrib/media/updf_newlib/include/jbig2_symbol_dict.h b/contrib/media/updf_newlib/include/jbig2_symbol_dict.h deleted file mode 100755 index a927758ce4..0000000000 --- a/contrib/media/updf_newlib/include/jbig2_symbol_dict.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - jbig2dec - - Copyright (C) 2001-2002 Artifex Software, Inc. - - This software is distributed under license and may not - be copied, modified or distributed except as expressly - authorized under the terms of the license contained in - the file LICENSE in this distribution. - - For further licensing information refer to http://artifex.com/ or - contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, - San Rafael, CA 94903, U.S.A., +1(415)492-9861. -*/ - -/* symbol dictionary header */ - -/* the results of decoding a symbol dictionary */ -typedef struct { - int n_symbols; - Jbig2Image **glyphs; -} Jbig2SymbolDict; - -/* decode a symbol dictionary segment and store the results */ -int -jbig2_symbol_dictionary(Jbig2Ctx *ctx, Jbig2Segment *segment, - const byte *segment_data); - -/* get a particular glyph by index */ -Jbig2Image * -jbig2_sd_glyph(Jbig2SymbolDict *dict, unsigned int id); - -/* return a new empty symbol dict */ -Jbig2SymbolDict * -jbig2_sd_new(Jbig2Ctx *ctx, int n_symbols); - -/* release the memory associated with a symbol dict */ -void -jbig2_sd_release(Jbig2Ctx *ctx, Jbig2SymbolDict *dict); - -/* generate a new symbol dictionary by concatenating a list of - existing dictionaries */ -Jbig2SymbolDict * -jbig2_sd_cat(Jbig2Ctx *ctx, int n_dicts, - Jbig2SymbolDict **dicts); - -/* count the number of dictionary segments referred - to by the given segment */ -int -jbig2_sd_count_referred(Jbig2Ctx *ctx, Jbig2Segment *segment); - -/* return an array of pointers to symbol dictionaries referred - to by a segment */ -Jbig2SymbolDict ** -jbig2_sd_list_referred(Jbig2Ctx *ctx, Jbig2Segment *segment); - diff --git a/contrib/media/updf_newlib/include/jbig2_text.h b/contrib/media/updf_newlib/include/jbig2_text.h deleted file mode 100755 index bf6fff33a3..0000000000 --- a/contrib/media/updf_newlib/include/jbig2_text.h +++ /dev/null @@ -1,73 +0,0 @@ -/* - jbig2dec - - Copyright (C) 2002-2004 Artifex Software, Inc. - - This software is distributed under license and may not - be copied, modified or distributed except as expressly - authorized under the terms of the license contained in - the file LICENSE in this distribution. - - For further licensing information refer to http://artifex.com/ or - contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, - San Rafael, CA 94903, U.S.A., +1(415)492-9861. -*/ - -/** - * Headers for Text region handling - **/ - -typedef enum { - JBIG2_CORNER_BOTTOMLEFT = 0, - JBIG2_CORNER_TOPLEFT = 1, - JBIG2_CORNER_BOTTOMRIGHT = 2, - JBIG2_CORNER_TOPRIGHT = 3 -} Jbig2RefCorner; - -typedef struct { - bool SBHUFF; - bool SBREFINE; - bool SBDEFPIXEL; - Jbig2ComposeOp SBCOMBOP; - bool TRANSPOSED; - Jbig2RefCorner REFCORNER; - int SBDSOFFSET; - /* int SBW; */ - /* int SBH; */ - uint32_t SBNUMINSTANCES; - int LOGSBSTRIPS; - int SBSTRIPS; - /* int SBNUMSYMS; */ - /* SBSYMCODES */ - /* SBSYMCODELEN */ - /* SBSYMS */ - Jbig2HuffmanTable *SBHUFFFS; - Jbig2HuffmanTable *SBHUFFDS; - Jbig2HuffmanTable *SBHUFFDT; - Jbig2HuffmanTable *SBHUFFRDW; - Jbig2HuffmanTable *SBHUFFRDH; - Jbig2HuffmanTable *SBHUFFRDX; - Jbig2HuffmanTable *SBHUFFRDY; - Jbig2HuffmanTable *SBHUFFRSIZE; - Jbig2ArithIntCtx *IADT; - Jbig2ArithIntCtx *IAFS; - Jbig2ArithIntCtx *IADS; - Jbig2ArithIntCtx *IAIT; - Jbig2ArithIaidCtx *IAID; - Jbig2ArithIntCtx *IARI; - Jbig2ArithIntCtx *IARDW; - Jbig2ArithIntCtx *IARDH; - Jbig2ArithIntCtx *IARDX; - Jbig2ArithIntCtx *IARDY; - bool SBRTEMPLATE; - int8_t sbrat[4]; -} Jbig2TextRegionParams; - -int -jbig2_decode_text_region(Jbig2Ctx *ctx, Jbig2Segment *segment, - const Jbig2TextRegionParams *params, - const Jbig2SymbolDict * const *dicts, const int n_dicts, - Jbig2Image *image, - const byte *data, const size_t size, - Jbig2ArithCx *GR_stats, - Jbig2ArithState *as, Jbig2WordStream *ws); diff --git a/contrib/media/updf_newlib/include/jconfig.h b/contrib/media/updf_newlib/include/jconfig.h deleted file mode 100755 index f759a9dbd6..0000000000 --- a/contrib/media/updf_newlib/include/jconfig.h +++ /dev/null @@ -1,38 +0,0 @@ -/* jconfig.dj --- jconfig.h for DJGPP (Delorie's GNU C port) on MS-DOS. */ -/* see jconfig.doc for explanations */ - -#define HAVE_PROTOTYPES -#define HAVE_UNSIGNED_CHAR -#define HAVE_UNSIGNED_SHORT -/* #define void char */ -/* #define const */ -#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 /* DJGPP uses flat 32-bit addressing */ -#undef NEED_SHORT_EXTERNAL_NAMES -#undef INCOMPLETE_TYPES_BROKEN - -#ifdef JPEG_INTERNALS - -#undef RIGHT_SHIFT_IS_UNSIGNED - -#endif /* JPEG_INTERNALS */ - -#ifdef JPEG_CJPEG_DJPEG - -#define BMP_SUPPORTED /* BMP image file format */ -#define GIF_SUPPORTED /* GIF image file format */ -#define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */ -#undef RLE_SUPPORTED /* Utah RLE image file format */ -#define TARGA_SUPPORTED /* Targa image file format */ - -#undef TWO_FILE_COMMANDLINE /* optional */ -#define USE_SETMODE /* Needed to make one-file style work in DJGPP */ -#undef NEED_SIGNAL_CATCHER /* Define this if you use jmemname.c */ -#undef DONT_USE_B_MODE -#undef PROGRESS_REPORT /* optional */ - -#endif /* JPEG_CJPEG_DJPEG */ diff --git a/contrib/media/updf_newlib/include/jmorecfg.h b/contrib/media/updf_newlib/include/jmorecfg.h deleted file mode 100755 index 54a7d1c447..0000000000 --- a/contrib/media/updf_newlib/include/jmorecfg.h +++ /dev/null @@ -1,363 +0,0 @@ -/* - * jmorecfg.h - * - * Copyright (C) 1991-1997, 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. - * - * This file contains additional configuration options that customize the - * JPEG software for special applications or support machine-dependent - * optimizations. Most users will not need to touch this file. - */ - - -/* - * Define BITS_IN_JSAMPLE as either - * 8 for 8-bit sample values (the usual setting) - * 12 for 12-bit sample values - * Only 8 and 12 are legal data precisions for lossy JPEG according to the - * JPEG standard, and the IJG code does not support anything else! - * We do not support run-time selection of data precision, sorry. - */ - -#define BITS_IN_JSAMPLE 8 /* use 8 or 12 */ - - -/* - * Maximum number of components (color channels) allowed in JPEG image. - * To meet the letter of the JPEG spec, set this to 255. However, darn - * few applications need more than 4 channels (maybe 5 for CMYK + alpha - * mask). We recommend 10 as a reasonable compromise; use 4 if you are - * really short on memory. (Each allowed component costs a hundred or so - * bytes of storage, whether actually used in an image or not.) - */ - -#define MAX_COMPONENTS 10 /* maximum number of image components */ - - -/* - * Basic data types. - * You may need to change these if you have a machine with unusual data - * type sizes; for example, "char" not 8 bits, "short" not 16 bits, - * or "long" not 32 bits. We don't care whether "int" is 16 or 32 bits, - * but it had better be at least 16. - */ - -/* Representation of a single sample (pixel element value). - * We frequently allocate large arrays of these, so it's important to keep - * them small. But if you have memory to burn and access to char or short - * arrays is very slow on your hardware, you might want to change these. - */ - -#if BITS_IN_JSAMPLE == 8 -/* JSAMPLE should be the smallest type that will hold the values 0..255. - * You can use a signed char by having GETJSAMPLE mask it with 0xFF. - */ - -#ifdef HAVE_UNSIGNED_CHAR - -typedef unsigned char JSAMPLE; -#define GETJSAMPLE(value) ((int) (value)) - -#else /* not HAVE_UNSIGNED_CHAR */ - -typedef char JSAMPLE; -#ifdef CHAR_IS_UNSIGNED -#define GETJSAMPLE(value) ((int) (value)) -#else -#define GETJSAMPLE(value) ((int) (value) & 0xFF) -#endif /* CHAR_IS_UNSIGNED */ - -#endif /* HAVE_UNSIGNED_CHAR */ - -#define MAXJSAMPLE 255 -#define CENTERJSAMPLE 128 - -#endif /* BITS_IN_JSAMPLE == 8 */ - - -#if BITS_IN_JSAMPLE == 12 -/* JSAMPLE should be the smallest type that will hold the values 0..4095. - * On nearly all machines "short" will do nicely. - */ - -typedef short JSAMPLE; -#define GETJSAMPLE(value) ((int) (value)) - -#define MAXJSAMPLE 4095 -#define CENTERJSAMPLE 2048 - -#endif /* BITS_IN_JSAMPLE == 12 */ - - -/* Representation of a DCT frequency coefficient. - * This should be a signed value of at least 16 bits; "short" is usually OK. - * Again, we allocate large arrays of these, but you can change to int - * if you have memory to burn and "short" is really slow. - */ - -typedef short JCOEF; - - -/* Compressed datastreams are represented as arrays of JOCTET. - * These must be EXACTLY 8 bits wide, at least once they are written to - * external storage. Note that when using the stdio data source/destination - * managers, this is also the data type passed to fread/fwrite. - */ - -#ifdef HAVE_UNSIGNED_CHAR - -typedef unsigned char JOCTET; -#define GETJOCTET(value) (value) - -#else /* not HAVE_UNSIGNED_CHAR */ - -typedef char JOCTET; -#ifdef CHAR_IS_UNSIGNED -#define GETJOCTET(value) (value) -#else -#define GETJOCTET(value) ((value) & 0xFF) -#endif /* CHAR_IS_UNSIGNED */ - -#endif /* HAVE_UNSIGNED_CHAR */ - - -/* These typedefs are used for various table entries and so forth. - * They must be at least as wide as specified; but making them too big - * won't cost a huge amount of memory, so we don't provide special - * extraction code like we did for JSAMPLE. (In other words, these - * typedefs live at a different point on the speed/space tradeoff curve.) - */ - -/* UINT8 must hold at least the values 0..255. */ - -#ifdef HAVE_UNSIGNED_CHAR -typedef unsigned char UINT8; -#else /* not HAVE_UNSIGNED_CHAR */ -#ifdef CHAR_IS_UNSIGNED -typedef char UINT8; -#else /* not CHAR_IS_UNSIGNED */ -typedef short UINT8; -#endif /* CHAR_IS_UNSIGNED */ -#endif /* HAVE_UNSIGNED_CHAR */ - -/* UINT16 must hold at least the values 0..65535. */ - -#ifdef HAVE_UNSIGNED_SHORT -typedef unsigned short UINT16; -#else /* not HAVE_UNSIGNED_SHORT */ -typedef unsigned int UINT16; -#endif /* HAVE_UNSIGNED_SHORT */ - -/* INT16 must hold at least the values -32768..32767. */ - -#ifndef XMD_H /* X11/xmd.h correctly defines INT16 */ -typedef short INT16; -#endif - -/* INT32 must hold at least signed 32-bit values. */ - -#ifndef XMD_H /* X11/xmd.h correctly defines INT32 */ -typedef long INT32; -#endif - -/* Datatype used for image dimensions. The JPEG standard only supports - * images up to 64K*64K due to 16-bit fields in SOF markers. Therefore - * "unsigned int" is sufficient on all machines. However, if you need to - * handle larger images and you don't mind deviating from the spec, you - * can change this datatype. - */ - -typedef unsigned int JDIMENSION; - -#define JPEG_MAX_DIMENSION 65500L /* a tad under 64K to prevent overflows */ - - -/* These macros are used in all function definitions and extern declarations. - * You could modify them if you need to change function linkage conventions; - * in particular, you'll need to do that to make the library a Windows DLL. - * Another application is to make all functions global for use with debuggers - * or code profilers that require it. - */ - -/* a function called through method pointers: */ -#define METHODDEF(type) static type -/* a function used only in its module: */ -#define LOCAL(type) static type -/* a function referenced thru EXTERNs: */ -#define GLOBAL(type) type -/* a reference to a GLOBAL function: */ -#define EXTERN(type) extern type - - -/* This macro is used to declare a "method", that is, a function pointer. - * We want to supply prototype parameters if the compiler can cope. - * Note that the arglist parameter must be parenthesized! - * Again, you can customize this if you need special linkage keywords. - */ - -#ifdef HAVE_PROTOTYPES -#define JMETHOD(type,methodname,arglist) type (*methodname) arglist -#else -#define JMETHOD(type,methodname,arglist) type (*methodname) () -#endif - - -/* Here is the pseudo-keyword for declaring pointers that must be "far" - * on 80x86 machines. Most of the specialized coding for 80x86 is handled - * by just saying "FAR *" where such a pointer is needed. In a few places - * explicit coding is needed; see uses of the NEED_FAR_POINTERS symbol. - */ - -#ifdef NEED_FAR_POINTERS -#define FAR far -#else -#define FAR -#endif - - -/* - * On a few systems, type boolean and/or its values FALSE, TRUE may appear - * in standard header files. Or you may have conflicts with application- - * specific header files that you want to include together with these files. - * Defining HAVE_BOOLEAN before including jpeglib.h should make it work. - */ - -#ifndef HAVE_BOOLEAN -typedef int boolean; -#endif -#ifndef FALSE /* in case these macros already exist */ -#define FALSE 0 /* values of boolean */ -#endif -#ifndef TRUE -#define TRUE 1 -#endif - - -/* - * The remaining options affect code selection within the JPEG library, - * but they don't need to be visible to most applications using the library. - * To minimize application namespace pollution, the symbols won't be - * defined unless JPEG_INTERNALS or JPEG_INTERNAL_OPTIONS has been defined. - */ - -#ifdef JPEG_INTERNALS -#define JPEG_INTERNAL_OPTIONS -#endif - -#ifdef JPEG_INTERNAL_OPTIONS - - -/* - * These defines indicate whether to include various optional functions. - * Undefining some of these symbols will produce a smaller but less capable - * library. Note that you can leave certain source files out of the - * compilation/linking process if you've #undef'd the corresponding symbols. - * (You may HAVE to do that if your compiler doesn't like null source files.) - */ - -/* Arithmetic coding is unsupported for legal reasons. Complaints to IBM. */ - -/* Capability options common to encoder and decoder: */ - -#define DCT_ISLOW_SUPPORTED /* slow but accurate integer algorithm */ -#define DCT_IFAST_SUPPORTED /* faster, less accurate integer method */ -#define DCT_FLOAT_SUPPORTED /* floating-point: accurate, fast on fast HW */ - -/* Encoder capability options: */ - -#undef C_ARITH_CODING_SUPPORTED /* Arithmetic coding back end? */ -#define C_MULTISCAN_FILES_SUPPORTED /* Multiple-scan JPEG files? */ -#define C_PROGRESSIVE_SUPPORTED /* Progressive JPEG? (Requires MULTISCAN)*/ -#define ENTROPY_OPT_SUPPORTED /* Optimization of entropy coding parms? */ -/* Note: if you selected 12-bit data precision, it is dangerous to turn off - * ENTROPY_OPT_SUPPORTED. The standard Huffman tables are only good for 8-bit - * precision, so jchuff.c normally uses entropy optimization to compute - * usable tables for higher precision. If you don't want to do optimization, - * you'll have to supply different default Huffman tables. - * The exact same statements apply for progressive JPEG: the default tables - * don't work for progressive mode. (This may get fixed, however.) - */ -#define INPUT_SMOOTHING_SUPPORTED /* Input image smoothing option? */ - -/* Decoder capability options: */ - -#undef D_ARITH_CODING_SUPPORTED /* Arithmetic coding back end? */ -#define D_MULTISCAN_FILES_SUPPORTED /* Multiple-scan JPEG files? */ -#define D_PROGRESSIVE_SUPPORTED /* Progressive JPEG? (Requires MULTISCAN)*/ -#define SAVE_MARKERS_SUPPORTED /* jpeg_save_markers() needed? */ -#define BLOCK_SMOOTHING_SUPPORTED /* Block smoothing? (Progressive only) */ -#define IDCT_SCALING_SUPPORTED /* Output rescaling via IDCT? */ -#undef UPSAMPLE_SCALING_SUPPORTED /* Output rescaling at upsample stage? */ -#define UPSAMPLE_MERGING_SUPPORTED /* Fast path for sloppy upsampling? */ -#define QUANT_1PASS_SUPPORTED /* 1-pass color quantization? */ -#define QUANT_2PASS_SUPPORTED /* 2-pass color quantization? */ - -/* more capability options later, no doubt */ - - -/* - * Ordering of RGB data in scanlines passed to or from the application. - * If your application wants to deal with data in the order B,G,R, just - * change these macros. You can also deal with formats such as R,G,B,X - * (one extra byte per pixel) by changing RGB_PIXELSIZE. Note that changing - * the offsets will also change the order in which colormap data is organized. - * RESTRICTIONS: - * 1. The sample applications cjpeg,djpeg do NOT support modified RGB formats. - * 2. These macros only affect RGB<=>YCbCr color conversion, so they are not - * useful if you are using JPEG color spaces other than YCbCr or grayscale. - * 3. The color quantizer modules will not behave desirably if RGB_PIXELSIZE - * is not 3 (they don't understand about dummy color components!). So you - * can't use color quantization if you change that value. - */ - -#define RGB_RED 0 /* Offset of Red in an RGB scanline element */ -#define RGB_GREEN 1 /* Offset of Green */ -#define RGB_BLUE 2 /* Offset of Blue */ -#define RGB_PIXELSIZE 3 /* JSAMPLEs per RGB scanline element */ - - -/* Definitions for speed-related optimizations. */ - - -/* If your compiler supports inline functions, define INLINE - * as the inline keyword; otherwise define it as empty. - */ - -#ifndef INLINE -#ifdef __GNUC__ /* for instance, GNU C knows about inline */ -#define INLINE __inline__ -#endif -#ifndef INLINE -#define INLINE /* default is to define it as empty */ -#endif -#endif - - -/* On some machines (notably 68000 series) "int" is 32 bits, but multiplying - * two 16-bit shorts is faster than multiplying two ints. Define MULTIPLIER - * as short on such a machine. MULTIPLIER must be at least 16 bits wide. - */ - -#ifndef MULTIPLIER -#define MULTIPLIER int /* type for fastest integer multiply */ -#endif - - -/* FAST_FLOAT should be either float or double, whichever is done faster - * by your compiler. (Note that this type is only used in the floating point - * DCT routines, so it only matters if you've defined DCT_FLOAT_SUPPORTED.) - * Typically, float is faster in ANSI C compilers, while double is faster in - * pre-ANSI compilers (because they insist on converting to double anyway). - * The code below therefore chooses float if we have ANSI-style prototypes. - */ - -#ifndef FAST_FLOAT -#ifdef HAVE_PROTOTYPES -#define FAST_FLOAT float -#else -#define FAST_FLOAT double -#endif -#endif - -#endif /* JPEG_INTERNAL_OPTIONS */ diff --git a/contrib/media/updf_newlib/include/jp2.h b/contrib/media/updf_newlib/include/jp2.h deleted file mode 100755 index 9ad662cb97..0000000000 --- a/contrib/media/updf_newlib/include/jp2.h +++ /dev/null @@ -1,231 +0,0 @@ -/* - * Copyright (c) 2002-2007, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium - * Copyright (c) 2002-2007, Professor Benoit Macq - * Copyright (c) 2002-2003, Yannick Verschueren - * Copyright (c) 2005, Herve Drolon, FreeImage Team - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS' - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ -#ifndef __JP2_H -#define __JP2_H -/** -@file jp2.h -@brief The JPEG-2000 file format Reader/Writer (JP2) - -*/ - -/** @defgroup JP2 JP2 - JPEG-2000 file format reader/writer */ -/*@{*/ - -#define JPIP_JPIP 0x6a706970 - -#define JP2_JP 0x6a502020 /**< JPEG 2000 signature box */ -#define JP2_FTYP 0x66747970 /**< File type box */ -#define JP2_JP2H 0x6a703268 /**< JP2 header box */ -#define JP2_IHDR 0x69686472 /**< Image header box */ -#define JP2_COLR 0x636f6c72 /**< Colour specification box */ -#define JP2_JP2C 0x6a703263 /**< Contiguous codestream box */ -#define JP2_URL 0x75726c20 /**< URL box */ -#define JP2_DTBL 0x6474626c /**< Data Reference box */ -#define JP2_BPCC 0x62706363 /**< Bits per component box */ -#define JP2_JP2 0x6a703220 /**< File type fields */ -#define JP2_PCLR 0x70636c72 /**< Palette box */ -#define JP2_CMAP 0x636d6170 /**< Component Mapping box */ -#define JP2_CDEF 0x63646566 /**< Channel Definition box */ - -/* ----------------------------------------------------------------------- */ -/** -Channel description: channel index, type, assocation -*/ -typedef struct opj_jp2_cdef_info -{ - unsigned short cn, typ, asoc; -} opj_jp2_cdef_info_t; - -/** -Channel descriptions and number of descriptions -*/ -typedef struct opj_jp2_cdef -{ - opj_jp2_cdef_info_t *info; - unsigned short n; -} opj_jp2_cdef_t; - -/** -Component mappings: channel index, mapping type, palette index -*/ -typedef struct opj_jp2_cmap_comp -{ - unsigned short cmp; - unsigned char mtyp, pcol; -} opj_jp2_cmap_comp_t; - -/** -Palette data: table entries, palette columns -*/ -typedef struct opj_jp2_pclr -{ - unsigned int *entries; - unsigned char *channel_sign; - unsigned char *channel_size; - opj_jp2_cmap_comp_t *cmap; - unsigned short nr_entries, nr_channels; -} opj_jp2_pclr_t; - -/** -Collector for ICC profile, palette, component mapping, channel description -*/ -typedef struct opj_jp2_color -{ - unsigned char *icc_profile_buf; - int icc_profile_len; - - opj_jp2_cdef_t *jp2_cdef; - opj_jp2_pclr_t *jp2_pclr; - unsigned char jp2_has_colr; -} opj_jp2_color_t; - -/** -JP2 component -*/ -typedef struct opj_jp2_comps { - int depth; - int sgnd; - int bpcc; -} opj_jp2_comps_t; - -/** -JPEG-2000 file format reader/writer -*/ -typedef struct opj_jp2 { - /** codec context */ - opj_common_ptr cinfo; - /** handle to the J2K codec */ - opj_j2k_t *j2k; - unsigned int w; - unsigned int h; - unsigned int numcomps; - unsigned int bpc; - unsigned int C; - unsigned int UnkC; - unsigned int IPR; - unsigned int meth; - unsigned int approx; - unsigned int enumcs; - unsigned int precedence; - unsigned int brand; - unsigned int minversion; - unsigned int numcl; - unsigned int *cl; - opj_jp2_comps_t *comps; - unsigned int j2k_codestream_offset; - unsigned int j2k_codestream_length; -} opj_jp2_t; - -/** -JP2 Box -*/ -typedef struct opj_jp2_box { - int length; - int type; - int init_pos; -} opj_jp2_box_t; - -/** @name Exported functions */ -/*@{*/ -/* ----------------------------------------------------------------------- */ -/** -Write the JP2H box - JP2 Header box (used in MJ2) -@param jp2 JP2 handle -@param cio Output buffer stream -*/ -void jp2_write_jp2h(opj_jp2_t *jp2, opj_cio_t *cio); -/** -Read the JP2H box - JP2 Header box (used in MJ2) -@param jp2 JP2 handle -@param cio Input buffer stream -@param ext Collector for profile, cdef and pclr data -@return Returns true if successful, returns false otherwise -*/ -bool jp2_read_jp2h(opj_jp2_t *jp2, opj_cio_t *cio, opj_jp2_color_t *color); -/** -Creates a JP2 decompression structure -@param cinfo Codec context info -@return Returns a handle to a JP2 decompressor if successful, returns NULL otherwise -*/ -opj_jp2_t* jp2_create_decompress(opj_common_ptr cinfo); -/** -Destroy a JP2 decompressor handle -@param jp2 JP2 decompressor handle to destroy -*/ -void jp2_destroy_decompress(opj_jp2_t *jp2); -/** -Setup the decoder decoding parameters using user parameters. -Decoding parameters are returned in jp2->j2k->cp. -@param jp2 JP2 decompressor handle -@param parameters decompression parameters -*/ -void jp2_setup_decoder(opj_jp2_t *jp2, opj_dparameters_t *parameters); -/** -Decode an image from a JPEG-2000 file stream -@param jp2 JP2 decompressor handle -@param cio Input buffer stream -@param cstr_info Codestream information structure if required, NULL otherwise -@return Returns a decoded image if successful, returns NULL otherwise -*/ -opj_image_t* jp2_decode(opj_jp2_t *jp2, opj_cio_t *cio, opj_codestream_info_t *cstr_info); -/** -Creates a JP2 compression structure -@param cinfo Codec context info -@return Returns a handle to a JP2 compressor if successful, returns NULL otherwise -*/ -opj_jp2_t* jp2_create_compress(opj_common_ptr cinfo); -/** -Destroy a JP2 compressor handle -@param jp2 JP2 compressor handle to destroy -*/ -void jp2_destroy_compress(opj_jp2_t *jp2); -/** -Setup the encoder parameters using the current image and using user parameters. -Coding parameters are returned in jp2->j2k->cp. -@param jp2 JP2 compressor handle -@param parameters compression parameters -@param image input filled image -*/ -void jp2_setup_encoder(opj_jp2_t *jp2, opj_cparameters_t *parameters, opj_image_t *image); -/** -Encode an image into a JPEG-2000 file stream -@param jp2 JP2 compressor handle -@param cio Output buffer stream -@param image Image to encode -@param cstr_info Codestream information structure if required, NULL otherwise -@return Returns true if successful, returns false otherwise -*/ -bool jp2_encode(opj_jp2_t *jp2, opj_cio_t *cio, opj_image_t *image, opj_codestream_info_t *cstr_info); -/* ----------------------------------------------------------------------- */ -/*@}*/ - -/*@}*/ - -#endif /* __JP2_H */ - diff --git a/contrib/media/updf_newlib/include/jpeglib.h b/contrib/media/updf_newlib/include/jpeglib.h deleted file mode 100755 index d1be8ddeff..0000000000 --- a/contrib/media/updf_newlib/include/jpeglib.h +++ /dev/null @@ -1,1096 +0,0 @@ -/* - * jpeglib.h - * - * Copyright (C) 1991-1998, 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. - * - * This file defines the application interface for the JPEG library. - * Most applications using the library need only include this file, - * and perhaps jerror.h if they want to know the exact error codes. - */ - -#ifndef JPEGLIB_H -#define JPEGLIB_H - -/* - * First we include the configuration files that record how this - * installation of the JPEG library is set up. jconfig.h can be - * generated automatically for many systems. jmorecfg.h contains - * manual configuration options that most people need not worry about. - */ - -#ifndef JCONFIG_INCLUDED /* in case jinclude.h already did */ -#include "jconfig.h" /* widely used configuration options */ -#endif -#include "jmorecfg.h" /* seldom changed options */ - - -/* Version ID for the JPEG library. - * Might be useful for tests like "#if JPEG_LIB_VERSION >= 60". - */ - -#define JPEG_LIB_VERSION 62 /* Version 6b */ - - -/* Various constants determining the sizes of things. - * All of these are specified by the JPEG standard, so don't change them - * if you want to be compatible. - */ - -#define DCTSIZE 8 /* The basic DCT block is 8x8 samples */ -#define DCTSIZE2 64 /* DCTSIZE squared; # of elements in a block */ -#define NUM_QUANT_TBLS 4 /* Quantization tables are numbered 0..3 */ -#define NUM_HUFF_TBLS 4 /* Huffman tables are numbered 0..3 */ -#define NUM_ARITH_TBLS 16 /* Arith-coding tables are numbered 0..15 */ -#define MAX_COMPS_IN_SCAN 4 /* JPEG limit on # of components in one scan */ -#define MAX_SAMP_FACTOR 4 /* JPEG limit on sampling factors */ -/* Unfortunately, some bozo at Adobe saw no reason to be bound by the standard; - * the PostScript DCT filter can emit files with many more than 10 blocks/MCU. - * If you happen to run across such a file, you can up D_MAX_BLOCKS_IN_MCU - * to handle it. We even let you do this from the jconfig.h file. However, - * we strongly discourage changing C_MAX_BLOCKS_IN_MCU; just because Adobe - * sometimes emits noncompliant files doesn't mean you should too. - */ -#define C_MAX_BLOCKS_IN_MCU 10 /* compressor's limit on blocks per MCU */ -#ifndef D_MAX_BLOCKS_IN_MCU -#define D_MAX_BLOCKS_IN_MCU 10 /* decompressor's limit on blocks per MCU */ -#endif - - -/* Data structures for images (arrays of samples and of DCT coefficients). - * On 80x86 machines, the image arrays are too big for near pointers, - * but the pointer arrays can fit in near memory. - */ - -typedef JSAMPLE FAR *JSAMPROW; /* ptr to one image row of pixel samples. */ -typedef JSAMPROW *JSAMPARRAY; /* ptr to some rows (a 2-D sample array) */ -typedef JSAMPARRAY *JSAMPIMAGE; /* a 3-D sample array: top index is color */ - -typedef JCOEF JBLOCK[DCTSIZE2]; /* one block of coefficients */ -typedef JBLOCK FAR *JBLOCKROW; /* pointer to one row of coefficient blocks */ -typedef JBLOCKROW *JBLOCKARRAY; /* a 2-D array of coefficient blocks */ -typedef JBLOCKARRAY *JBLOCKIMAGE; /* a 3-D array of coefficient blocks */ - -typedef JCOEF FAR *JCOEFPTR; /* useful in a couple of places */ - - -/* Types for JPEG compression parameters and working tables. */ - - -/* DCT coefficient quantization tables. */ - -typedef struct { - /* This array gives the coefficient quantizers in natural array order - * (not the zigzag order in which they are stored in a JPEG DQT marker). - * CAUTION: IJG versions prior to v6a kept this array in zigzag order. - */ - UINT16 quantval[DCTSIZE2]; /* quantization step for each coefficient */ - /* This field is used only during compression. It's initialized FALSE when - * the table is created, and set TRUE when it's been output to the file. - * You could suppress output of a table by setting this to TRUE. - * (See jpeg_suppress_tables for an example.) - */ - boolean sent_table; /* TRUE when table has been output */ -} JQUANT_TBL; - - -/* Huffman coding tables. */ - -typedef struct { - /* These two fields directly represent the contents of a JPEG DHT marker */ - UINT8 bits[17]; /* bits[k] = # of symbols with codes of */ - /* length k bits; bits[0] is unused */ - UINT8 huffval[256]; /* The symbols, in order of incr code length */ - /* This field is used only during compression. It's initialized FALSE when - * the table is created, and set TRUE when it's been output to the file. - * You could suppress output of a table by setting this to TRUE. - * (See jpeg_suppress_tables for an example.) - */ - boolean sent_table; /* TRUE when table has been output */ -} JHUFF_TBL; - - -/* Basic info about one component (color channel). */ - -typedef struct { - /* These values are fixed over the whole image. */ - /* For compression, they must be supplied by parameter setup; */ - /* for decompression, they are read from the SOF marker. */ - int component_id; /* identifier for this component (0..255) */ - int component_index; /* its index in SOF or cinfo->comp_info[] */ - int h_samp_factor; /* horizontal sampling factor (1..4) */ - int v_samp_factor; /* vertical sampling factor (1..4) */ - int quant_tbl_no; /* quantization table selector (0..3) */ - /* These values may vary between scans. */ - /* For compression, they must be supplied by parameter setup; */ - /* for decompression, they are read from the SOS marker. */ - /* The decompressor output side may not use these variables. */ - int dc_tbl_no; /* DC entropy table selector (0..3) */ - int ac_tbl_no; /* AC entropy table selector (0..3) */ - - /* Remaining fields should be treated as private by applications. */ - - /* These values are computed during compression or decompression startup: */ - /* Component's size in DCT blocks. - * Any dummy blocks added to complete an MCU are not counted; therefore - * these values do not depend on whether a scan is interleaved or not. - */ - JDIMENSION width_in_blocks; - JDIMENSION height_in_blocks; - /* Size of a DCT block in samples. Always DCTSIZE for compression. - * For decompression this is the size of the output from one DCT block, - * reflecting any scaling we choose to apply during the IDCT step. - * Values of 1,2,4,8 are likely to be supported. Note that different - * components may receive different IDCT scalings. - */ - int DCT_scaled_size; - /* The downsampled dimensions are the component's actual, unpadded number - * of samples at the main buffer (preprocessing/compression interface), thus - * downsampled_width = ceil(image_width * Hi/Hmax) - * and similarly for height. For decompression, IDCT scaling is included, so - * downsampled_width = ceil(image_width * Hi/Hmax * DCT_scaled_size/DCTSIZE) - */ - JDIMENSION downsampled_width; /* actual width in samples */ - JDIMENSION downsampled_height; /* actual height in samples */ - /* This flag is used only for decompression. In cases where some of the - * components will be ignored (eg grayscale output from YCbCr image), - * we can skip most computations for the unused components. - */ - boolean component_needed; /* do we need the value of this component? */ - - /* These values are computed before starting a scan of the component. */ - /* The decompressor output side may not use these variables. */ - int MCU_width; /* number of blocks per MCU, horizontally */ - int MCU_height; /* number of blocks per MCU, vertically */ - int MCU_blocks; /* MCU_width * MCU_height */ - int MCU_sample_width; /* MCU width in samples, MCU_width*DCT_scaled_size */ - int last_col_width; /* # of non-dummy blocks across in last MCU */ - int last_row_height; /* # of non-dummy blocks down in last MCU */ - - /* Saved quantization table for component; NULL if none yet saved. - * See jdinput.c comments about the need for this information. - * This field is currently used only for decompression. - */ - JQUANT_TBL * quant_table; - - /* Private per-component storage for DCT or IDCT subsystem. */ - void * dct_table; -} jpeg_component_info; - - -/* The script for encoding a multiple-scan file is an array of these: */ - -typedef struct { - int comps_in_scan; /* number of components encoded in this scan */ - int component_index[MAX_COMPS_IN_SCAN]; /* their SOF/comp_info[] indexes */ - int Ss, Se; /* progressive JPEG spectral selection parms */ - int Ah, Al; /* progressive JPEG successive approx. parms */ -} jpeg_scan_info; - -/* The decompressor can save APPn and COM markers in a list of these: */ - -typedef struct jpeg_marker_struct FAR * jpeg_saved_marker_ptr; - -struct jpeg_marker_struct { - jpeg_saved_marker_ptr next; /* next in list, or NULL */ - UINT8 marker; /* marker code: JPEG_COM, or JPEG_APP0+n */ - unsigned int original_length; /* # bytes of data in the file */ - unsigned int data_length; /* # bytes of data saved at data[] */ - JOCTET FAR * data; /* the data contained in the marker */ - /* the marker length word is not counted in data_length or original_length */ -}; - -/* Known color spaces. */ - -typedef enum { - JCS_UNKNOWN, /* error/unspecified */ - JCS_GRAYSCALE, /* monochrome */ - JCS_RGB, /* red/green/blue */ - JCS_YCbCr, /* Y/Cb/Cr (also known as YUV) */ - JCS_CMYK, /* C/M/Y/K */ - JCS_YCCK /* Y/Cb/Cr/K */ -} J_COLOR_SPACE; - -/* DCT/IDCT algorithm options. */ - -typedef enum { - JDCT_ISLOW, /* slow but accurate integer algorithm */ - JDCT_IFAST, /* faster, less accurate integer method */ - JDCT_FLOAT /* floating-point: accurate, fast on fast HW */ -} J_DCT_METHOD; - -#ifndef JDCT_DEFAULT /* may be overridden in jconfig.h */ -#define JDCT_DEFAULT JDCT_ISLOW -#endif -#ifndef JDCT_FASTEST /* may be overridden in jconfig.h */ -#define JDCT_FASTEST JDCT_IFAST -#endif - -/* Dithering options for decompression. */ - -typedef enum { - JDITHER_NONE, /* no dithering */ - JDITHER_ORDERED, /* simple ordered dither */ - JDITHER_FS /* Floyd-Steinberg error diffusion dither */ -} J_DITHER_MODE; - - -/* Common fields between JPEG compression and decompression master structs. */ - -#define jpeg_common_fields \ - struct jpeg_error_mgr * err; /* Error handler module */\ - struct jpeg_memory_mgr * mem; /* Memory manager module */\ - struct jpeg_progress_mgr * progress; /* Progress monitor, or NULL if none */\ - void * client_data; /* Available for use by application */\ - boolean is_decompressor; /* So common code can tell which is which */\ - int global_state /* For checking call sequence validity */ - -/* Routines that are to be used by both halves of the library are declared - * to receive a pointer to this structure. There are no actual instances of - * jpeg_common_struct, only of jpeg_compress_struct and jpeg_decompress_struct. - */ -struct jpeg_common_struct { - jpeg_common_fields; /* Fields common to both master struct types */ - /* Additional fields follow in an actual jpeg_compress_struct or - * jpeg_decompress_struct. All three structs must agree on these - * initial fields! (This would be a lot cleaner in C++.) - */ -}; - -typedef struct jpeg_common_struct * j_common_ptr; -typedef struct jpeg_compress_struct * j_compress_ptr; -typedef struct jpeg_decompress_struct * j_decompress_ptr; - - -/* Master record for a compression instance */ - -struct jpeg_compress_struct { - jpeg_common_fields; /* Fields shared with jpeg_decompress_struct */ - - /* Destination for compressed data */ - struct jpeg_destination_mgr * dest; - - /* Description of source image --- these fields must be filled in by - * outer application before starting compression. in_color_space must - * be correct before you can even call jpeg_set_defaults(). - */ - - JDIMENSION image_width; /* input image width */ - JDIMENSION image_height; /* input image height */ - int input_components; /* # of color components in input image */ - J_COLOR_SPACE in_color_space; /* colorspace of input image */ - - double input_gamma; /* image gamma of input image */ - - /* Compression parameters --- these fields must be set before calling - * jpeg_start_compress(). We recommend calling jpeg_set_defaults() to - * initialize everything to reasonable defaults, then changing anything - * the application specifically wants to change. That way you won't get - * burnt when new parameters are added. Also note that there are several - * helper routines to simplify changing parameters. - */ - - int data_precision; /* bits of precision in image data */ - - int num_components; /* # of color components in JPEG image */ - J_COLOR_SPACE jpeg_color_space; /* colorspace of JPEG image */ - - jpeg_component_info * comp_info; - /* comp_info[i] describes component that appears i'th in SOF */ - - JQUANT_TBL * quant_tbl_ptrs[NUM_QUANT_TBLS]; - /* ptrs to coefficient quantization tables, or NULL if not defined */ - - JHUFF_TBL * dc_huff_tbl_ptrs[NUM_HUFF_TBLS]; - JHUFF_TBL * ac_huff_tbl_ptrs[NUM_HUFF_TBLS]; - /* ptrs to Huffman coding tables, or NULL if not defined */ - - UINT8 arith_dc_L[NUM_ARITH_TBLS]; /* L values for DC arith-coding tables */ - UINT8 arith_dc_U[NUM_ARITH_TBLS]; /* U values for DC arith-coding tables */ - UINT8 arith_ac_K[NUM_ARITH_TBLS]; /* Kx values for AC arith-coding tables */ - - int num_scans; /* # of entries in scan_info array */ - const jpeg_scan_info * scan_info; /* script for multi-scan file, or NULL */ - /* The default value of scan_info is NULL, which causes a single-scan - * sequential JPEG file to be emitted. To create a multi-scan file, - * set num_scans and scan_info to point to an array of scan definitions. - */ - - boolean raw_data_in; /* TRUE=caller supplies downsampled data */ - boolean arith_code; /* TRUE=arithmetic coding, FALSE=Huffman */ - boolean optimize_coding; /* TRUE=optimize entropy encoding parms */ - boolean CCIR601_sampling; /* TRUE=first samples are cosited */ - int smoothing_factor; /* 1..100, or 0 for no input smoothing */ - J_DCT_METHOD dct_method; /* DCT algorithm selector */ - - /* The restart interval can be specified in absolute MCUs by setting - * restart_interval, or in MCU rows by setting restart_in_rows - * (in which case the correct restart_interval will be figured - * for each scan). - */ - unsigned int restart_interval; /* MCUs per restart, or 0 for no restart */ - int restart_in_rows; /* if > 0, MCU rows per restart interval */ - - /* Parameters controlling emission of special markers. */ - - boolean write_JFIF_header; /* should a JFIF marker be written? */ - UINT8 JFIF_major_version; /* What to write for the JFIF version number */ - UINT8 JFIF_minor_version; - /* These three values are not used by the JPEG code, merely copied */ - /* into the JFIF APP0 marker. density_unit can be 0 for unknown, */ - /* 1 for dots/inch, or 2 for dots/cm. Note that the pixel aspect */ - /* ratio is defined by X_density/Y_density even when density_unit=0. */ - UINT8 density_unit; /* JFIF code for pixel size units */ - UINT16 X_density; /* Horizontal pixel density */ - UINT16 Y_density; /* Vertical pixel density */ - boolean write_Adobe_marker; /* should an Adobe marker be written? */ - - /* State variable: index of next scanline to be written to - * jpeg_write_scanlines(). Application may use this to control its - * processing loop, e.g., "while (next_scanline < image_height)". - */ - - JDIMENSION next_scanline; /* 0 .. image_height-1 */ - - /* Remaining fields are known throughout compressor, but generally - * should not be touched by a surrounding application. - */ - - /* - * These fields are computed during compression startup - */ - boolean progressive_mode; /* TRUE if scan script uses progressive mode */ - int max_h_samp_factor; /* largest h_samp_factor */ - int max_v_samp_factor; /* largest v_samp_factor */ - - JDIMENSION total_iMCU_rows; /* # of iMCU rows to be input to coef ctlr */ - /* The coefficient controller receives data in units of MCU rows as defined - * for fully interleaved scans (whether the JPEG file is interleaved or not). - * There are v_samp_factor * DCTSIZE sample rows of each component in an - * "iMCU" (interleaved MCU) row. - */ - - /* - * These fields are valid during any one scan. - * They describe the components and MCUs actually appearing in the scan. - */ - int comps_in_scan; /* # of JPEG components in this scan */ - jpeg_component_info * cur_comp_info[MAX_COMPS_IN_SCAN]; - /* *cur_comp_info[i] describes component that appears i'th in SOS */ - - JDIMENSION MCUs_per_row; /* # of MCUs across the image */ - JDIMENSION MCU_rows_in_scan; /* # of MCU rows in the image */ - - int blocks_in_MCU; /* # of DCT blocks per MCU */ - int MCU_membership[C_MAX_BLOCKS_IN_MCU]; - /* MCU_membership[i] is index in cur_comp_info of component owning */ - /* i'th block in an MCU */ - - int Ss, Se, Ah, Al; /* progressive JPEG parameters for scan */ - - /* - * Links to compression subobjects (methods and private variables of modules) - */ - struct jpeg_comp_master * master; - struct jpeg_c_main_controller * main; - struct jpeg_c_prep_controller * prep; - struct jpeg_c_coef_controller * coef; - struct jpeg_marker_writer * marker; - struct jpeg_color_converter * cconvert; - struct jpeg_downsampler * downsample; - struct jpeg_forward_dct * fdct; - struct jpeg_entropy_encoder * entropy; - jpeg_scan_info * script_space; /* workspace for jpeg_simple_progression */ - int script_space_size; -}; - - -/* Master record for a decompression instance */ - -struct jpeg_decompress_struct { - jpeg_common_fields; /* Fields shared with jpeg_compress_struct */ - - /* Source of compressed data */ - struct jpeg_source_mgr * src; - - /* Basic description of image --- filled in by jpeg_read_header(). */ - /* Application may inspect these values to decide how to process image. */ - - JDIMENSION image_width; /* nominal image width (from SOF marker) */ - JDIMENSION image_height; /* nominal image height */ - int num_components; /* # of color components in JPEG image */ - J_COLOR_SPACE jpeg_color_space; /* colorspace of JPEG image */ - - /* Decompression processing parameters --- these fields must be set before - * calling jpeg_start_decompress(). Note that jpeg_read_header() initializes - * them to default values. - */ - - J_COLOR_SPACE out_color_space; /* colorspace for output */ - - unsigned int scale_num, scale_denom; /* fraction by which to scale image */ - - double output_gamma; /* image gamma wanted in output */ - - boolean buffered_image; /* TRUE=multiple output passes */ - boolean raw_data_out; /* TRUE=downsampled data wanted */ - - J_DCT_METHOD dct_method; /* IDCT algorithm selector */ - boolean do_fancy_upsampling; /* TRUE=apply fancy upsampling */ - boolean do_block_smoothing; /* TRUE=apply interblock smoothing */ - - boolean quantize_colors; /* TRUE=colormapped output wanted */ - /* the following are ignored if not quantize_colors: */ - J_DITHER_MODE dither_mode; /* type of color dithering to use */ - boolean two_pass_quantize; /* TRUE=use two-pass color quantization */ - int desired_number_of_colors; /* max # colors to use in created colormap */ - /* these are significant only in buffered-image mode: */ - boolean enable_1pass_quant; /* enable future use of 1-pass quantizer */ - boolean enable_external_quant;/* enable future use of external colormap */ - boolean enable_2pass_quant; /* enable future use of 2-pass quantizer */ - - /* Description of actual output image that will be returned to application. - * These fields are computed by jpeg_start_decompress(). - * You can also use jpeg_calc_output_dimensions() to determine these values - * in advance of calling jpeg_start_decompress(). - */ - - JDIMENSION output_width; /* scaled image width */ - JDIMENSION output_height; /* scaled image height */ - int out_color_components; /* # of color components in out_color_space */ - int output_components; /* # of color components returned */ - /* output_components is 1 (a colormap index) when quantizing colors; - * otherwise it equals out_color_components. - */ - int rec_outbuf_height; /* min recommended height of scanline buffer */ - /* If the buffer passed to jpeg_read_scanlines() is less than this many rows - * high, space and time will be wasted due to unnecessary data copying. - * Usually rec_outbuf_height will be 1 or 2, at most 4. - */ - - /* When quantizing colors, the output colormap is described by these fields. - * The application can supply a colormap by setting colormap non-NULL before - * calling jpeg_start_decompress; otherwise a colormap is created during - * jpeg_start_decompress or jpeg_start_output. - * The map has out_color_components rows and actual_number_of_colors columns. - */ - int actual_number_of_colors; /* number of entries in use */ - JSAMPARRAY colormap; /* The color map as a 2-D pixel array */ - - /* State variables: these variables indicate the progress of decompression. - * The application may examine these but must not modify them. - */ - - /* Row index of next scanline to be read from jpeg_read_scanlines(). - * Application may use this to control its processing loop, e.g., - * "while (output_scanline < output_height)". - */ - JDIMENSION output_scanline; /* 0 .. output_height-1 */ - - /* Current input scan number and number of iMCU rows completed in scan. - * These indicate the progress of the decompressor input side. - */ - int input_scan_number; /* Number of SOS markers seen so far */ - JDIMENSION input_iMCU_row; /* Number of iMCU rows completed */ - - /* The "output scan number" is the notional scan being displayed by the - * output side. The decompressor will not allow output scan/row number - * to get ahead of input scan/row, but it can fall arbitrarily far behind. - */ - int output_scan_number; /* Nominal scan number being displayed */ - JDIMENSION output_iMCU_row; /* Number of iMCU rows read */ - - /* Current progression status. coef_bits[c][i] indicates the precision - * with which component c's DCT coefficient i (in zigzag order) is known. - * It is -1 when no data has yet been received, otherwise it is the point - * transform (shift) value for the most recent scan of the coefficient - * (thus, 0 at completion of the progression). - * This pointer is NULL when reading a non-progressive file. - */ - int (*coef_bits)[DCTSIZE2]; /* -1 or current Al value for each coef */ - - /* Internal JPEG parameters --- the application usually need not look at - * these fields. Note that the decompressor output side may not use - * any parameters that can change between scans. - */ - - /* Quantization and Huffman tables are carried forward across input - * datastreams when processing abbreviated JPEG datastreams. - */ - - JQUANT_TBL * quant_tbl_ptrs[NUM_QUANT_TBLS]; - /* ptrs to coefficient quantization tables, or NULL if not defined */ - - JHUFF_TBL * dc_huff_tbl_ptrs[NUM_HUFF_TBLS]; - JHUFF_TBL * ac_huff_tbl_ptrs[NUM_HUFF_TBLS]; - /* ptrs to Huffman coding tables, or NULL if not defined */ - - /* These parameters are never carried across datastreams, since they - * are given in SOF/SOS markers or defined to be reset by SOI. - */ - - int data_precision; /* bits of precision in image data */ - - jpeg_component_info * comp_info; - /* comp_info[i] describes component that appears i'th in SOF */ - - boolean progressive_mode; /* TRUE if SOFn specifies progressive mode */ - boolean arith_code; /* TRUE=arithmetic coding, FALSE=Huffman */ - - UINT8 arith_dc_L[NUM_ARITH_TBLS]; /* L values for DC arith-coding tables */ - UINT8 arith_dc_U[NUM_ARITH_TBLS]; /* U values for DC arith-coding tables */ - UINT8 arith_ac_K[NUM_ARITH_TBLS]; /* Kx values for AC arith-coding tables */ - - unsigned int restart_interval; /* MCUs per restart interval, or 0 for no restart */ - - /* These fields record data obtained from optional markers recognized by - * the JPEG library. - */ - boolean saw_JFIF_marker; /* TRUE iff a JFIF APP0 marker was found */ - /* Data copied from JFIF marker; only valid if saw_JFIF_marker is TRUE: */ - UINT8 JFIF_major_version; /* JFIF version number */ - UINT8 JFIF_minor_version; - UINT8 density_unit; /* JFIF code for pixel size units */ - UINT16 X_density; /* Horizontal pixel density */ - UINT16 Y_density; /* Vertical pixel density */ - boolean saw_Adobe_marker; /* TRUE iff an Adobe APP14 marker was found */ - UINT8 Adobe_transform; /* Color transform code from Adobe marker */ - - boolean CCIR601_sampling; /* TRUE=first samples are cosited */ - - /* Aside from the specific data retained from APPn markers known to the - * library, the uninterpreted contents of any or all APPn and COM markers - * can be saved in a list for examination by the application. - */ - jpeg_saved_marker_ptr marker_list; /* Head of list of saved markers */ - - /* Remaining fields are known throughout decompressor, but generally - * should not be touched by a surrounding application. - */ - - /* - * These fields are computed during decompression startup - */ - int max_h_samp_factor; /* largest h_samp_factor */ - int max_v_samp_factor; /* largest v_samp_factor */ - - int min_DCT_scaled_size; /* smallest DCT_scaled_size of any component */ - - JDIMENSION total_iMCU_rows; /* # of iMCU rows in image */ - /* The coefficient controller's input and output progress is measured in - * units of "iMCU" (interleaved MCU) rows. These are the same as MCU rows - * in fully interleaved JPEG scans, but are used whether the scan is - * interleaved or not. We define an iMCU row as v_samp_factor DCT block - * rows of each component. Therefore, the IDCT output contains - * v_samp_factor*DCT_scaled_size sample rows of a component per iMCU row. - */ - - JSAMPLE * sample_range_limit; /* table for fast range-limiting */ - - /* - * These fields are valid during any one scan. - * They describe the components and MCUs actually appearing in the scan. - * Note that the decompressor output side must not use these fields. - */ - int comps_in_scan; /* # of JPEG components in this scan */ - jpeg_component_info * cur_comp_info[MAX_COMPS_IN_SCAN]; - /* *cur_comp_info[i] describes component that appears i'th in SOS */ - - JDIMENSION MCUs_per_row; /* # of MCUs across the image */ - JDIMENSION MCU_rows_in_scan; /* # of MCU rows in the image */ - - int blocks_in_MCU; /* # of DCT blocks per MCU */ - int MCU_membership[D_MAX_BLOCKS_IN_MCU]; - /* MCU_membership[i] is index in cur_comp_info of component owning */ - /* i'th block in an MCU */ - - int Ss, Se, Ah, Al; /* progressive JPEG parameters for scan */ - - /* This field is shared between entropy decoder and marker parser. - * It is either zero or the code of a JPEG marker that has been - * read from the data source, but has not yet been processed. - */ - int unread_marker; - - /* - * Links to decompression subobjects (methods, private variables of modules) - */ - struct jpeg_decomp_master * master; - struct jpeg_d_main_controller * main; - struct jpeg_d_coef_controller * coef; - struct jpeg_d_post_controller * post; - struct jpeg_input_controller * inputctl; - struct jpeg_marker_reader * marker; - struct jpeg_entropy_decoder * entropy; - struct jpeg_inverse_dct * idct; - struct jpeg_upsampler * upsample; - struct jpeg_color_deconverter * cconvert; - struct jpeg_color_quantizer * cquantize; -}; - - -/* "Object" declarations for JPEG modules that may be supplied or called - * directly by the surrounding application. - * As with all objects in the JPEG library, these structs only define the - * publicly visible methods and state variables of a module. Additional - * private fields may exist after the public ones. - */ - - -/* Error handler object */ - -struct jpeg_error_mgr { - /* Error exit handler: does not return to caller */ - JMETHOD(void, error_exit, (j_common_ptr cinfo)); - /* Conditionally emit a trace or warning message */ - JMETHOD(void, emit_message, (j_common_ptr cinfo, int msg_level)); - /* Routine that actually outputs a trace or error message */ - JMETHOD(void, output_message, (j_common_ptr cinfo)); - /* Format a message string for the most recent JPEG error or message */ - JMETHOD(void, format_message, (j_common_ptr cinfo, char * buffer)); -#define JMSG_LENGTH_MAX 200 /* recommended size of format_message buffer */ - /* Reset error state variables at start of a new image */ - JMETHOD(void, reset_error_mgr, (j_common_ptr cinfo)); - - /* The message ID code and any parameters are saved here. - * A message can have one string parameter or up to 8 int parameters. - */ - int msg_code; -#define JMSG_STR_PARM_MAX 80 - union { - int i[8]; - char s[JMSG_STR_PARM_MAX]; - } msg_parm; - - /* Standard state variables for error facility */ - - int trace_level; /* max msg_level that will be displayed */ - - /* For recoverable corrupt-data errors, we emit a warning message, - * but keep going unless emit_message chooses to abort. emit_message - * should count warnings in num_warnings. The surrounding application - * can check for bad data by seeing if num_warnings is nonzero at the - * end of processing. - */ - long num_warnings; /* number of corrupt-data warnings */ - - /* These fields point to the table(s) of error message strings. - * An application can change the table pointer to switch to a different - * message list (typically, to change the language in which errors are - * reported). Some applications may wish to add additional error codes - * that will be handled by the JPEG library error mechanism; the second - * table pointer is used for this purpose. - * - * First table includes all errors generated by JPEG library itself. - * Error code 0 is reserved for a "no such error string" message. - */ - const char * const * jpeg_message_table; /* Library errors */ - int last_jpeg_message; /* Table contains strings 0..last_jpeg_message */ - /* Second table can be added by application (see cjpeg/djpeg for example). - * It contains strings numbered first_addon_message..last_addon_message. - */ - const char * const * addon_message_table; /* Non-library errors */ - int first_addon_message; /* code for first string in addon table */ - int last_addon_message; /* code for last string in addon table */ -}; - - -/* Progress monitor object */ - -struct jpeg_progress_mgr { - JMETHOD(void, progress_monitor, (j_common_ptr cinfo)); - - long pass_counter; /* work units completed in this pass */ - long pass_limit; /* total number of work units in this pass */ - int completed_passes; /* passes completed so far */ - int total_passes; /* total number of passes expected */ -}; - - -/* Data destination object for compression */ - -struct jpeg_destination_mgr { - JOCTET * next_output_byte; /* => next byte to write in buffer */ - size_t free_in_buffer; /* # of byte spaces remaining in buffer */ - - JMETHOD(void, init_destination, (j_compress_ptr cinfo)); - JMETHOD(boolean, empty_output_buffer, (j_compress_ptr cinfo)); - JMETHOD(void, term_destination, (j_compress_ptr cinfo)); -}; - - -/* Data source object for decompression */ - -struct jpeg_source_mgr { - const JOCTET * next_input_byte; /* => next byte to read from buffer */ - size_t bytes_in_buffer; /* # of bytes remaining in buffer */ - - JMETHOD(void, init_source, (j_decompress_ptr cinfo)); - JMETHOD(boolean, fill_input_buffer, (j_decompress_ptr cinfo)); - JMETHOD(void, skip_input_data, (j_decompress_ptr cinfo, long num_bytes)); - JMETHOD(boolean, resync_to_restart, (j_decompress_ptr cinfo, int desired)); - JMETHOD(void, term_source, (j_decompress_ptr cinfo)); -}; - - -/* Memory manager object. - * Allocates "small" objects (a few K total), "large" objects (tens of K), - * and "really big" objects (virtual arrays with backing store if needed). - * The memory manager does not allow individual objects to be freed; rather, - * each created object is assigned to a pool, and whole pools can be freed - * at once. This is faster and more convenient than remembering exactly what - * to free, especially where malloc()/free() are not too speedy. - * NB: alloc routines never return NULL. They exit to error_exit if not - * successful. - */ - -#define JPOOL_PERMANENT 0 /* lasts until master record is destroyed */ -#define JPOOL_IMAGE 1 /* lasts until done with image/datastream */ -#define JPOOL_NUMPOOLS 2 - -typedef struct jvirt_sarray_control * jvirt_sarray_ptr; -typedef struct jvirt_barray_control * jvirt_barray_ptr; - - -struct jpeg_memory_mgr { - /* Method pointers */ - JMETHOD(void *, alloc_small, (j_common_ptr cinfo, int pool_id, - size_t sizeofobject)); - JMETHOD(void FAR *, alloc_large, (j_common_ptr cinfo, int pool_id, - size_t sizeofobject)); - JMETHOD(JSAMPARRAY, alloc_sarray, (j_common_ptr cinfo, int pool_id, - JDIMENSION samplesperrow, - JDIMENSION numrows)); - JMETHOD(JBLOCKARRAY, alloc_barray, (j_common_ptr cinfo, int pool_id, - JDIMENSION blocksperrow, - JDIMENSION numrows)); - JMETHOD(jvirt_sarray_ptr, request_virt_sarray, (j_common_ptr cinfo, - int pool_id, - boolean pre_zero, - JDIMENSION samplesperrow, - JDIMENSION numrows, - JDIMENSION maxaccess)); - JMETHOD(jvirt_barray_ptr, request_virt_barray, (j_common_ptr cinfo, - int pool_id, - boolean pre_zero, - JDIMENSION blocksperrow, - JDIMENSION numrows, - JDIMENSION maxaccess)); - JMETHOD(void, realize_virt_arrays, (j_common_ptr cinfo)); - JMETHOD(JSAMPARRAY, access_virt_sarray, (j_common_ptr cinfo, - jvirt_sarray_ptr ptr, - JDIMENSION start_row, - JDIMENSION num_rows, - boolean writable)); - JMETHOD(JBLOCKARRAY, access_virt_barray, (j_common_ptr cinfo, - jvirt_barray_ptr ptr, - JDIMENSION start_row, - JDIMENSION num_rows, - boolean writable)); - JMETHOD(void, free_pool, (j_common_ptr cinfo, int pool_id)); - JMETHOD(void, self_destruct, (j_common_ptr cinfo)); - - /* Limit on memory allocation for this JPEG object. (Note that this is - * merely advisory, not a guaranteed maximum; it only affects the space - * used for virtual-array buffers.) May be changed by outer application - * after creating the JPEG object. - */ - long max_memory_to_use; - - /* Maximum allocation request accepted by alloc_large. */ - long max_alloc_chunk; -}; - - -/* Routine signature for application-supplied marker processing methods. - * Need not pass marker code since it is stored in cinfo->unread_marker. - */ -typedef JMETHOD(boolean, jpeg_marker_parser_method, (j_decompress_ptr cinfo)); - - -/* Declarations for routines called by application. - * The JPP macro hides prototype parameters from compilers that can't cope. - * Note JPP requires double parentheses. - */ - -#ifdef HAVE_PROTOTYPES -#define JPP(arglist) arglist -#else -#define JPP(arglist) () -#endif - - -/* Short forms of external names for systems with brain-damaged linkers. - * We shorten external names to be unique in the first six letters, which - * is good enough for all known systems. - * (If your compiler itself needs names to be unique in less than 15 - * characters, you are out of luck. Get a better compiler.) - */ - -#ifdef NEED_SHORT_EXTERNAL_NAMES -#define jpeg_std_error jStdError -#define jpeg_CreateCompress jCreaCompress -#define jpeg_CreateDecompress jCreaDecompress -#define jpeg_destroy_compress jDestCompress -#define jpeg_destroy_decompress jDestDecompress -#define jpeg_stdio_dest jStdDest -#define jpeg_stdio_src jStdSrc -#define jpeg_set_defaults jSetDefaults -#define jpeg_set_colorspace jSetColorspace -#define jpeg_default_colorspace jDefColorspace -#define jpeg_set_quality jSetQuality -#define jpeg_set_linear_quality jSetLQuality -#define jpeg_add_quant_table jAddQuantTable -#define jpeg_quality_scaling jQualityScaling -#define jpeg_simple_progression jSimProgress -#define jpeg_suppress_tables jSuppressTables -#define jpeg_alloc_quant_table jAlcQTable -#define jpeg_alloc_huff_table jAlcHTable -#define jpeg_start_compress jStrtCompress -#define jpeg_write_scanlines jWrtScanlines -#define jpeg_finish_compress jFinCompress -#define jpeg_write_raw_data jWrtRawData -#define jpeg_write_marker jWrtMarker -#define jpeg_write_m_header jWrtMHeader -#define jpeg_write_m_byte jWrtMByte -#define jpeg_write_tables jWrtTables -#define jpeg_read_header jReadHeader -#define jpeg_start_decompress jStrtDecompress -#define jpeg_read_scanlines jReadScanlines -#define jpeg_finish_decompress jFinDecompress -#define jpeg_read_raw_data jReadRawData -#define jpeg_has_multiple_scans jHasMultScn -#define jpeg_start_output jStrtOutput -#define jpeg_finish_output jFinOutput -#define jpeg_input_complete jInComplete -#define jpeg_new_colormap jNewCMap -#define jpeg_consume_input jConsumeInput -#define jpeg_calc_output_dimensions jCalcDimensions -#define jpeg_save_markers jSaveMarkers -#define jpeg_set_marker_processor jSetMarker -#define jpeg_read_coefficients jReadCoefs -#define jpeg_write_coefficients jWrtCoefs -#define jpeg_copy_critical_parameters jCopyCrit -#define jpeg_abort_compress jAbrtCompress -#define jpeg_abort_decompress jAbrtDecompress -#define jpeg_abort jAbort -#define jpeg_destroy jDestroy -#define jpeg_resync_to_restart jResyncRestart -#endif /* NEED_SHORT_EXTERNAL_NAMES */ - - -/* Default error-management setup */ -EXTERN(struct jpeg_error_mgr *) jpeg_std_error - JPP((struct jpeg_error_mgr * err)); - -/* Initialization of JPEG compression objects. - * jpeg_create_compress() and jpeg_create_decompress() are the exported - * names that applications should call. These expand to calls on - * jpeg_CreateCompress and jpeg_CreateDecompress with additional information - * passed for version mismatch checking. - * NB: you must set up the error-manager BEFORE calling jpeg_create_xxx. - */ -#define jpeg_create_compress(cinfo) \ - jpeg_CreateCompress((cinfo), JPEG_LIB_VERSION, \ - (size_t) sizeof(struct jpeg_compress_struct)) -#define jpeg_create_decompress(cinfo) \ - jpeg_CreateDecompress((cinfo), JPEG_LIB_VERSION, \ - (size_t) sizeof(struct jpeg_decompress_struct)) -EXTERN(void) jpeg_CreateCompress JPP((j_compress_ptr cinfo, - int version, size_t structsize)); -EXTERN(void) jpeg_CreateDecompress JPP((j_decompress_ptr cinfo, - int version, size_t structsize)); -/* Destruction of JPEG compression objects */ -EXTERN(void) jpeg_destroy_compress JPP((j_compress_ptr cinfo)); -EXTERN(void) jpeg_destroy_decompress JPP((j_decompress_ptr cinfo)); - -/* Standard data source and destination managers: stdio streams. */ -/* Caller is responsible for opening the file before and closing after. */ -EXTERN(void) jpeg_stdio_dest JPP((j_compress_ptr cinfo, FILE * outfile)); -EXTERN(void) jpeg_stdio_src JPP((j_decompress_ptr cinfo, FILE * infile)); - -/* Default parameter setup for compression */ -EXTERN(void) jpeg_set_defaults JPP((j_compress_ptr cinfo)); -/* Compression parameter setup aids */ -EXTERN(void) jpeg_set_colorspace JPP((j_compress_ptr cinfo, - J_COLOR_SPACE colorspace)); -EXTERN(void) jpeg_default_colorspace JPP((j_compress_ptr cinfo)); -EXTERN(void) jpeg_set_quality JPP((j_compress_ptr cinfo, int quality, - boolean force_baseline)); -EXTERN(void) jpeg_set_linear_quality JPP((j_compress_ptr cinfo, - int scale_factor, - boolean force_baseline)); -EXTERN(void) jpeg_add_quant_table JPP((j_compress_ptr cinfo, int which_tbl, - const unsigned int *basic_table, - int scale_factor, - boolean force_baseline)); -EXTERN(int) jpeg_quality_scaling JPP((int quality)); -EXTERN(void) jpeg_simple_progression JPP((j_compress_ptr cinfo)); -EXTERN(void) jpeg_suppress_tables JPP((j_compress_ptr cinfo, - boolean suppress)); -EXTERN(JQUANT_TBL *) jpeg_alloc_quant_table JPP((j_common_ptr cinfo)); -EXTERN(JHUFF_TBL *) jpeg_alloc_huff_table JPP((j_common_ptr cinfo)); - -/* Main entry points for compression */ -EXTERN(void) jpeg_start_compress JPP((j_compress_ptr cinfo, - boolean write_all_tables)); -EXTERN(JDIMENSION) jpeg_write_scanlines JPP((j_compress_ptr cinfo, - JSAMPARRAY scanlines, - JDIMENSION num_lines)); -EXTERN(void) jpeg_finish_compress JPP((j_compress_ptr cinfo)); - -/* Replaces jpeg_write_scanlines when writing raw downsampled data. */ -EXTERN(JDIMENSION) jpeg_write_raw_data JPP((j_compress_ptr cinfo, - JSAMPIMAGE data, - JDIMENSION num_lines)); - -/* Write a special marker. See libjpeg.doc concerning safe usage. */ -EXTERN(void) jpeg_write_marker - JPP((j_compress_ptr cinfo, int marker, - const JOCTET * dataptr, unsigned int datalen)); -/* Same, but piecemeal. */ -EXTERN(void) jpeg_write_m_header - JPP((j_compress_ptr cinfo, int marker, unsigned int datalen)); -EXTERN(void) jpeg_write_m_byte - JPP((j_compress_ptr cinfo, int val)); - -/* Alternate compression function: just write an abbreviated table file */ -EXTERN(void) jpeg_write_tables JPP((j_compress_ptr cinfo)); - -/* Decompression startup: read start of JPEG datastream to see what's there */ -EXTERN(int) jpeg_read_header JPP((j_decompress_ptr cinfo, - boolean require_image)); -/* Return value is one of: */ -#define JPEG_SUSPENDED 0 /* Suspended due to lack of input data */ -#define JPEG_HEADER_OK 1 /* Found valid image datastream */ -#define JPEG_HEADER_TABLES_ONLY 2 /* Found valid table-specs-only datastream */ -/* If you pass require_image = TRUE (normal case), you need not check for - * a TABLES_ONLY return code; an abbreviated file will cause an error exit. - * JPEG_SUSPENDED is only possible if you use a data source module that can - * give a suspension return (the stdio source module doesn't). - */ - -/* Main entry points for decompression */ -EXTERN(boolean) jpeg_start_decompress JPP((j_decompress_ptr cinfo)); -EXTERN(JDIMENSION) jpeg_read_scanlines JPP((j_decompress_ptr cinfo, - JSAMPARRAY scanlines, - JDIMENSION max_lines)); -EXTERN(boolean) jpeg_finish_decompress JPP((j_decompress_ptr cinfo)); - -/* Replaces jpeg_read_scanlines when reading raw downsampled data. */ -EXTERN(JDIMENSION) jpeg_read_raw_data JPP((j_decompress_ptr cinfo, - JSAMPIMAGE data, - JDIMENSION max_lines)); - -/* Additional entry points for buffered-image mode. */ -EXTERN(boolean) jpeg_has_multiple_scans JPP((j_decompress_ptr cinfo)); -EXTERN(boolean) jpeg_start_output JPP((j_decompress_ptr cinfo, - int scan_number)); -EXTERN(boolean) jpeg_finish_output JPP((j_decompress_ptr cinfo)); -EXTERN(boolean) jpeg_input_complete JPP((j_decompress_ptr cinfo)); -EXTERN(void) jpeg_new_colormap JPP((j_decompress_ptr cinfo)); -EXTERN(int) jpeg_consume_input JPP((j_decompress_ptr cinfo)); -/* Return value is one of: */ -/* #define JPEG_SUSPENDED 0 Suspended due to lack of input data */ -#define JPEG_REACHED_SOS 1 /* Reached start of new scan */ -#define JPEG_REACHED_EOI 2 /* Reached end of image */ -#define JPEG_ROW_COMPLETED 3 /* Completed one iMCU row */ -#define JPEG_SCAN_COMPLETED 4 /* Completed last iMCU row of a scan */ - -/* Precalculate output dimensions for current decompression parameters. */ -EXTERN(void) jpeg_calc_output_dimensions JPP((j_decompress_ptr cinfo)); - -/* Control saving of COM and APPn markers into marker_list. */ -EXTERN(void) jpeg_save_markers - JPP((j_decompress_ptr cinfo, int marker_code, - unsigned int length_limit)); - -/* Install a special processing method for COM or APPn markers. */ -EXTERN(void) jpeg_set_marker_processor - JPP((j_decompress_ptr cinfo, int marker_code, - jpeg_marker_parser_method routine)); - -/* Read or write raw DCT coefficients --- useful for lossless transcoding. */ -EXTERN(jvirt_barray_ptr *) jpeg_read_coefficients JPP((j_decompress_ptr cinfo)); -EXTERN(void) jpeg_write_coefficients JPP((j_compress_ptr cinfo, - jvirt_barray_ptr * coef_arrays)); -EXTERN(void) jpeg_copy_critical_parameters JPP((j_decompress_ptr srcinfo, - j_compress_ptr dstinfo)); - -/* If you choose to abort compression or decompression before completing - * jpeg_finish_(de)compress, then you need to clean up to release memory, - * temporary files, etc. You can just call jpeg_destroy_(de)compress - * if you're done with the JPEG object, but if you want to clean it up and - * reuse it, call this: - */ -EXTERN(void) jpeg_abort_compress JPP((j_compress_ptr cinfo)); -EXTERN(void) jpeg_abort_decompress JPP((j_decompress_ptr cinfo)); - -/* Generic versions of jpeg_abort and jpeg_destroy that work on either - * flavor of JPEG object. These may be more convenient in some places. - */ -EXTERN(void) jpeg_abort JPP((j_common_ptr cinfo)); -EXTERN(void) jpeg_destroy JPP((j_common_ptr cinfo)); - -/* Default restart-marker-resync procedure for use by data source modules */ -EXTERN(boolean) jpeg_resync_to_restart JPP((j_decompress_ptr cinfo, - int desired)); - - -/* These marker codes are exported since applications and data source modules - * are likely to want to use them. - */ - -#define JPEG_RST0 0xD0 /* RST0 marker code */ -#define JPEG_EOI 0xD9 /* EOI marker code */ -#define JPEG_APP0 0xE0 /* APP0 marker code */ -#define JPEG_COM 0xFE /* COM marker code */ - - -/* If we have a brain-damaged compiler that emits warnings (or worse, errors) - * for structure definitions that are never filled in, keep it quiet by - * supplying dummy definitions for the various substructures. - */ - -#ifdef INCOMPLETE_TYPES_BROKEN -#ifndef JPEG_INTERNALS /* will be defined in jpegint.h */ -struct jvirt_sarray_control { long dummy; }; -struct jvirt_barray_control { long dummy; }; -struct jpeg_comp_master { long dummy; }; -struct jpeg_c_main_controller { long dummy; }; -struct jpeg_c_prep_controller { long dummy; }; -struct jpeg_c_coef_controller { long dummy; }; -struct jpeg_marker_writer { long dummy; }; -struct jpeg_color_converter { long dummy; }; -struct jpeg_downsampler { long dummy; }; -struct jpeg_forward_dct { long dummy; }; -struct jpeg_entropy_encoder { long dummy; }; -struct jpeg_decomp_master { long dummy; }; -struct jpeg_d_main_controller { long dummy; }; -struct jpeg_d_coef_controller { long dummy; }; -struct jpeg_d_post_controller { long dummy; }; -struct jpeg_input_controller { long dummy; }; -struct jpeg_marker_reader { long dummy; }; -struct jpeg_entropy_decoder { long dummy; }; -struct jpeg_inverse_dct { long dummy; }; -struct jpeg_upsampler { long dummy; }; -struct jpeg_color_deconverter { long dummy; }; -struct jpeg_color_quantizer { long dummy; }; -#endif /* JPEG_INTERNALS */ -#endif /* INCOMPLETE_TYPES_BROKEN */ - - -/* - * The JPEG library modules define JPEG_INTERNALS before including this file. - * The internal structure declarations are read only when that is true. - * Applications using the library should not include jpegint.h, but may wish - * to include jerror.h. - */ - -#ifdef JPEG_INTERNALS -#include "jpegint.h" /* fetch private declarations */ -#include "jerror.h" /* fetch error codes too */ -#endif - -#endif /* JPEGLIB_H */ diff --git a/contrib/media/updf_newlib/include/jpt.h b/contrib/media/updf_newlib/include/jpt.h deleted file mode 100755 index eb01f98eb8..0000000000 --- a/contrib/media/updf_newlib/include/jpt.h +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright (c) 2002-2007, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium - * Copyright (c) 2002-2007, Professor Benoit Macq - * Copyright (c) 2002-2003, Yannick Verschueren - * Copyright (c) 2005, Herve Drolon, FreeImage Team - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS' - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef __JPT_H -#define __JPT_H -/** -@file jpt.h -@brief JPT-stream reader (JPEG 2000, JPIP) - -JPT-stream functions are implemented in J2K.C. -*/ - -/** -Message Header JPT stream structure -*/ -typedef struct opj_jpt_msg_header { - /** In-class Identifier */ - unsigned int Id; - /** Last byte information */ - unsigned int last_byte; - /** Class Identifier */ - unsigned int Class_Id; - /** CSn : index identifier */ - unsigned int CSn_Id; - /** Message offset */ - unsigned int Msg_offset; - /** Message length */ - unsigned int Msg_length; - /** Auxiliary for JPP case */ - unsigned int Layer_nb; -} opj_jpt_msg_header_t; - -/* ----------------------------------------------------------------------- */ - -/** -Initialize the value of the message header structure -@param header Message header structure -*/ -void jpt_init_msg_header(opj_jpt_msg_header_t * header); - -/** -Read the message header for a JPP/JPT - stream -@param cinfo Codec context info -@param cio CIO handle -@param header Message header structure -*/ -void jpt_read_msg_header(opj_common_ptr cinfo, opj_cio_t *cio, opj_jpt_msg_header_t *header); - -#endif diff --git a/contrib/media/updf_newlib/include/openjpeg.h b/contrib/media/updf_newlib/include/openjpeg.h deleted file mode 100755 index 7ad62bf6dc..0000000000 --- a/contrib/media/updf_newlib/include/openjpeg.h +++ /dev/null @@ -1,915 +0,0 @@ - /* - * Copyright (c) 2002-2007, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium - * Copyright (c) 2002-2007, Professor Benoit Macq - * Copyright (c) 2001-2003, David Janssens - * Copyright (c) 2002-2003, Yannick Verschueren - * Copyright (c) 2003-2007, Francois-Olivier Devaux and Antonin Descampe - * Copyright (c) 2005, Herve Drolon, FreeImage Team - * Copyright (c) 2006-2007, Parvatha Elangovan - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS' - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ -#ifndef OPENJPEG_H -#define OPENJPEG_H - - -/* -========================================================== - Compiler directives -========================================================== -*/ - -#if defined(OPJ_STATIC) || !defined(_WIN32) -#define OPJ_API -#define OPJ_CALLCONV -#else -#define OPJ_CALLCONV __stdcall -/* -The following ifdef block is the standard way of creating macros which make exporting -from a DLL simpler. All files within this DLL are compiled with the OPJ_EXPORTS -symbol defined on the command line. this symbol should not be defined on any project -that uses this DLL. This way any other project whose source files include this file see -OPJ_API functions as being imported from a DLL, wheras this DLL sees symbols -defined with this macro as being exported. -*/ -#if defined(OPJ_EXPORTS) || defined(DLL_EXPORT) -#define OPJ_API __declspec(dllexport) -#else -#define OPJ_API __declspec(dllimport) -#endif /* OPJ_EXPORTS */ -#endif /* !OPJ_STATIC || !_WIN32 */ - -#ifndef __cplusplus -#if defined(HAVE_STDBOOL_H) -/* -The C language implementation does correctly provide the standard header -file "stdbool.h". - */ -#include -#else -/* -The C language implementation does not provide the standard header file -"stdbool.h" as required by ISO/IEC 9899:1999. Try to compensate for this -braindamage below. -*/ -#if !defined(bool) -#define bool int -#endif -#if !defined(true) -#define true 1 -#endif -#if !defined(false) -#define false 0 -#endif -#endif -#endif /* __cplusplus */ - -/* -========================================================== - Useful constant definitions -========================================================== -*/ - -#define OPJ_PATH_LEN 4096 /**< Maximum allowed size for filenames */ - -#define J2K_MAXRLVLS 33 /**< Number of maximum resolution level authorized */ -#define J2K_MAXBANDS (3*J2K_MAXRLVLS-2) /**< Number of maximum sub-band linked to number of resolution level */ - -/* UniPG>> */ -#define JPWL_MAX_NO_TILESPECS 16 /**< Maximum number of tile parts expected by JPWL: increase at your will */ -#define JPWL_MAX_NO_PACKSPECS 16 /**< Maximum number of packet parts expected by JPWL: increase at your will */ -#define JPWL_MAX_NO_MARKERS 512 /**< Maximum number of JPWL markers: increase at your will */ -#define JPWL_PRIVATEINDEX_NAME "jpwl_index_privatefilename" /**< index file name used when JPWL is on */ -#define JPWL_EXPECTED_COMPONENTS 3 /**< Expect this number of components, so you'll find better the first EPB */ -#define JPWL_MAXIMUM_TILES 8192 /**< Expect this maximum number of tiles, to avoid some crashes */ -#define JPWL_MAXIMUM_HAMMING 2 /**< Expect this maximum number of bit errors in marker id's */ -#define JPWL_MAXIMUM_EPB_ROOM 65450 /**< Expect this maximum number of bytes for composition of EPBs */ -/* < -
  • Error messages -
  • Warning messages -
  • Debugging messages - -*/ -typedef struct opj_event_mgr { - /** Error message callback if available, NULL otherwise */ - opj_msg_callback error_handler; - /** Warning message callback if available, NULL otherwise */ - opj_msg_callback warning_handler; - /** Debug message callback if available, NULL otherwise */ - opj_msg_callback info_handler; -} opj_event_mgr_t; - - -/* -========================================================== - codec typedef definitions -========================================================== -*/ - -/** -Progression order changes -*/ -typedef struct opj_poc { - /** Resolution num start, Component num start, given by POC */ - int resno0, compno0; - /** Layer num end,Resolution num end, Component num end, given by POC */ - int layno1, resno1, compno1; - /** Layer num start,Precinct num start, Precinct num end */ - int layno0, precno0, precno1; - /** Progression order enum*/ - OPJ_PROG_ORDER prg1,prg; - /** Progression order string*/ - char progorder[5]; - /** Tile number */ - int tile; - /** Start and end values for Tile width and height*/ - int tx0,tx1,ty0,ty1; - /** Start value, initialised in pi_initialise_encode*/ - int layS, resS, compS, prcS; - /** End value, initialised in pi_initialise_encode */ - int layE, resE, compE, prcE; - /** Start and end values of Tile width and height, initialised in pi_initialise_encode*/ - int txS,txE,tyS,tyE,dx,dy; - /** Temporary values for Tile parts, initialised in pi_create_encode */ - int lay_t, res_t, comp_t, prc_t,tx0_t,ty0_t; -} opj_poc_t; - -/** -Compression parameters -*/ -typedef struct opj_cparameters { - /** size of tile: tile_size_on = false (not in argument) or = true (in argument) */ - bool tile_size_on; - /** XTOsiz */ - int cp_tx0; - /** YTOsiz */ - int cp_ty0; - /** XTsiz */ - int cp_tdx; - /** YTsiz */ - int cp_tdy; - /** allocation by rate/distortion */ - int cp_disto_alloc; - /** allocation by fixed layer */ - int cp_fixed_alloc; - /** add fixed_quality */ - int cp_fixed_quality; - /** fixed layer */ - int *cp_matrice; - /** comment for coding */ - char *cp_comment; - /** csty : coding style */ - int csty; - /** progression order (default LRCP) */ - OPJ_PROG_ORDER prog_order; - /** progression order changes */ - opj_poc_t POC[32]; - /** number of progression order changes (POC), default to 0 */ - int numpocs; - /** number of layers */ - int tcp_numlayers; - /** rates of layers */ - float tcp_rates[100]; - /** different psnr for successive layers */ - float tcp_distoratio[100]; - /** number of resolutions */ - int numresolution; - /** initial code block width, default to 64 */ - int cblockw_init; - /** initial code block height, default to 64 */ - int cblockh_init; - /** mode switch (cblk_style) */ - int mode; - /** 1 : use the irreversible DWT 9-7, 0 : use lossless compression (default) */ - int irreversible; - /** region of interest: affected component in [0..3], -1 means no ROI */ - int roi_compno; - /** region of interest: upshift value */ - int roi_shift; - /* number of precinct size specifications */ - int res_spec; - /** initial precinct width */ - int prcw_init[J2K_MAXRLVLS]; - /** initial precinct height */ - int prch_init[J2K_MAXRLVLS]; - - /**@name command line encoder parameters (not used inside the library) */ - /*@{*/ - /** input file name */ - char infile[OPJ_PATH_LEN]; - /** output file name */ - char outfile[OPJ_PATH_LEN]; - /** DEPRECATED. Index generation is now handeld with the opj_encode_with_info() function. Set to NULL */ - int index_on; - /** DEPRECATED. Index generation is now handeld with the opj_encode_with_info() function. Set to NULL */ - char index[OPJ_PATH_LEN]; - /** subimage encoding: origin image offset in x direction */ - int image_offset_x0; - /** subimage encoding: origin image offset in y direction */ - int image_offset_y0; - /** subsampling value for dx */ - int subsampling_dx; - /** subsampling value for dy */ - int subsampling_dy; - /** input file format 0: PGX, 1: PxM, 2: BMP 3:TIF*/ - int decod_format; - /** output file format 0: J2K, 1: JP2, 2: JPT */ - int cod_format; - /*@}*/ - -/* UniPG>> */ - /**@name JPWL encoding parameters */ - /*@{*/ - /** enables writing of EPC in MH, thus activating JPWL */ - bool jpwl_epc_on; - /** error protection method for MH (0,1,16,32,37-128) */ - int jpwl_hprot_MH; - /** tile number of header protection specification (>=0) */ - int jpwl_hprot_TPH_tileno[JPWL_MAX_NO_TILESPECS]; - /** error protection methods for TPHs (0,1,16,32,37-128) */ - int jpwl_hprot_TPH[JPWL_MAX_NO_TILESPECS]; - /** tile number of packet protection specification (>=0) */ - int jpwl_pprot_tileno[JPWL_MAX_NO_PACKSPECS]; - /** packet number of packet protection specification (>=0) */ - int jpwl_pprot_packno[JPWL_MAX_NO_PACKSPECS]; - /** error protection methods for packets (0,1,16,32,37-128) */ - int jpwl_pprot[JPWL_MAX_NO_PACKSPECS]; - /** enables writing of ESD, (0=no/1/2 bytes) */ - int jpwl_sens_size; - /** sensitivity addressing size (0=auto/2/4 bytes) */ - int jpwl_sens_addr; - /** sensitivity range (0-3) */ - int jpwl_sens_range; - /** sensitivity method for MH (-1=no,0-7) */ - int jpwl_sens_MH; - /** tile number of sensitivity specification (>=0) */ - int jpwl_sens_TPH_tileno[JPWL_MAX_NO_TILESPECS]; - /** sensitivity methods for TPHs (-1=no,0-7) */ - int jpwl_sens_TPH[JPWL_MAX_NO_TILESPECS]; - /*@}*/ -/* <> */ - /**@name JPWL decoding parameters */ - /*@{*/ - /** activates the JPWL correction capabilities */ - bool jpwl_correct; - /** expected number of components */ - int jpwl_exp_comps; - /** maximum number of tiles */ - int jpwl_max_tiles; - /*@}*/ -/* <> */ -/** -Marker structure -*/ -typedef struct opj_marker_info_t { - /** marker type */ - unsigned short int type; - /** position in codestream */ - int pos; - /** length, marker val included */ - int len; -} opj_marker_info_t; -/* <> */ - /** number of markers */ - int marknum; - /** list of markers */ - opj_marker_info_t *marker; - /** actual size of markers array */ - int maxmarknum; -/* <cp. -@param dinfo decompressor handle -@param parameters decompression parameters -*/ -OPJ_API void OPJ_CALLCONV opj_setup_decoder(opj_dinfo_t *dinfo, opj_dparameters_t *parameters); -/** -Decode an image from a JPEG-2000 codestream -@param dinfo decompressor handle -@param cio Input buffer stream -@return Returns a decoded image if successful, returns NULL otherwise -*/ -OPJ_API opj_image_t* OPJ_CALLCONV opj_decode(opj_dinfo_t *dinfo, opj_cio_t *cio); - -/** -Decode an image from a JPEG-2000 codestream and extract the codestream information -@param dinfo decompressor handle -@param cio Input buffer stream -@param cstr_info Codestream information structure if needed afterwards, NULL otherwise -@return Returns a decoded image if successful, returns NULL otherwise -*/ -OPJ_API opj_image_t* OPJ_CALLCONV opj_decode_with_info(opj_dinfo_t *dinfo, opj_cio_t *cio, opj_codestream_info_t *cstr_info); -/** -Creates a J2K/JP2 compression structure -@param format Coder to select -@return Returns a handle to a compressor if successful, returns NULL otherwise -*/ -OPJ_API opj_cinfo_t* OPJ_CALLCONV opj_create_compress(OPJ_CODEC_FORMAT format); -/** -Destroy a compressor handle -@param cinfo compressor handle to destroy -*/ -OPJ_API void OPJ_CALLCONV opj_destroy_compress(opj_cinfo_t *cinfo); -/** -Set encoding parameters to default values, that means : -
      -
    • Lossless -
    • 1 tile -
    • Size of precinct : 2^15 x 2^15 (means 1 precinct) -
    • Size of code-block : 64 x 64 -
    • Number of resolutions: 6 -
    • No SOP marker in the codestream -
    • No EPH marker in the codestream -
    • No sub-sampling in x or y direction -
    • No mode switch activated -
    • Progression order: LRCP -
    • No index file -
    • No ROI upshifted -
    • No offset of the origin of the image -
    • No offset of the origin of the tiles -
    • Reversible DWT 5-3 -
    -@param parameters Compression parameters -*/ -OPJ_API void OPJ_CALLCONV opj_set_default_encoder_parameters(opj_cparameters_t *parameters); -/** -Setup the encoder parameters using the current image and using user parameters. -@param cinfo Compressor handle -@param parameters Compression parameters -@param image Input filled image -*/ -OPJ_API void OPJ_CALLCONV opj_setup_encoder(opj_cinfo_t *cinfo, opj_cparameters_t *parameters, opj_image_t *image); -/** -Encode an image into a JPEG-2000 codestream -@param cinfo compressor handle -@param cio Output buffer stream -@param image Image to encode -@param index Depreacted -> Set to NULL. To extract index, used opj_encode_wci() -@return Returns true if successful, returns false otherwise -*/ -OPJ_API bool OPJ_CALLCONV opj_encode(opj_cinfo_t *cinfo, opj_cio_t *cio, opj_image_t *image, char *index); -/** -Encode an image into a JPEG-2000 codestream and extract the codestream information -@param cinfo compressor handle -@param cio Output buffer stream -@param image Image to encode -@param cstr_info Codestream information structure if needed afterwards, NULL otherwise -@return Returns true if successful, returns false otherwise -*/ -OPJ_API bool OPJ_CALLCONV opj_encode_with_info(opj_cinfo_t *cinfo, opj_cio_t *cio, opj_image_t *image, opj_codestream_info_t *cstr_info); -/** -Destroy Codestream information after compression or decompression -@param cstr_info Codestream information structure -*/ -OPJ_API void OPJ_CALLCONV opj_destroy_cstr_info(opj_codestream_info_t *cstr_info); - -#ifdef __cplusplus -} -#endif - -#endif /* OPENJPEG_H */ diff --git a/contrib/media/updf_newlib/pdf/Makefile b/contrib/media/updf_newlib/pdf/Makefile index 4704862543..d871041b79 100755 --- a/contrib/media/updf_newlib/pdf/Makefile +++ b/contrib/media/updf_newlib/pdf/Makefile @@ -2,12 +2,10 @@ CC = kos32-gcc LD = kos32-ld SDK_DIR = $(abspath ../../../sdk) -LDFLAGS = -call_shared -nostdlib -T $(SDK_DIR)/sources/newlib/app-dynamic.lds --image-base 0 CFLAGS = -c -fno-ident -O2 -fomit-frame-pointer -fno-ident -U__WIN32__ -U_Win32 -U_WIN32 -U__MINGW32__ -UWIN32 INCLUDES = -I $(SDK_DIR)/sources/newlib/libc/include -I ../fitz -I $(SDK_DIR)/sources/freetype/include -LIBPATH = -L $(SDK_DIR)/lib -L /home/autobuild/tools/win32/mingw32/lib PDF_SRC := $(notdir $(wildcard *.c)) OBJECTS = $(patsubst %.c, %.o, $(PDF_SRC))