libjpeg_wrapper.cc (7930B)
1 // Copyright (c) the JPEG XL Project Authors. All rights reserved. 2 // 3 // Use of this source code is governed by a BSD-style 4 // license that can be found in the LICENSE file. 5 // 6 // This file contains wrapper-functions that are used to build the libjpeg.so 7 // shared library that is API- and ABI-compatible with libjpeg-turbo's version 8 // of libjpeg.so. 9 10 #include "lib/jpegli/common.h" 11 #include "lib/jpegli/decode.h" 12 #include "lib/jpegli/encode.h" 13 #include "lib/jpegli/error.h" 14 15 struct jpeg_error_mgr *jpeg_std_error(struct jpeg_error_mgr *err) { 16 return jpegli_std_error(err); 17 } 18 19 void jpeg_abort(j_common_ptr cinfo) { jpegli_abort(cinfo); } 20 21 void jpeg_destroy(j_common_ptr cinfo) { jpegli_destroy(cinfo); } 22 23 JQUANT_TBL *jpeg_alloc_quant_table(j_common_ptr cinfo) { 24 return jpegli_alloc_quant_table(cinfo); 25 } 26 27 JHUFF_TBL *jpeg_alloc_huff_table(j_common_ptr cinfo) { 28 return jpegli_alloc_huff_table(cinfo); 29 } 30 31 void jpeg_CreateDecompress(j_decompress_ptr cinfo, int version, 32 size_t structsize) { 33 jpegli_CreateDecompress(cinfo, version, structsize); 34 } 35 36 void jpeg_stdio_src(j_decompress_ptr cinfo, FILE *infile) { 37 jpegli_stdio_src(cinfo, infile); 38 } 39 40 void jpeg_mem_src(j_decompress_ptr cinfo, const unsigned char *inbuffer, 41 unsigned long insize) { 42 jpegli_mem_src(cinfo, inbuffer, insize); 43 } 44 45 int jpeg_read_header(j_decompress_ptr cinfo, boolean require_image) { 46 return jpegli_read_header(cinfo, require_image); 47 } 48 49 boolean jpeg_start_decompress(j_decompress_ptr cinfo) { 50 return jpegli_start_decompress(cinfo); 51 } 52 53 JDIMENSION jpeg_read_scanlines(j_decompress_ptr cinfo, JSAMPARRAY scanlines, 54 JDIMENSION max_lines) { 55 return jpegli_read_scanlines(cinfo, scanlines, max_lines); 56 } 57 58 JDIMENSION jpeg_skip_scanlines(j_decompress_ptr cinfo, JDIMENSION num_lines) { 59 return jpegli_skip_scanlines(cinfo, num_lines); 60 } 61 62 void jpeg_crop_scanline(j_decompress_ptr cinfo, JDIMENSION *xoffset, 63 JDIMENSION *width) { 64 jpegli_crop_scanline(cinfo, xoffset, width); 65 } 66 67 boolean jpeg_finish_decompress(j_decompress_ptr cinfo) { 68 return jpegli_finish_decompress(cinfo); 69 } 70 71 JDIMENSION jpeg_read_raw_data(j_decompress_ptr cinfo, JSAMPIMAGE data, 72 JDIMENSION max_lines) { 73 return jpegli_read_raw_data(cinfo, data, max_lines); 74 } 75 76 jvirt_barray_ptr *jpeg_read_coefficients(j_decompress_ptr cinfo) { 77 return jpegli_read_coefficients(cinfo); 78 } 79 80 boolean jpeg_has_multiple_scans(j_decompress_ptr cinfo) { 81 return jpegli_has_multiple_scans(cinfo); 82 } 83 84 boolean jpeg_start_output(j_decompress_ptr cinfo, int scan_number) { 85 return jpegli_start_output(cinfo, scan_number); 86 } 87 88 boolean jpeg_finish_output(j_decompress_ptr cinfo) { 89 return jpegli_finish_output(cinfo); 90 } 91 92 boolean jpeg_input_complete(j_decompress_ptr cinfo) { 93 return jpegli_input_complete(cinfo); 94 } 95 96 int jpeg_consume_input(j_decompress_ptr cinfo) { 97 return jpegli_consume_input(cinfo); 98 } 99 100 #if JPEG_LIB_VERSION >= 80 101 void jpeg_core_output_dimensions(j_decompress_ptr cinfo) { 102 jpegli_core_output_dimensions(cinfo); 103 } 104 #endif 105 void jpeg_calc_output_dimensions(j_decompress_ptr cinfo) { 106 jpegli_calc_output_dimensions(cinfo); 107 } 108 109 void jpeg_save_markers(j_decompress_ptr cinfo, int marker_code, 110 unsigned int length_limit) { 111 jpegli_save_markers(cinfo, marker_code, length_limit); 112 } 113 114 void jpeg_set_marker_processor(j_decompress_ptr cinfo, int marker_code, 115 jpeg_marker_parser_method routine) { 116 jpegli_set_marker_processor(cinfo, marker_code, routine); 117 } 118 119 boolean jpeg_read_icc_profile(j_decompress_ptr cinfo, JOCTET **icc_data_ptr, 120 unsigned int *icc_data_len) { 121 return jpegli_read_icc_profile(cinfo, icc_data_ptr, icc_data_len); 122 } 123 124 void jpeg_abort_decompress(j_decompress_ptr cinfo) { 125 jpegli_abort_decompress(cinfo); 126 } 127 128 void jpeg_destroy_decompress(j_decompress_ptr cinfo) { 129 jpegli_destroy_decompress(cinfo); 130 } 131 132 void jpeg_CreateCompress(j_compress_ptr cinfo, int version, size_t structsize) { 133 jpegli_CreateCompress(cinfo, version, structsize); 134 } 135 136 void jpeg_stdio_dest(j_compress_ptr cinfo, FILE *outfile) { 137 jpegli_stdio_dest(cinfo, outfile); 138 } 139 140 void jpeg_mem_dest(j_compress_ptr cinfo, unsigned char **outbuffer, 141 unsigned long *outsize) { 142 jpegli_mem_dest(cinfo, outbuffer, outsize); 143 } 144 145 void jpeg_set_defaults(j_compress_ptr cinfo) { jpegli_set_defaults(cinfo); } 146 147 void jpeg_default_colorspace(j_compress_ptr cinfo) { 148 jpegli_default_colorspace(cinfo); 149 } 150 151 void jpeg_set_colorspace(j_compress_ptr cinfo, J_COLOR_SPACE colorspace) { 152 jpegli_set_colorspace(cinfo, colorspace); 153 } 154 155 void jpeg_set_quality(j_compress_ptr cinfo, int quality, 156 boolean force_baseline) { 157 jpegli_set_quality(cinfo, quality, force_baseline); 158 } 159 160 void jpeg_set_linear_quality(j_compress_ptr cinfo, int scale_factor, 161 boolean force_baseline) { 162 jpegli_set_linear_quality(cinfo, scale_factor, force_baseline); 163 } 164 165 #if JPEG_LIB_VERSION >= 70 166 void jpeg_default_qtables(j_compress_ptr cinfo, boolean force_baseline) { 167 jpegli_default_qtables(cinfo, force_baseline); 168 } 169 #endif 170 171 int jpeg_quality_scaling(int quality) { 172 return jpegli_quality_scaling(quality); 173 } 174 175 void jpeg_add_quant_table(j_compress_ptr cinfo, int which_tbl, 176 const unsigned int *basic_table, int scale_factor, 177 boolean force_baseline) { 178 jpegli_add_quant_table(cinfo, which_tbl, basic_table, scale_factor, 179 force_baseline); 180 } 181 182 void jpeg_simple_progression(j_compress_ptr cinfo) { 183 jpegli_simple_progression(cinfo); 184 } 185 186 void jpeg_suppress_tables(j_compress_ptr cinfo, boolean suppress) { 187 jpegli_suppress_tables(cinfo, suppress); 188 } 189 190 #if JPEG_LIB_VERSION >= 70 191 void jpeg_calc_jpeg_dimensions(j_compress_ptr cinfo) { 192 jpegli_calc_jpeg_dimensions(cinfo); 193 } 194 #endif 195 196 void jpeg_copy_critical_parameters(j_decompress_ptr srcinfo, 197 j_compress_ptr dstinfo) { 198 jpegli_copy_critical_parameters(srcinfo, dstinfo); 199 } 200 201 void jpeg_write_m_header(j_compress_ptr cinfo, int marker, 202 unsigned int datalen) { 203 jpegli_write_m_header(cinfo, marker, datalen); 204 } 205 206 void jpeg_write_m_byte(j_compress_ptr cinfo, int val) { 207 jpegli_write_m_byte(cinfo, val); 208 } 209 210 void jpeg_write_marker(j_compress_ptr cinfo, int marker, const JOCTET *dataptr, 211 unsigned int datalen) { 212 jpegli_write_marker(cinfo, marker, dataptr, datalen); 213 } 214 215 void jpeg_write_icc_profile(j_compress_ptr cinfo, const JOCTET *icc_data_ptr, 216 unsigned int icc_data_len) { 217 jpegli_write_icc_profile(cinfo, icc_data_ptr, icc_data_len); 218 } 219 220 void jpeg_start_compress(j_compress_ptr cinfo, boolean write_all_tables) { 221 jpegli_start_compress(cinfo, write_all_tables); 222 } 223 224 void jpeg_write_tables(j_compress_ptr cinfo) { jpegli_write_tables(cinfo); } 225 226 JDIMENSION jpeg_write_scanlines(j_compress_ptr cinfo, JSAMPARRAY scanlines, 227 JDIMENSION num_lines) { 228 return jpegli_write_scanlines(cinfo, scanlines, num_lines); 229 } 230 231 JDIMENSION jpeg_write_raw_data(j_compress_ptr cinfo, JSAMPIMAGE data, 232 JDIMENSION num_lines) { 233 return jpegli_write_raw_data(cinfo, data, num_lines); 234 } 235 236 void jpeg_write_coefficients(j_compress_ptr cinfo, 237 jvirt_barray_ptr *coef_arrays) { 238 jpegli_write_coefficients(cinfo, coef_arrays); 239 } 240 241 void jpeg_finish_compress(j_compress_ptr cinfo) { 242 jpegli_finish_compress(cinfo); 243 } 244 245 void jpeg_abort_compress(j_compress_ptr cinfo) { jpegli_abort_compress(cinfo); } 246 247 void jpeg_destroy_compress(j_compress_ptr cinfo) { 248 jpegli_destroy_compress(cinfo); 249 } 250 251 boolean jpeg_resync_to_restart(j_decompress_ptr cinfo, int desired) { 252 return jpegli_resync_to_restart(cinfo, desired); 253 } 254 255 void jpeg_new_colormap(j_decompress_ptr cinfo) { jpegli_new_colormap(cinfo); }