00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef JPEGLIB_H
00014 #define JPEGLIB_H
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef JCONFIG_INCLUDED
00024 #include "jconfig16.h"
00025 #endif
00026 #include "jmorecfg16.h"
00027
00028
00029
00030
00031
00032
00033 #define JPEG_LIB_VERSION 62
00034
00035
00036
00037
00038
00039
00040
00041 #define DCTSIZE 8
00042 #define DCTSIZE2 64
00043 #define NUM_QUANT_TBLS 4
00044 #define NUM_HUFF_TBLS 4
00045 #define NUM_ARITH_TBLS 16
00046 #define MAX_COMPS_IN_SCAN 4
00047 #define MAX_SAMP_FACTOR 4
00048
00049
00050
00051
00052
00053
00054
00055
00056 #define C_MAX_DATA_UNITS_IN_MCU 10
00057 #ifndef D_MAX_DATA_UNITS_IN_MCU
00058 #define D_MAX_DATA_UNITS_IN_MCU 10
00059 #endif
00060
00061
00062
00063
00064
00065
00066
00067 typedef JSAMPLE FAR *JSAMPROW;
00068 typedef JSAMPROW *JSAMPARRAY;
00069 typedef JSAMPARRAY *JSAMPIMAGE;
00070
00071 typedef JCOEF JBLOCK[DCTSIZE2];
00072 typedef JBLOCK FAR *JBLOCKROW;
00073 typedef JBLOCKROW *JBLOCKARRAY;
00074 typedef JBLOCKARRAY *JBLOCKIMAGE;
00075
00076 typedef JCOEF FAR *JCOEFPTR;
00077
00078 typedef JDIFF FAR *JDIFFROW;
00079 typedef JDIFFROW *JDIFFARRAY;
00080 typedef JDIFFARRAY *JDIFFIMAGE;
00081
00082
00083
00084
00085
00086
00087
00088 typedef struct {
00089
00090
00091
00092
00093 UINT16 quantval[DCTSIZE2];
00094
00095
00096
00097
00098
00099 boolean sent_table;
00100 } JQUANT_TBL;
00101
00102
00103
00104
00105 typedef struct {
00106
00107 UINT8 bits[17];
00108
00109 UINT8 huffval[256];
00110
00111
00112
00113
00114
00115 boolean sent_table;
00116 } JHUFF_TBL;
00117
00118
00119
00120
00121 typedef struct {
00122
00123
00124
00125 int component_id;
00126 int component_index;
00127 int h_samp_factor;
00128 int v_samp_factor;
00129 int quant_tbl_no;
00130
00131
00132
00133
00134 int dc_tbl_no;
00135 int ac_tbl_no;
00136
00137
00138
00139
00140
00141
00142
00143
00144 JDIMENSION width_in_data_units;
00145 JDIMENSION height_in_data_units;
00146
00147
00148
00149
00150
00151
00152
00153 int codec_data_unit;
00154
00155
00156
00157
00158
00159
00160
00161 JDIMENSION downsampled_width;
00162 JDIMENSION downsampled_height;
00163
00164
00165
00166
00167 boolean component_needed;
00168
00169
00170
00171 int MCU_width;
00172 int MCU_height;
00173 int MCU_data_units;
00174 int MCU_sample_width;
00175 int last_col_width;
00176 int last_row_height;
00177
00178
00179
00180
00181
00182 JQUANT_TBL * quant_table;
00183
00184
00185 void * dct_table;
00186 } jpeg_component_info;
00187
00188
00189
00190
00191 typedef struct {
00192 int comps_in_scan;
00193 int component_index[MAX_COMPS_IN_SCAN];
00194 int Ss, Se;
00195
00196 int Ah, Al;
00197
00198 } jpeg_scan_info;
00199
00200
00201
00202 typedef struct jpeg_marker_struct FAR * jpeg_saved_marker_ptr;
00203
00204 struct jpeg_marker_struct {
00205 jpeg_saved_marker_ptr next;
00206 UINT8 marker;
00207 unsigned int original_length;
00208 unsigned int data_length;
00209 JOCTET FAR * data;
00210
00211 };
00212
00213
00214
00215 typedef enum {
00216 JPROC_SEQUENTIAL,
00217 JPROC_PROGRESSIVE,
00218 JPROC_LOSSLESS
00219 } J_CODEC_PROCESS;
00220
00221
00222
00223 typedef enum {
00224 JCS_UNKNOWN,
00225 JCS_GRAYSCALE,
00226 JCS_RGB,
00227 JCS_YCbCr,
00228 JCS_CMYK,
00229 JCS_YCCK
00230 } J_COLOR_SPACE;
00231
00232
00233
00234 typedef enum {
00235 JDCT_ISLOW,
00236 JDCT_IFAST,
00237 JDCT_FLOAT
00238 } J_DCT_METHOD;
00239
00240 #ifndef JDCT_DEFAULT
00241 #define JDCT_DEFAULT JDCT_ISLOW
00242 #endif
00243 #ifndef JDCT_FASTEST
00244 #define JDCT_FASTEST JDCT_IFAST
00245 #endif
00246
00247
00248
00249 typedef enum {
00250 JDITHER_NONE,
00251 JDITHER_ORDERED,
00252 JDITHER_FS
00253 } J_DITHER_MODE;
00254
00255
00256
00257
00258 #define jpeg_common_fields \
00259 struct jpeg_error_mgr * err; \
00260 struct jpeg_memory_mgr * mem; \
00261 struct jpeg_progress_mgr * progress; \
00262 void * client_data; \
00263 boolean is_decompressor; \
00264 int global_state
00265
00266
00267
00268
00269
00270 struct jpeg_common_struct {
00271 jpeg_common_fields;
00272
00273
00274
00275
00276 };
00277
00278 typedef struct jpeg_common_struct * j_common_ptr;
00279 typedef struct jpeg_compress_struct * j_compress_ptr;
00280 typedef struct jpeg_decompress_struct * j_decompress_ptr;
00281
00282
00283
00284
00285 struct jpeg_compress_struct {
00286 jpeg_common_fields;
00287
00288
00289 struct jpeg_destination_mgr * dest;
00290
00291
00292
00293
00294
00295
00296 JDIMENSION image_width;
00297 JDIMENSION image_height;
00298 int input_components;
00299 J_COLOR_SPACE in_color_space;
00300
00301 double input_gamma;
00302
00303
00304
00305
00306
00307
00308
00309
00310
00311 boolean lossless;
00312
00313 int data_precision;
00314
00315 int num_components;
00316 J_COLOR_SPACE jpeg_color_space;
00317
00318 jpeg_component_info * comp_info;
00319
00320
00321 JQUANT_TBL * quant_tbl_ptrs[NUM_QUANT_TBLS];
00322
00323
00324 JHUFF_TBL * dc_huff_tbl_ptrs[NUM_HUFF_TBLS];
00325 JHUFF_TBL * ac_huff_tbl_ptrs[NUM_HUFF_TBLS];
00326
00327
00328 UINT8 arith_dc_L[NUM_ARITH_TBLS];
00329 UINT8 arith_dc_U[NUM_ARITH_TBLS];
00330 UINT8 arith_ac_K[NUM_ARITH_TBLS];
00331
00332 int num_scans;
00333 const jpeg_scan_info * scan_info;
00334
00335
00336
00337
00338
00339 boolean raw_data_in;
00340 boolean arith_code;
00341 boolean optimize_coding;
00342 boolean CCIR601_sampling;
00343 int smoothing_factor;
00344 J_DCT_METHOD dct_method;
00345
00346
00347
00348
00349
00350
00351 unsigned int restart_interval;
00352 int restart_in_rows;
00353
00354
00355
00356 boolean write_JFIF_header;
00357 UINT8 JFIF_major_version;
00358 UINT8 JFIF_minor_version;
00359
00360
00361
00362
00363 UINT8 density_unit;
00364 UINT16 X_density;
00365 UINT16 Y_density;
00366 boolean write_Adobe_marker;
00367
00368
00369
00370
00371
00372
00373 JDIMENSION next_scanline;
00374
00375
00376
00377
00378
00379
00380
00381
00382 int data_unit;
00383 J_CODEC_PROCESS process;
00384
00385 int max_h_samp_factor;
00386 int max_v_samp_factor;
00387
00388 JDIMENSION total_iMCU_rows;
00389
00390
00391
00392
00393
00394
00395
00396
00397
00398
00399 int comps_in_scan;
00400 jpeg_component_info * cur_comp_info[MAX_COMPS_IN_SCAN];
00401
00402
00403 JDIMENSION MCUs_per_row;
00404 JDIMENSION MCU_rows_in_scan;
00405
00406 int data_units_in_MCU;
00407 int MCU_membership[C_MAX_DATA_UNITS_IN_MCU];
00408
00409
00410
00411 int Ss, Se, Ah, Al;
00412
00413
00414
00415
00416 struct jpeg_comp_master * master;
00417 struct jpeg_c_main_controller * main;
00418 struct jpeg_c_prep_controller * prep;
00419 struct jpeg_c_codec * codec;
00420 struct jpeg_marker_writer * marker;
00421 struct jpeg_color_converter * cconvert;
00422 struct jpeg_downsampler * downsample;
00423 jpeg_scan_info * script_space;
00424 int script_space_size;
00425 };
00426
00427
00428
00429
00430 struct jpeg_decompress_struct {
00431 jpeg_common_fields;
00432
00433
00434 struct jpeg_source_mgr * src;
00435
00436
00437
00438
00439 JDIMENSION image_width;
00440 JDIMENSION image_height;
00441 int num_components;
00442 J_COLOR_SPACE jpeg_color_space;
00443
00444
00445
00446
00447
00448
00449 J_COLOR_SPACE out_color_space;
00450
00451 unsigned int scale_num, scale_denom;
00452
00453 double output_gamma;
00454
00455 boolean buffered_image;
00456 boolean raw_data_out;
00457
00458 J_DCT_METHOD dct_method;
00459 boolean do_fancy_upsampling;
00460 boolean do_block_smoothing;
00461
00462 boolean quantize_colors;
00463
00464 J_DITHER_MODE dither_mode;
00465 boolean two_pass_quantize;
00466 int desired_number_of_colors;
00467
00468 boolean enable_1pass_quant;
00469 boolean enable_external_quant;
00470 boolean enable_2pass_quant;
00471
00472
00473
00474
00475
00476
00477
00478 JDIMENSION output_width;
00479 JDIMENSION output_height;
00480 int out_color_components;
00481 int output_components;
00482
00483
00484
00485 int rec_outbuf_height;
00486
00487
00488
00489
00490
00491
00492
00493
00494
00495
00496
00497 int actual_number_of_colors;
00498 JSAMPARRAY colormap;
00499
00500
00501
00502
00503
00504
00505
00506
00507
00508 JDIMENSION output_scanline;
00509
00510
00511
00512
00513 int input_scan_number;
00514 JDIMENSION input_iMCU_row;
00515
00516
00517
00518
00519
00520 int output_scan_number;
00521 JDIMENSION output_iMCU_row;
00522
00523
00524
00525
00526
00527
00528
00529
00530 int (*coef_bits)[DCTSIZE2];
00531
00532
00533
00534
00535
00536
00537
00538
00539
00540
00541 JQUANT_TBL * quant_tbl_ptrs[NUM_QUANT_TBLS];
00542
00543
00544 JHUFF_TBL * dc_huff_tbl_ptrs[NUM_HUFF_TBLS];
00545 JHUFF_TBL * ac_huff_tbl_ptrs[NUM_HUFF_TBLS];
00546
00547
00548
00549
00550
00551
00552 int data_precision;
00553
00554 jpeg_component_info * comp_info;
00555
00556
00557 boolean arith_code;
00558
00559 UINT8 arith_dc_L[NUM_ARITH_TBLS];
00560 UINT8 arith_dc_U[NUM_ARITH_TBLS];
00561 UINT8 arith_ac_K[NUM_ARITH_TBLS];
00562
00563 unsigned int restart_interval;
00564
00565
00566
00567
00568 boolean saw_JFIF_marker;
00569
00570 UINT8 JFIF_major_version;
00571 UINT8 JFIF_minor_version;
00572 UINT8 density_unit;
00573 UINT16 X_density;
00574 UINT16 Y_density;
00575 boolean saw_Adobe_marker;
00576 UINT8 Adobe_transform;
00577
00578 boolean CCIR601_sampling;
00579
00580
00581
00582
00583
00584 jpeg_saved_marker_ptr marker_list;
00585
00586
00587
00588
00589
00590
00591
00592
00593 int data_unit;
00594 J_CODEC_PROCESS process;
00595
00596 int max_h_samp_factor;
00597 int max_v_samp_factor;
00598
00599 int min_codec_data_unit;
00600
00601 JDIMENSION total_iMCU_rows;
00602
00603
00604
00605
00606
00607
00608
00609
00610 JSAMPLE * sample_range_limit;
00611
00612
00613
00614
00615
00616
00617 int comps_in_scan;
00618 jpeg_component_info * cur_comp_info[MAX_COMPS_IN_SCAN];
00619
00620
00621 JDIMENSION MCUs_per_row;
00622 JDIMENSION MCU_rows_in_scan;
00623
00624 int data_units_in_MCU;
00625 int MCU_membership[D_MAX_DATA_UNITS_IN_MCU];
00626
00627
00628
00629 int Ss, Se, Ah, Al;
00630
00631
00632
00633
00634
00635 int unread_marker;
00636
00637
00638
00639
00640 struct jpeg_decomp_master * master;
00641 struct jpeg_d_main_controller * main;
00642 struct jpeg_d_codec * codec;
00643 struct jpeg_d_post_controller * post;
00644 struct jpeg_input_controller * inputctl;
00645 struct jpeg_marker_reader * marker;
00646 struct jpeg_upsampler * upsample;
00647 struct jpeg_color_deconverter * cconvert;
00648 struct jpeg_color_quantizer * cquantize;
00649
00650
00651 unsigned int workaround_options;
00652 };
00653
00654
00655 #define WORKAROUND_PREDICTOR6OVERFLOW 1
00656
00657
00658
00659
00660
00661
00662
00663
00664
00665
00666
00667 struct jpeg_error_mgr {
00668
00669 JMETHOD(void, error_exit, (j_common_ptr cinfo));
00670
00671 JMETHOD(void, emit_message, (j_common_ptr cinfo, int msg_level));
00672
00673 JMETHOD(void, output_message, (j_common_ptr cinfo));
00674
00675 JMETHOD(void, format_message, (j_common_ptr cinfo, char * buffer));
00676 #define JMSG_LENGTH_MAX 200
00677
00678 JMETHOD(void, reset_error_mgr, (j_common_ptr cinfo));
00679
00680
00681
00682
00683 int msg_code;
00684 #define JMSG_STR_PARM_MAX 80
00685 union {
00686 int i[8];
00687 char s[JMSG_STR_PARM_MAX];
00688 } msg_parm;
00689
00690
00691
00692 int trace_level;
00693
00694
00695
00696
00697
00698
00699
00700 long num_warnings;
00701
00702
00703
00704
00705
00706
00707
00708
00709
00710
00711
00712 const char * const * jpeg_message_table;
00713 int last_jpeg_message;
00714
00715
00716
00717 const char * const * addon_message_table;
00718 int first_addon_message;
00719 int last_addon_message;
00720 };
00721
00722
00723
00724
00725 struct jpeg_progress_mgr {
00726 JMETHOD(void, progress_monitor, (j_common_ptr cinfo));
00727
00728 long pass_counter;
00729 long pass_limit;
00730 int completed_passes;
00731 int total_passes;
00732 };
00733
00734
00735
00736
00737 struct jpeg_destination_mgr {
00738 JOCTET * next_output_byte;
00739 size_t free_in_buffer;
00740
00741 JMETHOD(void, init_destination, (j_compress_ptr cinfo));
00742 JMETHOD(boolean, empty_output_buffer, (j_compress_ptr cinfo));
00743 JMETHOD(void, term_destination, (j_compress_ptr cinfo));
00744 };
00745
00746
00747
00748
00749 struct jpeg_source_mgr {
00750 const JOCTET * next_input_byte;
00751 size_t bytes_in_buffer;
00752
00753 JMETHOD(void, init_source, (j_decompress_ptr cinfo));
00754 JMETHOD(boolean, fill_input_buffer, (j_decompress_ptr cinfo));
00755 JMETHOD(void, skip_input_data, (j_decompress_ptr cinfo, long num_bytes));
00756 JMETHOD(boolean, resync_to_restart, (j_decompress_ptr cinfo, int desired));
00757 JMETHOD(void, term_source, (j_decompress_ptr cinfo));
00758 };
00759
00760
00761
00762
00763
00764
00765
00766
00767
00768
00769
00770
00771
00772 #define JPOOL_PERMANENT 0
00773 #define JPOOL_IMAGE 1
00774 #define JPOOL_NUMPOOLS 2
00775
00776 typedef struct jvirt_sarray_control * jvirt_sarray_ptr;
00777 typedef struct jvirt_barray_control * jvirt_barray_ptr;
00778
00779
00780 #ifdef C_LOSSLESS_SUPPORTED
00781 #define NEED_DARRAY
00782 #else
00783 #ifdef D_LOSSLESS_SUPPORTED
00784 #define NEED_DARRAY
00785 #endif
00786 #endif
00787
00788 struct jpeg_memory_mgr {
00789
00790 JMETHOD(void *, alloc_small, (j_common_ptr cinfo, int pool_id,
00791 size_t sizeofobject));
00792 JMETHOD(void FAR *, alloc_large, (j_common_ptr cinfo, int pool_id,
00793 size_t sizeofobject));
00794 JMETHOD(JSAMPARRAY, alloc_sarray, (j_common_ptr cinfo, int pool_id,
00795 JDIMENSION samplesperrow,
00796 JDIMENSION numrows));
00797 JMETHOD(JBLOCKARRAY, alloc_barray, (j_common_ptr cinfo, int pool_id,
00798 JDIMENSION blocksperrow,
00799 JDIMENSION numrows));
00800 #ifdef NEED_DARRAY
00801 JMETHOD(JDIFFARRAY, alloc_darray, (j_common_ptr cinfo, int pool_id,
00802 JDIMENSION diffsperrow,
00803 JDIMENSION numrows));
00804 #endif
00805 JMETHOD(jvirt_sarray_ptr, request_virt_sarray, (j_common_ptr cinfo,
00806 int pool_id,
00807 boolean pre_zero,
00808 JDIMENSION samplesperrow,
00809 JDIMENSION numrows,
00810 JDIMENSION maxaccess));
00811 JMETHOD(jvirt_barray_ptr, request_virt_barray, (j_common_ptr cinfo,
00812 int pool_id,
00813 boolean pre_zero,
00814 JDIMENSION blocksperrow,
00815 JDIMENSION numrows,
00816 JDIMENSION maxaccess));
00817 JMETHOD(void, realize_virt_arrays, (j_common_ptr cinfo));
00818 JMETHOD(JSAMPARRAY, access_virt_sarray, (j_common_ptr cinfo,
00819 jvirt_sarray_ptr ptr,
00820 JDIMENSION start_row,
00821 JDIMENSION num_rows,
00822 boolean writable));
00823 JMETHOD(JBLOCKARRAY, access_virt_barray, (j_common_ptr cinfo,
00824 jvirt_barray_ptr ptr,
00825 JDIMENSION start_row,
00826 JDIMENSION num_rows,
00827 boolean writable));
00828 JMETHOD(void, free_pool, (j_common_ptr cinfo, int pool_id));
00829 JMETHOD(void, self_destruct, (j_common_ptr cinfo));
00830
00831
00832
00833
00834
00835
00836 long max_memory_to_use;
00837
00838
00839 long max_alloc_chunk;
00840 };
00841
00842
00843
00844
00845
00846 typedef JMETHOD(boolean, jpeg_marker_parser_method, (j_decompress_ptr cinfo));
00847
00848
00849
00850
00851
00852
00853
00854 #ifdef HAVE_PROTOTYPES
00855 #define JPP(arglist) arglist
00856 #else
00857 #define JPP(arglist) ()
00858 #endif
00859
00860
00861
00862
00863
00864
00865
00866
00867
00868
00869
00870 #ifdef NEED_SHORT_EXTERNAL_NAMES
00871 #define jcopy_block_row jcopy16_block_row
00872 #define jcopy_sample_rows jcopy16_sample_rows
00873 #define jdiv_round_up jdiv16_round_up
00874 #define jinit_1pass_quantizer jinit16_1pass_quantizer
00875 #define jinit_2pass_quantizer jinit16_2pass_quantizer
00876 #define jinit_arith_decoder jinit16_arith_decoder
00877 #define jinit_arith_encoder jinit16_arith_encoder
00878 #define jinit_c_codec jinit16_c_codec
00879 #define jinit_c_coef_controller jinit16_c_coef_controller
00880 #define jinit_c_diff_controller jinit16_c_diff_controller
00881 #define jinit_c_main_controller jinit16_c_main_controller
00882 #define jinit_c_master_control jinit16_c_master_control
00883 #define jinit_c_prep_controller jinit16_c_prep_controller
00884 #define jinit_c_scaler jinit16_c_scaler
00885 #define jinit_color_converter jinit16_color_converter
00886 #define jinit_color_deconverter jinit16_color_deconverter
00887 #define jinit_compress_master jinit16_compress_master
00888 #define jinit_d_codec jinit16_d_codec
00889 #define jinit_d_coef_controller jinit16_d_coef_controller
00890 #define jinit_d_diff_controller jinit16_d_diff_controller
00891 #define jinit_d_main_controller jinit16_d_main_controller
00892 #define jinit_d_post_controller jinit16_d_post_controller
00893 #define jinit_d_post_controller jinit16_d_post_controller
00894 #define jinit_d_scaler jinit16_d_scaler
00895 #define jinit_differencer jinit16_differencer
00896 #define jinit_downsampler jinit16_downsampler
00897 #define jinit_forward_dct jinit16_forward_dct
00898 #define jinit_input_controller jinit16_input_controller
00899 #define jinit_inverse_dct jinit16_inverse_dct
00900 #define jinit_lhuff_decoder jinit16_lhuff_decoder
00901 #define jinit_lhuff_encoder jinit16_lhuff_encoder
00902 #define jinit_lossless_c_codec jinit16_lossless_c_codec
00903 #define jinit_lossless_d_codec jinit16_lossless_d_codec
00904 #define jinit_lossy_c_codec jinit16_lossy_c_codec
00905 #define jinit_lossy_d_codec jinit16_lossy_d_codec
00906 #define jinit_marker_reader jinit16_marker_reader
00907 #define jinit_marker_writer jinit16_marker_writer
00908 #define jinit_master_decompress jinit16_master_decompress
00909 #define jinit_memory_mgr jinit16_memory_mgr
00910 #define jinit_merged_upsampler jinit16_merged_upsampler
00911 #define jinit_phuff_decoder jinit16_phuff_decoder
00912 #define jinit_phuff_encoder jinit16_phuff_encoder
00913 #define jinit_shuff_decoder jinit16_shuff_decoder
00914 #define jinit_shuff_encoder jinit16_shuff_encoder
00915 #define jinit_undifferencer jinit16_undifferencer
00916 #define jinit_upsampler jinit16_upsampler
00917 #define jpeg_CreateCompress jpeg16_CreateCompress
00918 #define jpeg_CreateDecompress jpeg16_CreateDecompress
00919 #define jpeg_abort jpeg16_abort
00920 #define jpeg_abort_compress jpeg16_abort_compress
00921 #define jpeg_abort_decompress jpeg16_abort_decompress
00922 #define jpeg_add_quant_table jpeg16_add_quant_table
00923 #define jpeg_alloc_huff_table jpeg16_alloc_huff_table
00924 #define jpeg_alloc_quant_table jpeg16_alloc_quant_table
00925 #define jpeg_calc_output_dimensions jpeg16_calc_output_dimensions
00926 #define jpeg_consume_input jpeg16_consume_input
00927 #define jpeg_copy_critical_parameters jpeg16_copy_critical_parameters
00928 #define jpeg_default_colorspace jpeg16_default_colorspace
00929 #define jpeg_destroy jpeg16_destroy
00930 #define jpeg_destroy_compress jpeg16_destroy_compress
00931 #define jpeg_destroy_decompress jpeg16_destroy_decompress
00932 #define jpeg_fdct_float jpeg16_fdct_float
00933 #define jpeg_fdct_ifast jpeg16_fdct_ifast
00934 #define jpeg_fdct_islow jpeg16_fdct_islow
00935 #define jpeg_fill_bit_buffer jpeg16_fill_bit_buffer
00936 #define jpeg_finish_compress jpeg16_finish_compress
00937 #define jpeg_finish_decompress jpeg16_finish_decompress
00938 #define jpeg_finish_output jpeg16_finish_output
00939 #define jpeg_free_large jpeg16_free_large
00940 #define jpeg_free_small jpeg16_free_small
00941 #define jpeg_gen_optimal_table jpeg16_gen_optimal_table
00942 #define jpeg_get_large jpeg16_get_large
00943 #define jpeg_get_small jpeg16_get_small
00944 #define jpeg_has_multiple_scans jpeg16_has_multiple_scans
00945 #define jpeg_huff_decode jpeg16_huff_decode
00946 #define jpeg_idct_1x1 jpeg16_idct_1x1
00947 #define jpeg_idct_2x2 jpeg16_idct_2x2
00948 #define jpeg_idct_4x4 jpeg16_idct_4x4
00949 #define jpeg_idct_float jpeg16_idct_float
00950 #define jpeg_idct_ifast jpeg16_idct_ifast
00951 #define jpeg_idct_islow jpeg16_idct_islow
00952 #define jpeg_input_complete jpeg16_input_complete
00953 #define jpeg_make_c_derived_tbl jpeg16_make_c_derived_tbl
00954 #define jpeg_make_d_derived_tbl jpeg16_make_d_derived_tbl
00955 #define jpeg_mem_available jpeg16_mem_available
00956 #define jpeg_mem_init jpeg16_mem_init
00957 #define jpeg_mem_term jpeg16_mem_term
00958 #define jpeg_new_colormap jpeg16_new_colormap
00959 #define jpeg_open_backing_store jpeg16_open_backing_store
00960 #define jpeg_quality_scaling jpeg16_quality_scaling
00961 #define jpeg_read_coefficients jpeg16_read_coefficients
00962 #define jpeg_read_header jpeg16_read_header
00963 #define jpeg_read_raw_data jpeg16_read_raw_data
00964 #define jpeg_read_scanlines jpeg16_read_scanlines
00965 #define jpeg_resync_to_restart jpeg16_resync_to_restart
00966 #define jpeg_save_markers jpeg16_save_markers
00967 #define jpeg_set_colorspace jpeg16_set_colorspace
00968 #define jpeg_set_defaults jpeg16_set_defaults
00969 #define jpeg_set_linear_quality jpeg16_set_linear_quality
00970 #define jpeg_set_marker_processor jpeg16_set_marker_processor
00971 #define jpeg_set_quality jpeg16_set_quality
00972 #define jpeg_simple_lossless jpeg16_simple_lossless
00973 #define jpeg_simple_progression jpeg16_simple_progression
00974 #define jpeg_start_compress jpeg16_start_compress
00975 #define jpeg_start_decompress jpeg16_start_decompress
00976 #define jpeg_start_output jpeg16_start_output
00977 #define jpeg_std_error jpeg16_std_error
00978 #define jpeg_stdio_dest jpeg16_stdio_dest
00979 #define jpeg_stdio_src jpeg16_stdio_src
00980 #define jpeg_suppress_tables jpeg16_suppress_tables
00981 #define jpeg_write_coefficients jpeg16_write_coefficients
00982 #define jpeg_write_m_byte jpeg16_write_m_byte
00983 #define jpeg_write_m_header jpeg16_write_m_header
00984 #define jpeg_write_marker jpeg16_write_marker
00985 #define jpeg_write_raw_data jpeg16_write_raw_data
00986 #define jpeg_write_scanlines jpeg16_write_scanlines
00987 #define jpeg_write_tables jpeg16_write_tables
00988 #define jround_up jround16_up
00989 #define jzero_far jzero16_far
00990 #endif
00991
00992
00993
00994 EXTERN(struct jpeg_error_mgr *) jpeg_std_error
00995 JPP((struct jpeg_error_mgr * err));
00996
00997
00998
00999
01000
01001
01002
01003
01004 #define jpeg_create_compress(cinfo) \
01005 jpeg_CreateCompress((cinfo), JPEG_LIB_VERSION, \
01006 (size_t) sizeof(struct jpeg_compress_struct))
01007 #define jpeg_create_decompress(cinfo) \
01008 jpeg_CreateDecompress((cinfo), JPEG_LIB_VERSION, \
01009 (size_t) sizeof(struct jpeg_decompress_struct))
01010 EXTERN(void) jpeg_CreateCompress JPP((j_compress_ptr cinfo,
01011 int version, size_t structsize));
01012 EXTERN(void) jpeg_CreateDecompress JPP((j_decompress_ptr cinfo,
01013 int version, size_t structsize));
01014
01015 EXTERN(void) jpeg_destroy_compress JPP((j_compress_ptr cinfo));
01016 EXTERN(void) jpeg_destroy_decompress JPP((j_decompress_ptr cinfo));
01017
01018
01019
01020 EXTERN(void) jpeg_stdio_dest JPP((j_compress_ptr cinfo, FILE * outfile));
01021 EXTERN(void) jpeg_stdio_src JPP((j_decompress_ptr cinfo, FILE * infile));
01022
01023
01024 EXTERN(void) jpeg_set_defaults JPP((j_compress_ptr cinfo));
01025
01026 EXTERN(void) jpeg_set_colorspace JPP((j_compress_ptr cinfo,
01027 J_COLOR_SPACE colorspace));
01028 EXTERN(void) jpeg_default_colorspace JPP((j_compress_ptr cinfo));
01029 EXTERN(void) jpeg_set_quality JPP((j_compress_ptr cinfo, int quality,
01030 boolean force_baseline));
01031 EXTERN(void) jpeg_set_linear_quality JPP((j_compress_ptr cinfo,
01032 int scale_factor,
01033 boolean force_baseline));
01034 EXTERN(void) jpeg_add_quant_table JPP((j_compress_ptr cinfo, int which_tbl,
01035 const unsigned int *basic_table,
01036 int scale_factor,
01037 boolean force_baseline));
01038 EXTERN(int) jpeg_quality_scaling JPP((int quality));
01039 EXTERN(void) jpeg_simple_lossless JPP((j_compress_ptr cinfo,
01040 int predictor, int point_transform));
01041 EXTERN(void) jpeg_simple_progression JPP((j_compress_ptr cinfo));
01042 EXTERN(void) jpeg_suppress_tables JPP((j_compress_ptr cinfo,
01043 boolean suppress));
01044 EXTERN(JQUANT_TBL *) jpeg_alloc_quant_table JPP((j_common_ptr cinfo));
01045 EXTERN(JHUFF_TBL *) jpeg_alloc_huff_table JPP((j_common_ptr cinfo));
01046
01047
01048 EXTERN(void) jpeg_start_compress JPP((j_compress_ptr cinfo,
01049 boolean write_all_tables));
01050 EXTERN(JDIMENSION) jpeg_write_scanlines JPP((j_compress_ptr cinfo,
01051 JSAMPARRAY scanlines,
01052 JDIMENSION num_lines));
01053 EXTERN(void) jpeg_finish_compress JPP((j_compress_ptr cinfo));
01054
01055
01056 EXTERN(JDIMENSION) jpeg_write_raw_data JPP((j_compress_ptr cinfo,
01057 JSAMPIMAGE data,
01058 JDIMENSION num_lines));
01059
01060
01061 EXTERN(void) jpeg_write_marker
01062 JPP((j_compress_ptr cinfo, int marker,
01063 const JOCTET * dataptr, unsigned int datalen));
01064
01065 EXTERN(void) jpeg_write_m_header
01066 JPP((j_compress_ptr cinfo, int marker, unsigned int datalen));
01067 EXTERN(void) jpeg_write_m_byte
01068 JPP((j_compress_ptr cinfo, int val));
01069
01070
01071 EXTERN(void) jpeg_write_tables JPP((j_compress_ptr cinfo));
01072
01073
01074 EXTERN(int) jpeg_read_header JPP((j_decompress_ptr cinfo,
01075 boolean require_image));
01076
01077 #define JPEG_SUSPENDED 0
01078 #define JPEG_HEADER_OK 1
01079 #define JPEG_HEADER_TABLES_ONLY 2
01080
01081
01082
01083
01084
01085
01086
01087 EXTERN(boolean) jpeg_start_decompress JPP((j_decompress_ptr cinfo));
01088 EXTERN(JDIMENSION) jpeg_read_scanlines JPP((j_decompress_ptr cinfo,
01089 JSAMPARRAY scanlines,
01090 JDIMENSION max_lines));
01091 EXTERN(boolean) jpeg_finish_decompress JPP((j_decompress_ptr cinfo));
01092
01093
01094 EXTERN(JDIMENSION) jpeg_read_raw_data JPP((j_decompress_ptr cinfo,
01095 JSAMPIMAGE data,
01096 JDIMENSION max_lines));
01097
01098
01099 EXTERN(boolean) jpeg_has_multiple_scans JPP((j_decompress_ptr cinfo));
01100 EXTERN(boolean) jpeg_start_output JPP((j_decompress_ptr cinfo,
01101 int scan_number));
01102 EXTERN(boolean) jpeg_finish_output JPP((j_decompress_ptr cinfo));
01103 EXTERN(boolean) jpeg_input_complete JPP((j_decompress_ptr cinfo));
01104 EXTERN(void) jpeg_new_colormap JPP((j_decompress_ptr cinfo));
01105 EXTERN(int) jpeg_consume_input JPP((j_decompress_ptr cinfo));
01106
01107
01108 #define JPEG_REACHED_SOS 1
01109 #define JPEG_REACHED_EOI 2
01110 #define JPEG_ROW_COMPLETED 3
01111 #define JPEG_SCAN_COMPLETED 4
01112
01113
01114 EXTERN(void) jpeg_calc_output_dimensions JPP((j_decompress_ptr cinfo));
01115
01116
01117 EXTERN(void) jpeg_save_markers
01118 JPP((j_decompress_ptr cinfo, int marker_code,
01119 unsigned int length_limit));
01120
01121
01122 EXTERN(void) jpeg_set_marker_processor
01123 JPP((j_decompress_ptr cinfo, int marker_code,
01124 jpeg_marker_parser_method routine));
01125
01126
01127 EXTERN(jvirt_barray_ptr *) jpeg_read_coefficients JPP((j_decompress_ptr cinfo));
01128 EXTERN(void) jpeg_write_coefficients JPP((j_compress_ptr cinfo,
01129 jvirt_barray_ptr * coef_arrays));
01130 EXTERN(void) jpeg_copy_critical_parameters JPP((j_decompress_ptr srcinfo,
01131 j_compress_ptr dstinfo));
01132
01133
01134
01135
01136
01137
01138
01139 EXTERN(void) jpeg_abort_compress JPP((j_compress_ptr cinfo));
01140 EXTERN(void) jpeg_abort_decompress JPP((j_decompress_ptr cinfo));
01141
01142
01143
01144
01145 EXTERN(void) jpeg_abort JPP((j_common_ptr cinfo));
01146 EXTERN(void) jpeg_destroy JPP((j_common_ptr cinfo));
01147
01148
01149 EXTERN(boolean) jpeg_resync_to_restart JPP((j_decompress_ptr cinfo,
01150 int desired));
01151
01152
01153
01154
01155
01156
01157 #define JPEG_RST0 0xD0
01158 #define JPEG_EOI 0xD9
01159 #define JPEG_APP0 0xE0
01160 #define JPEG_COM 0xFE
01161
01162
01163
01164
01165
01166
01167
01168 #ifdef INCOMPLETE_TYPES_BROKEN
01169 #ifndef JPEG_INTERNALS
01170 struct jvirt_sarray_control { long dummy; };
01171 struct jvirt_barray_control { long dummy; };
01172 struct jpeg_comp_master { long dummy; };
01173 struct jpeg_c_main_controller { long dummy; };
01174 struct jpeg_c_prep_controller { long dummy; };
01175 struct jpeg_c_coef_controller { long dummy; };
01176 struct jpeg_marker_writer { long dummy; };
01177 struct jpeg_color_converter { long dummy; };
01178 struct jpeg_downsampler { long dummy; };
01179 struct jpeg_forward_dct { long dummy; };
01180 struct jpeg_entropy_encoder { long dummy; };
01181 struct jpeg_decomp_master { long dummy; };
01182 struct jpeg_d_main_controller { long dummy; };
01183 struct jpeg_d_coef_controller { long dummy; };
01184 struct jpeg_d_post_controller { long dummy; };
01185 struct jpeg_input_controller { long dummy; };
01186 struct jpeg_marker_reader { long dummy; };
01187 struct jpeg_entropy_decoder { long dummy; };
01188 struct jpeg_inverse_dct { long dummy; };
01189 struct jpeg_upsampler { long dummy; };
01190 struct jpeg_color_deconverter { long dummy; };
01191 struct jpeg_color_quantizer { long dummy; };
01192 #endif
01193 #endif
01194
01195
01196
01197
01198
01199
01200
01201
01202
01203 #ifdef JPEG_INTERNALS
01204 #include "jpegint16.h"
01205 #include "jerror16.h"
01206 #endif
01207
01208 #endif