Don't allow disabling in-memory src/dest managers

By default, libjpeg-turbo 1.3.x and later have enabled the in-memory
source/destination manager functions from libjpeg v8 when emulating the
libjpeg v6b or v7 API/ABI, which has allowed operating system
distributors to provide those functions without adopting the
backward-incompatible libjpeg v8 API/ABI.

Prior to libjpeg-turbo 1.5.x, it made sense to allow users to disable
the in-memory source/destination manager functions at build time and
thus retain both backward and forward API/ABI compatibility relative to
libjpeg v6b or v7.  Since then, however, we have introduced several new
libjpeg API functions that break forward API/ABI compatibility, so it no
longer makes sense to allow the in-memory source/destination managers to
be disabled.  libjpeg-turbo only claims to be
backward-API/ABI-compatible, i.e. to allow applications built against
libjpeg or an older version of libjpeg-turbo to work properly with the
current version of libjpeg-turbo.
This commit is contained in:
DRC
2022-11-03 14:39:19 -05:00
parent 664b64a9ac
commit 6c2bc901e2
21 changed files with 30 additions and 545 deletions

View File

@@ -288,15 +288,6 @@ API/ABI-compatible with libjpeg v8. See [README.md](README.md) for more
information about libjpeg v7 and v8 emulation.
### In-Memory Source/Destination Managers
When using libjpeg v6b or v7 API/ABI emulation, add `-DWITH_MEM_SRCDST=0` to
the CMake command line to build a version of libjpeg-turbo that lacks the
`jpeg_mem_src()` and `jpeg_mem_dest()` functions. These functions were not
part of the original libjpeg v6b and v7 APIs, so removing them ensures strict
conformance with those APIs. See [README.md](README.md) for more information.
### Arithmetic Coding Support
Since the patent on arithmetic coding has expired, this functionality has been

View File

@@ -212,8 +212,6 @@ option(WITH_JPEG7 "Emulate libjpeg v7 API/ABI (this makes ${CMAKE_PROJECT_NAME}
boolean_number(WITH_JPEG7)
option(WITH_JPEG8 "Emulate libjpeg v8 API/ABI (this makes ${CMAKE_PROJECT_NAME} backward-incompatible with libjpeg v6b)" FALSE)
boolean_number(WITH_JPEG8)
option(WITH_MEM_SRCDST "Include in-memory source/destination manager functions when emulating the libjpeg v6b or v7 API/ABI" TRUE)
boolean_number(WITH_MEM_SRCDST)
option(WITH_SIMD "Include SIMD extensions, if available for this platform" TRUE)
boolean_number(WITH_SIMD)
option(WITH_TURBOJPEG "Include the TurboJPEG API library and associated test programs" TRUE)
@@ -253,9 +251,6 @@ if(WITH_JPEG8 OR WITH_JPEG7)
set(WITH_ARITH_ENC 1)
set(WITH_ARITH_DEC 1)
endif()
if(WITH_JPEG8)
set(WITH_MEM_SRCDST 0)
endif()
report_option(WITH_12BIT "12-bit JPEG support")
@@ -272,13 +267,6 @@ report_option(WITH_ARITH_ENC "Arithmetic encoding support")
report_option(WITH_TURBOJPEG "TurboJPEG API library")
report_option(WITH_JAVA "TurboJPEG Java wrapper")
if(WITH_MEM_SRCDST)
set(MEM_SRCDST_SUPPORTED 1)
endif()
if(NOT WITH_JPEG8)
report_option(WITH_MEM_SRCDST "In-memory source/destination managers")
endif()
# 0: Original libjpeg v6b/v7/v8 API/ABI
#
# libjpeg v6b/v7 API/ABI emulation:
@@ -290,7 +278,7 @@ endif()
# 1: + Partial image decompression functions (libjpeg-turbo 1.5.x)
# 2: + ICC functions (libjpeg-turbo 2.0.x)
set(SO_AGE 2)
if(WITH_MEM_SRCDST)
if(NOT WITH_JPEG8)
set(SO_AGE 3)
endif()
@@ -531,13 +519,13 @@ configure_file(jconfig.h.in jconfig.h)
configure_file(jconfigint.h.in jconfigint.h)
configure_file(jversion.h.in jversion.h)
if(UNIX)
if(WITH_MEM_SRCDST)
if(NOT WITH_JPEG8)
set(MEM_SRCDST_FUNCTIONS "global: jpeg_mem_dest; jpeg_mem_src;")
endif()
set(SIMD_FUNCTIONS "jsimd_*")
configure_file(libjpeg.map.in libjpeg.map)
if(WITH_12BIT)
if(WITH_MEM_SRCDST)
if(NOT WITH_JPEG8)
set(MEM_SRCDST_FUNCTIONS "global: jpeg12_mem_dest; jpeg12_mem_src;")
endif()
set(SIMD_FUNCTIONS "jsimd12_*")

View File

@@ -245,16 +245,6 @@ programs that need them, without breaking ABI compatibility for programs that
don't, and it allows those functions to be provided in the "official"
libjpeg-turbo binaries.
Those who are concerned about maintaining strict conformance with the libjpeg
v6b or v7 API can pass an argument of `-DWITH_MEM_SRCDST=0` to `cmake` prior to
building libjpeg-turbo. This will restore the pre-1.3 behavior, in which
`jpeg_mem_src()` and `jpeg_mem_dest()` are only included when emulating the
libjpeg v8 API/ABI.
On Un*x systems, including the in-memory source/destination managers changes
the dynamic library version from 62.2.0 to 62.3.0 if using libjpeg v6b API/ABI
emulation and from 7.2.0 to 7.3.0 if using libjpeg v7 API/ABI emulation.
Note that, on most Un*x systems, the dynamic linker will not look for a
function in a library until that function is actually used. Thus, if a program
is built against libjpeg-turbo 1.3+ and uses `jpeg_mem_src()` or

10
cjpeg.c
View File

@@ -226,9 +226,7 @@ usage(void)
#endif
fprintf(stderr, " -maxmemory N Maximum memory to use (in kbytes)\n");
fprintf(stderr, " -outfile name Specify name for output file\n");
#if JPEG_LIB_VERSION >= 80 || defined(MEM_SRCDST_SUPPORTED)
fprintf(stderr, " -memdst Compress to memory instead of file (useful for benchmarking)\n");
#endif
fprintf(stderr, " -report Report compression progress\n");
fprintf(stderr, " -strict Treat all warnings as fatal\n");
fprintf(stderr, " -verbose or -debug Emit debug output\n");
@@ -397,13 +395,7 @@ parse_switches(j_compress_ptr cinfo, int argc, char **argv,
} else if (keymatch(arg, "memdst", 2)) {
/* Use in-memory destination manager */
#if JPEG_LIB_VERSION >= 80 || defined(MEM_SRCDST_SUPPORTED)
memdst = TRUE;
#else
fprintf(stderr, "%s: sorry, in-memory destination manager was not compiled in\n",
progname);
exit(EXIT_FAILURE);
#endif
} else if (keymatch(arg, "quality", 1)) {
/* Quality ratings (quantization table scaling factors). */
@@ -710,11 +702,9 @@ main(int argc, char **argv)
file_index = parse_switches(&cinfo, argc, argv, 0, TRUE);
/* Specify data destination for compression */
#if JPEG_LIB_VERSION >= 80 || defined(MEM_SRCDST_SUPPORTED)
if (memdst)
jpeg_mem_dest(&cinfo, &outbuffer, &outsize);
else
#endif
jpeg_stdio_dest(&cinfo, output_file);
#ifdef CJPEG_FUZZER

12
djpeg.c
View File

@@ -164,9 +164,7 @@ usage(void)
fprintf(stderr, " -maxmemory N Maximum memory to use (in kbytes)\n");
fprintf(stderr, " -maxscans N Maximum number of scans to allow in input file\n");
fprintf(stderr, " -outfile name Specify name for output file\n");
#if JPEG_LIB_VERSION >= 80 || defined(MEM_SRCDST_SUPPORTED)
fprintf(stderr, " -memsrc Load input file into memory before decompressing\n");
#endif
fprintf(stderr, " -report Report decompression progress\n");
fprintf(stderr, " -skip Y0,Y1 Decompress all rows except those between Y0 and Y1 (inclusive)\n");
fprintf(stderr, " -crop WxH+X+Y Decompress only a rectangular subregion of the image\n");
@@ -377,13 +375,7 @@ parse_switches(j_decompress_ptr cinfo, int argc, char **argv,
} else if (keymatch(arg, "memsrc", 2)) {
/* Use in-memory source manager */
#if JPEG_LIB_VERSION >= 80 || defined(MEM_SRCDST_SUPPORTED)
memsrc = TRUE;
#else
fprintf(stderr, "%s: sorry, in-memory source manager was not compiled in\n",
progname);
exit(EXIT_FAILURE);
#endif
} else if (keymatch(arg, "pnm", 1) || keymatch(arg, "ppm", 1)) {
/* PPM/PGM output format. */
@@ -535,9 +527,7 @@ main(int argc, char **argv)
FILE *input_file;
FILE *output_file;
unsigned char *inbuffer = NULL;
#if JPEG_LIB_VERSION >= 80 || defined(MEM_SRCDST_SUPPORTED)
unsigned long insize = 0;
#endif
JDIMENSION num_scanlines;
progname = argv[0];
@@ -627,7 +617,6 @@ main(int argc, char **argv)
}
/* Specify data source for decompression */
#if JPEG_LIB_VERSION >= 80 || defined(MEM_SRCDST_SUPPORTED)
if (memsrc) {
size_t nbytes;
do {
@@ -649,7 +638,6 @@ main(int argc, char **argv)
fprintf(stderr, "Compressed size: %lu bytes\n", insize);
jpeg_mem_src(&cinfo, inbuffer, insize);
} else
#endif
jpeg_stdio_src(&cinfo, input_file);
/* Read file header, set default decompression parameters */

View File

@@ -15,9 +15,6 @@
/* Support arithmetic decoding when using 8-bit samples */
#cmakedefine D_ARITH_CODING_SUPPORTED 1
/* Support in-memory source/destination managers */
#cmakedefine MEM_SRCDST_SUPPORTED 1
/* Use accelerated SIMD routines when using 8-bit samples */
#cmakedefine WITH_SIMD 1

View File

@@ -38,7 +38,6 @@ typedef my_destination_mgr *my_dest_ptr;
#define OUTPUT_BUF_SIZE 4096 /* choose an efficiently fwrite'able size */
#if JPEG_LIB_VERSION >= 80 || defined(MEM_SRCDST_SUPPORTED)
/* Expanded data destination object for memory output */
typedef struct {
@@ -52,7 +51,6 @@ typedef struct {
} my_mem_destination_mgr;
typedef my_mem_destination_mgr *my_mem_dest_ptr;
#endif
/*
@@ -74,13 +72,11 @@ init_destination(j_compress_ptr cinfo)
dest->pub.free_in_buffer = OUTPUT_BUF_SIZE;
}
#if JPEG_LIB_VERSION >= 80 || defined(MEM_SRCDST_SUPPORTED)
METHODDEF(void)
init_mem_destination(j_compress_ptr cinfo)
{
/* no work necessary here */
}
#endif
/*
@@ -121,7 +117,6 @@ empty_output_buffer(j_compress_ptr cinfo)
return TRUE;
}
#if JPEG_LIB_VERSION >= 80 || defined(MEM_SRCDST_SUPPORTED)
METHODDEF(boolean)
empty_mem_output_buffer(j_compress_ptr cinfo)
{
@@ -150,7 +145,6 @@ empty_mem_output_buffer(j_compress_ptr cinfo)
return TRUE;
}
#endif
/*
@@ -179,7 +173,6 @@ term_destination(j_compress_ptr cinfo)
ERREXIT(cinfo, JERR_FILE_WRITE);
}
#if JPEG_LIB_VERSION >= 80 || defined(MEM_SRCDST_SUPPORTED)
METHODDEF(void)
term_mem_destination(j_compress_ptr cinfo)
{
@@ -188,7 +181,6 @@ term_mem_destination(j_compress_ptr cinfo)
*dest->outbuffer = dest->buffer;
*dest->outsize = (unsigned long)(dest->bufsize - dest->pub.free_in_buffer);
}
#endif
/*
@@ -227,7 +219,6 @@ jpeg_stdio_dest(j_compress_ptr cinfo, FILE *outfile)
}
#if JPEG_LIB_VERSION >= 80 || defined(MEM_SRCDST_SUPPORTED)
/*
* Prepare for output to a memory buffer.
* The caller may supply an own initial buffer with appropriate size.
@@ -284,4 +275,3 @@ jpeg_mem_dest(j_compress_ptr cinfo, unsigned char **outbuffer,
dest->pub.next_output_byte = dest->buffer = *outbuffer;
dest->pub.free_in_buffer = dest->bufsize = *outsize;
}
#endif

View File

@@ -56,13 +56,11 @@ init_source(j_decompress_ptr cinfo)
src->start_of_file = TRUE;
}
#if JPEG_LIB_VERSION >= 80 || defined(MEM_SRCDST_SUPPORTED)
METHODDEF(void)
init_mem_source(j_decompress_ptr cinfo)
{
/* no work necessary here */
}
#endif
/*
@@ -123,7 +121,6 @@ fill_input_buffer(j_decompress_ptr cinfo)
return TRUE;
}
#if JPEG_LIB_VERSION >= 80 || defined(MEM_SRCDST_SUPPORTED)
METHODDEF(boolean)
fill_mem_input_buffer(j_decompress_ptr cinfo)
{
@@ -144,7 +141,6 @@ fill_mem_input_buffer(j_decompress_ptr cinfo)
return TRUE;
}
#endif
/*
@@ -253,7 +249,6 @@ jpeg_stdio_src(j_decompress_ptr cinfo, FILE *infile)
}
#if JPEG_LIB_VERSION >= 80 || defined(MEM_SRCDST_SUPPORTED)
/*
* Prepare for input from a supplied memory buffer.
* The buffer must contain the whole JPEG data.
@@ -292,4 +287,3 @@ jpeg_mem_src(j_decompress_ptr cinfo, const unsigned char *inbuffer,
src->bytes_in_buffer = (size_t)insize;
src->next_input_byte = (const JOCTET *)inbuffer;
}
#endif

View File

@@ -931,14 +931,12 @@ EXTERN(void) jpeg12_destroy_decompress(j12_decompress_ptr cinfo);
EXTERN(void) jpeg12_stdio_dest(j12_compress_ptr cinfo, FILE *outfile);
EXTERN(void) jpeg12_stdio_src(j12_decompress_ptr cinfo, FILE *infile);
#if JPEG_LIB_VERSION >= 80 || defined(MEM_SRCDST_SUPPORTED)
/* Data source and destination managers: memory buffers. */
EXTERN(void) jpeg12_mem_dest(j12_compress_ptr cinfo, unsigned char **outbuffer,
unsigned long *outsize);
EXTERN(void) jpeg12_mem_src(j12_decompress_ptr cinfo,
const unsigned char *inbuffer,
unsigned long insize);
#endif
/* Default parameter setup for compression */
EXTERN(void) jpeg12_set_defaults(j12_compress_ptr cinfo);

View File

@@ -924,13 +924,11 @@ EXTERN(void) jpeg_destroy_decompress(j_decompress_ptr cinfo);
EXTERN(void) jpeg_stdio_dest(j_compress_ptr cinfo, FILE *outfile);
EXTERN(void) jpeg_stdio_src(j_decompress_ptr cinfo, FILE *infile);
#if JPEG_LIB_VERSION >= 80 || defined(MEM_SRCDST_SUPPORTED)
/* Data source and destination managers: memory buffers. */
EXTERN(void) jpeg_mem_dest(j_compress_ptr cinfo, unsigned char **outbuffer,
unsigned long *outsize);
EXTERN(void) jpeg_mem_src(j_decompress_ptr cinfo,
const unsigned char *inbuffer, unsigned long insize);
#endif
/* Default parameter setup for compression */
EXTERN(void) jpeg_set_defaults(j_compress_ptr cinfo);

View File

@@ -82,10 +82,8 @@
#define jpeg_stdio_dest jpeg12_stdio_dest
#define jpeg_stdio_src jpeg12_stdio_src
#if JPEG_LIB_VERSION >= 80 || defined(MEM_SRCDST_SUPPORTED)
#define jpeg_mem_dest jpeg12_mem_dest
#define jpeg_mem_src jpeg12_mem_src
#endif
#define jpeg_set_defaults jpeg12_set_defaults
#define jpeg_set_colorspace jpeg12_set_colorspace

View File

@@ -103,8 +103,7 @@ broader range of users and developers.
#--> -DWITH_12BIT=@WITH_12BIT@ -DWITH_ARITH_DEC=@WITH_ARITH_DEC@ \
#--> -DWITH_ARITH_ENC=@WITH_ARITH_ENC@ -DWITH_JAVA=@WITH_JAVA@ \
#--> -DWITH_JPEG7=@WITH_JPEG7@ -DWITH_JPEG8=@WITH_JPEG8@ \
#--> -DWITH_MEM_SRCDST=@WITH_MEM_SRCDST@ -DWITH_SIMD=@WITH_SIMD@ \
#--> -DWITH_TURBOJPEG=@WITH_TURBOJPEG@ .
#--> -DWITH_SIMD=@WITH_SIMD@ -DWITH_TURBOJPEG=@WITH_TURBOJPEG@ .
#-->make DESTDIR=$RPM_BUILD_ROOT
%install

View File

@@ -33,11 +33,7 @@ if(WITH_SIMD AND (MSVC_IDE OR XCODE))
endif()
if(WIN32)
if(WITH_MEM_SRCDST)
set(DEFFILE ../win/jpeg${SO_MAJOR_VERSION}-memsrcdst.def)
else()
set(DEFFILE ../win/jpeg${SO_MAJOR_VERSION}.def)
endif()
set(DEFFILE ../win/jpeg${SO_MAJOR_VERSION}.def)
endif()
if(MSVC)
configure_file(${CMAKE_SOURCE_DIR}/win/jpeg.rc.in
@@ -72,11 +68,7 @@ endif()
if(WITH_12BIT)
if(WIN32)
if(WITH_MEM_SRCDST)
set(DEFFILE ../win/jpeg12-${SO_MAJOR_VERSION}-memsrcdst.def)
else()
set(DEFFILE ../win/jpeg12-${SO_MAJOR_VERSION}.def)
endif()
set(DEFFILE ../win/jpeg12-${SO_MAJOR_VERSION}.def)
endif()
add_library(jpeg12 SHARED ${JPEG12_SRCS} ${DEFFILE} ../jsimd_none.c)
set_property(TARGET jpeg12 PROPERTY COMPILE_FLAGS "-DBITS_IN_JSAMPLE=12")

View File

@@ -1,108 +0,0 @@
EXPORTS
j12copy_block_row @ 1 ;
j12copy_sample_rows @ 2 ;
j12div_round_up @ 3 ;
j12init_1pass_quantizer @ 4 ;
j12init_2pass_quantizer @ 5 ;
j12init_c_coef_controller @ 6 ;
j12init_c_main_controller @ 7 ;
j12init_c_master_control @ 8 ;
j12init_c_prep_controller @ 9 ;
j12init_color_converter @ 10 ;
j12init_color_deconverter @ 11 ;
j12init_compress_master @ 12 ;
j12init_d_coef_controller @ 13 ;
j12init_d_main_controller @ 14 ;
j12init_d_post_controller @ 15 ;
j12init_downsampler @ 16 ;
j12init_forward_dct @ 17 ;
j12init_huff_decoder @ 18 ;
j12init_huff_encoder @ 19 ;
j12init_input_controller @ 20 ;
j12init_inverse_dct @ 21 ;
j12init_marker_reader @ 22 ;
j12init_marker_writer @ 23 ;
j12init_master_decompress @ 24 ;
j12init_memory_mgr @ 25 ;
j12init_merged_upsampler @ 26 ;
j12init_phuff_decoder @ 27 ;
j12init_phuff_encoder @ 28 ;
j12init_upsampler @ 29 ;
jpeg12_CreateCompress @ 30 ;
jpeg12_CreateDecompress @ 31 ;
jpeg12_abort @ 32 ;
jpeg12_abort_compress @ 33 ;
jpeg12_abort_decompress @ 34 ;
jpeg12_add_quant_table @ 35 ;
jpeg12_alloc_huff_table @ 36 ;
jpeg12_alloc_quant_table @ 37 ;
jpeg12_calc_output_dimensions @ 38 ;
jpeg12_consume_input @ 39 ;
jpeg12_copy_critical_parameters @ 40 ;
jpeg12_default_colorspace @ 41 ;
jpeg12_destroy @ 42 ;
jpeg12_destroy_compress @ 43 ;
jpeg12_destroy_decompress @ 44 ;
jpeg12_fdct_float @ 45 ;
jpeg12_fdct_ifast @ 46 ;
jpeg12_fdct_islow @ 47 ;
jpeg12_fill_bit_buffer @ 48 ;
jpeg12_finish_compress @ 49 ;
jpeg12_finish_decompress @ 50 ;
jpeg12_finish_output @ 51 ;
jpeg12_free_large @ 52 ;
jpeg12_free_small @ 53 ;
jpeg12_gen_optimal_table @ 54 ;
jpeg12_get_large @ 55 ;
jpeg12_get_small @ 56 ;
jpeg12_has_multiple_scans @ 57 ;
jpeg12_huff_decode @ 58 ;
jpeg12_idct_1x1 @ 59 ;
jpeg12_idct_2x2 @ 60 ;
jpeg12_idct_4x4 @ 61 ;
jpeg12_idct_float @ 62 ;
jpeg12_idct_ifast @ 63 ;
jpeg12_idct_islow @ 64 ;
jpeg12_input_complete @ 65 ;
jpeg12_make_c_derived_tbl @ 66 ;
jpeg12_make_d_derived_tbl @ 67 ;
jpeg12_mem_available @ 68 ;
jpeg12_mem_init @ 69 ;
jpeg12_mem_term @ 70 ;
jpeg12_new_colormap @ 71 ;
jpeg12_open_backing_store @ 72 ;
jpeg12_quality_scaling @ 73 ;
jpeg12_read_coefficients @ 74 ;
jpeg12_read_header @ 75 ;
jpeg12_read_raw_data @ 76 ;
jpeg12_read_scanlines @ 77 ;
jpeg12_resync_to_restart @ 78 ;
jpeg12_save_markers @ 79 ;
jpeg12_set_colorspace @ 80 ;
jpeg12_set_defaults @ 81 ;
jpeg12_set_linear_quality @ 82 ;
jpeg12_set_marker_processor @ 83 ;
jpeg12_set_quality @ 84 ;
jpeg12_simple_progression @ 85 ;
jpeg12_start_compress @ 86 ;
jpeg12_start_decompress @ 87 ;
jpeg12_start_output @ 88 ;
jpeg12_std_error @ 89 ;
jpeg12_stdio_dest @ 90 ;
jpeg12_stdio_src @ 91 ;
jpeg12_suppress_tables @ 92 ;
jpeg12_write_coefficients @ 93 ;
jpeg12_write_m_byte @ 94 ;
jpeg12_write_m_header @ 95 ;
jpeg12_write_marker @ 96 ;
jpeg12_write_raw_data @ 97 ;
jpeg12_write_scanlines @ 98 ;
jpeg12_write_tables @ 99 ;
j12round_up @ 100 ;
j12zero_far @ 101 ;
jpeg12_mem_dest @ 102 ;
jpeg12_mem_src @ 103 ;
jpeg12_skip_scanlines @ 104 ;
jpeg12_crop_scanline @ 105 ;
jpeg12_read_icc_profile @ 106 ;
jpeg12_write_icc_profile @ 107 ;

View File

@@ -100,7 +100,9 @@ EXPORTS
jpeg12_write_tables @ 99 ;
j12round_up @ 100 ;
j12zero_far @ 101 ;
jpeg12_skip_scanlines @ 102 ;
jpeg12_crop_scanline @ 103 ;
jpeg12_read_icc_profile @ 104 ;
jpeg12_write_icc_profile @ 105 ;
jpeg12_mem_dest @ 102 ;
jpeg12_mem_src @ 103 ;
jpeg12_skip_scanlines @ 104 ;
jpeg12_crop_scanline @ 105 ;
jpeg12_read_icc_profile @ 106 ;
jpeg12_write_icc_profile @ 107 ;

View File

@@ -1,110 +0,0 @@
EXPORTS
j12copy_block_row @ 1 ;
j12copy_sample_rows @ 2 ;
j12div_round_up @ 3 ;
j12init_1pass_quantizer @ 4 ;
j12init_2pass_quantizer @ 5 ;
j12init_c_coef_controller @ 6 ;
j12init_c_main_controller @ 7 ;
j12init_c_master_control @ 8 ;
j12init_c_prep_controller @ 9 ;
j12init_color_converter @ 10 ;
j12init_color_deconverter @ 11 ;
j12init_compress_master @ 12 ;
j12init_d_coef_controller @ 13 ;
j12init_d_main_controller @ 14 ;
j12init_d_post_controller @ 15 ;
j12init_downsampler @ 16 ;
j12init_forward_dct @ 17 ;
j12init_huff_decoder @ 18 ;
j12init_huff_encoder @ 19 ;
j12init_input_controller @ 20 ;
j12init_inverse_dct @ 21 ;
j12init_marker_reader @ 22 ;
j12init_marker_writer @ 23 ;
j12init_master_decompress @ 24 ;
j12init_memory_mgr @ 25 ;
j12init_merged_upsampler @ 26 ;
j12init_phuff_decoder @ 27 ;
j12init_phuff_encoder @ 28 ;
j12init_upsampler @ 29 ;
jpeg12_CreateCompress @ 30 ;
jpeg12_CreateDecompress @ 31 ;
jpeg12_abort @ 32 ;
jpeg12_abort_compress @ 33 ;
jpeg12_abort_decompress @ 34 ;
jpeg12_add_quant_table @ 35 ;
jpeg12_alloc_huff_table @ 36 ;
jpeg12_alloc_quant_table @ 37 ;
jpeg12_calc_jpeg_dimensions @ 38 ;
jpeg12_calc_output_dimensions @ 39 ;
jpeg12_consume_input @ 40 ;
jpeg12_copy_critical_parameters @ 41 ;
jpeg12_default_colorspace @ 42 ;
jpeg12_default_qtables @ 43 ;
jpeg12_destroy @ 44 ;
jpeg12_destroy_compress @ 45 ;
jpeg12_destroy_decompress @ 46 ;
jpeg12_fdct_float @ 47 ;
jpeg12_fdct_ifast @ 48 ;
jpeg12_fdct_islow @ 49 ;
jpeg12_fill_bit_buffer @ 50 ;
jpeg12_finish_compress @ 51 ;
jpeg12_finish_decompress @ 52 ;
jpeg12_finish_output @ 53 ;
jpeg12_free_large @ 54 ;
jpeg12_free_small @ 55 ;
jpeg12_gen_optimal_table @ 56 ;
jpeg12_get_large @ 57 ;
jpeg12_get_small @ 58 ;
jpeg12_has_multiple_scans @ 59 ;
jpeg12_huff_decode @ 60 ;
jpeg12_idct_1x1 @ 61 ;
jpeg12_idct_2x2 @ 62 ;
jpeg12_idct_4x4 @ 63 ;
jpeg12_idct_float @ 64 ;
jpeg12_idct_ifast @ 65 ;
jpeg12_idct_islow @ 66 ;
jpeg12_input_complete @ 67 ;
jpeg12_make_c_derived_tbl @ 68 ;
jpeg12_make_d_derived_tbl @ 69 ;
jpeg12_mem_available @ 70 ;
jpeg12_mem_init @ 71 ;
jpeg12_mem_term @ 72 ;
jpeg12_new_colormap @ 73 ;
jpeg12_open_backing_store @ 74 ;
jpeg12_quality_scaling @ 75 ;
jpeg12_read_coefficients @ 76 ;
jpeg12_read_header @ 77 ;
jpeg12_read_raw_data @ 78 ;
jpeg12_read_scanlines @ 79 ;
jpeg12_resync_to_restart @ 80 ;
jpeg12_save_markers @ 81 ;
jpeg12_set_colorspace @ 82 ;
jpeg12_set_defaults @ 83 ;
jpeg12_set_linear_quality @ 84 ;
jpeg12_set_marker_processor @ 85 ;
jpeg12_set_quality @ 86 ;
jpeg12_simple_progression @ 87 ;
jpeg12_start_compress @ 88 ;
jpeg12_start_decompress @ 89 ;
jpeg12_start_output @ 90 ;
jpeg12_std_error @ 91 ;
jpeg12_stdio_dest @ 92 ;
jpeg12_stdio_src @ 93 ;
jpeg12_suppress_tables @ 94 ;
jpeg12_write_coefficients @ 95 ;
jpeg12_write_m_byte @ 96 ;
jpeg12_write_m_header @ 97 ;
jpeg12_write_marker @ 98 ;
jpeg12_write_raw_data @ 99 ;
jpeg12_write_scanlines @ 100 ;
jpeg12_write_tables @ 101 ;
j12round_up @ 102 ;
j12zero_far @ 103 ;
jpeg12_mem_dest @ 104 ;
jpeg12_mem_src @ 105 ;
jpeg12_skip_scanlines @ 106 ;
jpeg12_crop_scanline @ 107 ;
jpeg12_read_icc_profile @ 108 ;
jpeg12_write_icc_profile @ 109 ;

View File

@@ -102,7 +102,9 @@ EXPORTS
jpeg12_write_tables @ 101 ;
j12round_up @ 102 ;
j12zero_far @ 103 ;
jpeg12_skip_scanlines @ 104 ;
jpeg12_crop_scanline @ 105 ;
jpeg12_read_icc_profile @ 106 ;
jpeg12_write_icc_profile @ 107 ;
jpeg12_mem_dest @ 104 ;
jpeg12_mem_src @ 105 ;
jpeg12_skip_scanlines @ 106 ;
jpeg12_crop_scanline @ 107 ;
jpeg12_read_icc_profile @ 108 ;
jpeg12_write_icc_profile @ 109 ;

View File

@@ -1,108 +0,0 @@
EXPORTS
jcopy_block_row @ 1 ;
jcopy_sample_rows @ 2 ;
jdiv_round_up @ 3 ;
jinit_1pass_quantizer @ 4 ;
jinit_2pass_quantizer @ 5 ;
jinit_c_coef_controller @ 6 ;
jinit_c_main_controller @ 7 ;
jinit_c_master_control @ 8 ;
jinit_c_prep_controller @ 9 ;
jinit_color_converter @ 10 ;
jinit_color_deconverter @ 11 ;
jinit_compress_master @ 12 ;
jinit_d_coef_controller @ 13 ;
jinit_d_main_controller @ 14 ;
jinit_d_post_controller @ 15 ;
jinit_downsampler @ 16 ;
jinit_forward_dct @ 17 ;
jinit_huff_decoder @ 18 ;
jinit_huff_encoder @ 19 ;
jinit_input_controller @ 20 ;
jinit_inverse_dct @ 21 ;
jinit_marker_reader @ 22 ;
jinit_marker_writer @ 23 ;
jinit_master_decompress @ 24 ;
jinit_memory_mgr @ 25 ;
jinit_merged_upsampler @ 26 ;
jinit_phuff_decoder @ 27 ;
jinit_phuff_encoder @ 28 ;
jinit_upsampler @ 29 ;
jpeg_CreateCompress @ 30 ;
jpeg_CreateDecompress @ 31 ;
jpeg_abort @ 32 ;
jpeg_abort_compress @ 33 ;
jpeg_abort_decompress @ 34 ;
jpeg_add_quant_table @ 35 ;
jpeg_alloc_huff_table @ 36 ;
jpeg_alloc_quant_table @ 37 ;
jpeg_calc_output_dimensions @ 38 ;
jpeg_consume_input @ 39 ;
jpeg_copy_critical_parameters @ 40 ;
jpeg_default_colorspace @ 41 ;
jpeg_destroy @ 42 ;
jpeg_destroy_compress @ 43 ;
jpeg_destroy_decompress @ 44 ;
jpeg_fdct_float @ 45 ;
jpeg_fdct_ifast @ 46 ;
jpeg_fdct_islow @ 47 ;
jpeg_fill_bit_buffer @ 48 ;
jpeg_finish_compress @ 49 ;
jpeg_finish_decompress @ 50 ;
jpeg_finish_output @ 51 ;
jpeg_free_large @ 52 ;
jpeg_free_small @ 53 ;
jpeg_gen_optimal_table @ 54 ;
jpeg_get_large @ 55 ;
jpeg_get_small @ 56 ;
jpeg_has_multiple_scans @ 57 ;
jpeg_huff_decode @ 58 ;
jpeg_idct_1x1 @ 59 ;
jpeg_idct_2x2 @ 60 ;
jpeg_idct_4x4 @ 61 ;
jpeg_idct_float @ 62 ;
jpeg_idct_ifast @ 63 ;
jpeg_idct_islow @ 64 ;
jpeg_input_complete @ 65 ;
jpeg_make_c_derived_tbl @ 66 ;
jpeg_make_d_derived_tbl @ 67 ;
jpeg_mem_available @ 68 ;
jpeg_mem_init @ 69 ;
jpeg_mem_term @ 70 ;
jpeg_new_colormap @ 71 ;
jpeg_open_backing_store @ 72 ;
jpeg_quality_scaling @ 73 ;
jpeg_read_coefficients @ 74 ;
jpeg_read_header @ 75 ;
jpeg_read_raw_data @ 76 ;
jpeg_read_scanlines @ 77 ;
jpeg_resync_to_restart @ 78 ;
jpeg_save_markers @ 79 ;
jpeg_set_colorspace @ 80 ;
jpeg_set_defaults @ 81 ;
jpeg_set_linear_quality @ 82 ;
jpeg_set_marker_processor @ 83 ;
jpeg_set_quality @ 84 ;
jpeg_simple_progression @ 85 ;
jpeg_start_compress @ 86 ;
jpeg_start_decompress @ 87 ;
jpeg_start_output @ 88 ;
jpeg_std_error @ 89 ;
jpeg_stdio_dest @ 90 ;
jpeg_stdio_src @ 91 ;
jpeg_suppress_tables @ 92 ;
jpeg_write_coefficients @ 93 ;
jpeg_write_m_byte @ 94 ;
jpeg_write_m_header @ 95 ;
jpeg_write_marker @ 96 ;
jpeg_write_raw_data @ 97 ;
jpeg_write_scanlines @ 98 ;
jpeg_write_tables @ 99 ;
jround_up @ 100 ;
jzero_far @ 101 ;
jpeg_mem_dest @ 102 ;
jpeg_mem_src @ 103 ;
jpeg_skip_scanlines @ 104 ;
jpeg_crop_scanline @ 105 ;
jpeg_read_icc_profile @ 106 ;
jpeg_write_icc_profile @ 107 ;

View File

@@ -100,7 +100,9 @@ EXPORTS
jpeg_write_tables @ 99 ;
jround_up @ 100 ;
jzero_far @ 101 ;
jpeg_skip_scanlines @ 102 ;
jpeg_crop_scanline @ 103 ;
jpeg_read_icc_profile @ 104 ;
jpeg_write_icc_profile @ 105 ;
jpeg_mem_dest @ 102 ;
jpeg_mem_src @ 103 ;
jpeg_skip_scanlines @ 104 ;
jpeg_crop_scanline @ 105 ;
jpeg_read_icc_profile @ 106 ;
jpeg_write_icc_profile @ 107 ;

View File

@@ -1,110 +0,0 @@
EXPORTS
jcopy_block_row @ 1 ;
jcopy_sample_rows @ 2 ;
jdiv_round_up @ 3 ;
jinit_1pass_quantizer @ 4 ;
jinit_2pass_quantizer @ 5 ;
jinit_c_coef_controller @ 6 ;
jinit_c_main_controller @ 7 ;
jinit_c_master_control @ 8 ;
jinit_c_prep_controller @ 9 ;
jinit_color_converter @ 10 ;
jinit_color_deconverter @ 11 ;
jinit_compress_master @ 12 ;
jinit_d_coef_controller @ 13 ;
jinit_d_main_controller @ 14 ;
jinit_d_post_controller @ 15 ;
jinit_downsampler @ 16 ;
jinit_forward_dct @ 17 ;
jinit_huff_decoder @ 18 ;
jinit_huff_encoder @ 19 ;
jinit_input_controller @ 20 ;
jinit_inverse_dct @ 21 ;
jinit_marker_reader @ 22 ;
jinit_marker_writer @ 23 ;
jinit_master_decompress @ 24 ;
jinit_memory_mgr @ 25 ;
jinit_merged_upsampler @ 26 ;
jinit_phuff_decoder @ 27 ;
jinit_phuff_encoder @ 28 ;
jinit_upsampler @ 29 ;
jpeg_CreateCompress @ 30 ;
jpeg_CreateDecompress @ 31 ;
jpeg_abort @ 32 ;
jpeg_abort_compress @ 33 ;
jpeg_abort_decompress @ 34 ;
jpeg_add_quant_table @ 35 ;
jpeg_alloc_huff_table @ 36 ;
jpeg_alloc_quant_table @ 37 ;
jpeg_calc_jpeg_dimensions @ 38 ;
jpeg_calc_output_dimensions @ 39 ;
jpeg_consume_input @ 40 ;
jpeg_copy_critical_parameters @ 41 ;
jpeg_default_colorspace @ 42 ;
jpeg_default_qtables @ 43 ;
jpeg_destroy @ 44 ;
jpeg_destroy_compress @ 45 ;
jpeg_destroy_decompress @ 46 ;
jpeg_fdct_float @ 47 ;
jpeg_fdct_ifast @ 48 ;
jpeg_fdct_islow @ 49 ;
jpeg_fill_bit_buffer @ 50 ;
jpeg_finish_compress @ 51 ;
jpeg_finish_decompress @ 52 ;
jpeg_finish_output @ 53 ;
jpeg_free_large @ 54 ;
jpeg_free_small @ 55 ;
jpeg_gen_optimal_table @ 56 ;
jpeg_get_large @ 57 ;
jpeg_get_small @ 58 ;
jpeg_has_multiple_scans @ 59 ;
jpeg_huff_decode @ 60 ;
jpeg_idct_1x1 @ 61 ;
jpeg_idct_2x2 @ 62 ;
jpeg_idct_4x4 @ 63 ;
jpeg_idct_float @ 64 ;
jpeg_idct_ifast @ 65 ;
jpeg_idct_islow @ 66 ;
jpeg_input_complete @ 67 ;
jpeg_make_c_derived_tbl @ 68 ;
jpeg_make_d_derived_tbl @ 69 ;
jpeg_mem_available @ 70 ;
jpeg_mem_init @ 71 ;
jpeg_mem_term @ 72 ;
jpeg_new_colormap @ 73 ;
jpeg_open_backing_store @ 74 ;
jpeg_quality_scaling @ 75 ;
jpeg_read_coefficients @ 76 ;
jpeg_read_header @ 77 ;
jpeg_read_raw_data @ 78 ;
jpeg_read_scanlines @ 79 ;
jpeg_resync_to_restart @ 80 ;
jpeg_save_markers @ 81 ;
jpeg_set_colorspace @ 82 ;
jpeg_set_defaults @ 83 ;
jpeg_set_linear_quality @ 84 ;
jpeg_set_marker_processor @ 85 ;
jpeg_set_quality @ 86 ;
jpeg_simple_progression @ 87 ;
jpeg_start_compress @ 88 ;
jpeg_start_decompress @ 89 ;
jpeg_start_output @ 90 ;
jpeg_std_error @ 91 ;
jpeg_stdio_dest @ 92 ;
jpeg_stdio_src @ 93 ;
jpeg_suppress_tables @ 94 ;
jpeg_write_coefficients @ 95 ;
jpeg_write_m_byte @ 96 ;
jpeg_write_m_header @ 97 ;
jpeg_write_marker @ 98 ;
jpeg_write_raw_data @ 99 ;
jpeg_write_scanlines @ 100 ;
jpeg_write_tables @ 101 ;
jround_up @ 102 ;
jzero_far @ 103 ;
jpeg_mem_dest @ 104 ;
jpeg_mem_src @ 105 ;
jpeg_skip_scanlines @ 106 ;
jpeg_crop_scanline @ 107 ;
jpeg_read_icc_profile @ 108 ;
jpeg_write_icc_profile @ 109 ;

View File

@@ -102,7 +102,9 @@ EXPORTS
jpeg_write_tables @ 101 ;
jround_up @ 102 ;
jzero_far @ 103 ;
jpeg_skip_scanlines @ 104 ;
jpeg_crop_scanline @ 105 ;
jpeg_read_icc_profile @ 106 ;
jpeg_write_icc_profile @ 107 ;
jpeg_mem_dest @ 104 ;
jpeg_mem_src @ 105 ;
jpeg_skip_scanlines @ 106 ;
jpeg_crop_scanline @ 107 ;
jpeg_read_icc_profile @ 108 ;
jpeg_write_icc_profile @ 109 ;