1#![allow(non_snake_case)]
4#![allow(non_camel_case_types)]
5#![allow(non_upper_case_globals)]
6
7use std::mem;
8pub use std::os::raw::{c_int, c_long, c_uint, c_ulong, c_void};
9
10#[cfg(not(target_arch = "wasm32"))]
11pub use libc::FILE;
12#[cfg(target_arch = "wasm32")]
13pub use std::os::raw::c_void as FILE;
14
15mod jerror;
16pub use jerror::*;
17
18pub use JINT_COMPRESS_PROFILE_VALUE::*;
19pub use J_BOOLEAN_PARAM::*;
20pub use J_COLOR_SPACE::*;
21pub use J_DCT_METHOD::JDCT_IFAST as JDCT_FASTEST;
22pub use J_DCT_METHOD::JDCT_ISLOW as JDCT_DEFAULT;
23pub use J_FLOAT_PARAM::*;
24pub use J_INT_PARAM::*;
25
26#[cfg(feature = "jpeg80_abi")]
27pub const JPEG_LIB_VERSION: c_int = 80;
28#[cfg(all(feature = "jpeg70_abi", not(feature = "jpeg80_abi")))]
29pub const JPEG_LIB_VERSION: c_int = 70;
30#[cfg(not(feature = "jpeg70_abi"))] pub const JPEG_LIB_VERSION: c_int = 62;
32
33pub const DCTSIZE: usize = 8;
35pub const DCTSIZE2: usize = DCTSIZE * DCTSIZE;
37
38pub const JPOOL_PERMANENT: c_int = 0;
40pub const JPOOL_IMAGE: c_int = 1;
42pub const NUM_QUANT_TBLS: usize = 4;
44
45pub type boolean = c_int;
46pub type JSAMPLE = u8;
47pub type JCOEF = i16;
48pub type JDIMENSION = c_uint;
49pub type JSAMPROW = *const JSAMPLE;
51pub type JSAMPROW_MUT = *mut JSAMPLE;
52pub type JSAMPARRAY = *const JSAMPROW;
54pub type JSAMPARRAY_MUT = *mut JSAMPROW_MUT;
55pub type JSAMPIMAGE = *const JSAMPARRAY;
57pub type JSAMPIMAGE_MUT = *mut JSAMPARRAY_MUT;
58pub type JBLOCK = [JCOEF; 64usize];
60pub type JBLOCKROW = *mut JBLOCK;
62pub type JBLOCKARRAY = *mut JBLOCKROW;
63
64#[cfg(feature = "nasm_simd")]
67pub type DCTELEM = i16;
68#[cfg(not(feature = "nasm_simd"))]
69pub type DCTELEM = c_int;
70
71#[cfg(feature = "jpegtran")]
72include!("transform.rs");
73
74#[repr(C)]
75pub struct JQUANT_TBL {
76 pub quantval: [u16; 64usize],
80 sent_table: boolean,
81}
82impl Default for JQUANT_TBL {
83 fn default() -> JQUANT_TBL { unsafe { mem::zeroed() } }
84}
85
86#[repr(C)]
87pub struct JHUFF_TBL {
88 pub bits: [u8; 17usize],
89 pub huffval: [u8; 256usize],
90 sent_table: boolean,
91}
92impl Default for JHUFF_TBL {
93 fn default() -> JHUFF_TBL { unsafe { mem::zeroed() } }
94}
95
96#[repr(C)]
97pub struct jpeg_component_info {
98 pub component_id: c_int,
100 pub component_index: c_int,
102 pub h_samp_factor: c_int,
104 pub v_samp_factor: c_int,
106 pub quant_tbl_no: c_int,
108 pub dc_tbl_no: c_int,
115 pub ac_tbl_no: c_int,
117 pub width_in_blocks: JDIMENSION,
118 pub height_in_blocks: JDIMENSION,
119
120 #[cfg(feature = "jpeg70_abi")]
122 DCT_h_scaled_size: c_int,
123 #[cfg(feature = "jpeg70_abi")]
124 DCT_v_scaled_size: c_int,
125 #[cfg(not(feature = "jpeg70_abi"))]
126 DCT_scaled_size: c_int,
127
128 downsampled_width: JDIMENSION,
129 downsampled_height: JDIMENSION,
130 component_needed: boolean,
131 MCU_width: c_int,
132 MCU_height: c_int,
133 MCU_blocks: c_int,
134 MCU_sample_width: c_int,
135 last_col_width: c_int,
136 last_row_height: c_int,
137 pub quant_table: *mut JQUANT_TBL,
138 dct_table: *mut c_void,
139}
140impl Default for jpeg_component_info {
141 fn default() -> jpeg_component_info { unsafe { mem::zeroed() } }
142}
143
144#[repr(C)]
145#[derive(Copy, Clone)]
146pub struct jpeg_scan_info {
147 pub comps_in_scan: c_int,
148 pub component_index: [c_int; 4usize],
149 pub Ss: c_int,
150 pub Se: c_int,
151 pub Ah: c_int,
152 pub Al: c_int,
153}
154impl Default for jpeg_scan_info {
155 fn default() -> jpeg_scan_info { unsafe { mem::zeroed() } }
156}
157
158#[repr(C)]
159pub struct jpeg_marker_struct {
160 pub next: *mut jpeg_marker_struct,
161 pub marker: u8,
162 pub original_length: c_uint,
163 pub data_length: c_uint,
164 pub data: *mut u8,
165}
166
167pub enum jpeg_marker {
168 APP0 = 0xE0, COM = 0xFE, }
171
172#[repr(C)]
173#[derive(Copy, Clone, Eq, PartialEq, Debug)]
174pub enum J_COLOR_SPACE {
175 JCS_UNKNOWN,
177 JCS_GRAYSCALE,
179 JCS_RGB,
181 JCS_YCbCr,
183 JCS_CMYK,
185 JCS_YCCK,
187 JCS_EXT_RGB,
189 JCS_EXT_RGBX,
195 JCS_EXT_BGR,
197 JCS_EXT_BGRX,
199 JCS_EXT_XBGR,
201 JCS_EXT_XRGB,
203 JCS_EXT_RGBA,
209 JCS_EXT_BGRA,
211 JCS_EXT_ABGR,
213 JCS_EXT_ARGB,
215 JCS_RGB565,
217}
218
219#[repr(C)]
220#[derive(Copy, Clone, Eq, PartialEq, Debug)]
221pub enum J_DCT_METHOD {
222 JDCT_ISLOW = 0,
223 JDCT_IFAST = 1,
224 JDCT_FLOAT = 2,
225}
226
227#[repr(C)]
228pub enum J_DITHER_MODE {
230 JDITHER_NONE = 0,
231 JDITHER_ORDERED = 1,
232 JDITHER_FS = 2,
233}
234
235#[repr(u32)]
236#[derive(Copy, Clone, Eq, PartialEq, Debug)]
237pub enum J_BOOLEAN_PARAM {
242 JBOOLEAN_OPTIMIZE_SCANS = 0x680C061E,
244 JBOOLEAN_TRELLIS_QUANT = 0xC5122033,
246 JBOOLEAN_TRELLIS_QUANT_DC = 0x339D4C0C,
248 JBOOLEAN_TRELLIS_EOB_OPT = 0xD7F73780,
250 JBOOLEAN_USE_LAMBDA_WEIGHT_TBL = 0x339DB65F,
252 JBOOLEAN_USE_SCANS_IN_TRELLIS = 0xFD841435,
254 JBOOLEAN_TRELLIS_Q_OPT = 0xE12AE269,
256 JBOOLEAN_OVERSHOOT_DERINGING = 0x3F4BBBF9,
258}
259
260#[repr(u32)]
261#[derive(Copy, Clone, Eq, PartialEq, Debug)]
262pub enum J_FLOAT_PARAM {
263 JFLOAT_LAMBDA_LOG_SCALE1 = 0x5B61A599,
264 JFLOAT_LAMBDA_LOG_SCALE2 = 0xB9BBAE03,
265 JFLOAT_TRELLIS_DELTA_DC_WEIGHT = 0x13775453,
266}
267
268#[repr(u32)]
269#[derive(Copy, Clone, Eq, PartialEq, Debug)]
270pub enum J_INT_PARAM {
271 JINT_COMPRESS_PROFILE = 0xE9918625,
273 JINT_TRELLIS_FREQ_SPLIT = 0x6FAFF127,
275 JINT_TRELLIS_NUM_LOOPS = 0xB63EBF39,
277 JINT_BASE_QUANT_TBL_IDX = 0x44492AB1,
279 JINT_DC_SCAN_OPT_MODE = 0x0BE7AD3C,
281}
282
283#[repr(C)]
284#[derive(Copy, Clone, Eq, PartialEq, Debug)]
285pub enum JINT_COMPRESS_PROFILE_VALUE {
286 JCP_MAX_COMPRESSION = 0x5D083AAD, JCP_FASTEST = 0x2AEA5CB4, }
289
290#[repr(C)]
291pub struct jpeg_common_struct {
295 pub err: *mut jpeg_error_mgr,
296 pub mem: *mut jpeg_memory_mgr,
297 pub progress: *mut jpeg_progress_mgr,
299 pub client_data: *mut c_void,
301 pub is_decompressor: boolean,
303 pub global_state: c_int,
305}
306
307enum jpeg_comp_master {}
308enum jpeg_c_main_controller {}
309enum jpeg_c_prep_controller {}
310enum jpeg_c_coef_controller {}
311enum jpeg_marker_writer {}
312enum jpeg_color_converter {}
313enum jpeg_downsampler {}
314enum jpeg_forward_dct {}
315enum jpeg_entropy_encoder {}
316
317#[repr(C)]
318pub struct jpeg_compress_struct {
319 pub common: jpeg_common_struct,
320 pub dest: *mut jpeg_destination_mgr,
321 pub image_width: JDIMENSION,
324 pub image_height: JDIMENSION,
325 pub input_components: c_int,
326 pub in_color_space: J_COLOR_SPACE,
328 pub input_gamma: f64,
330
331 #[cfg(feature = "jpeg70_abi")]
332 scale_num: c_uint,
334 #[cfg(feature = "jpeg70_abi")]
335 scale_denom: c_uint,
337
338 #[cfg(feature = "jpeg70_abi")]
346 jpeg_width: JDIMENSION,
347 #[cfg(feature = "jpeg70_abi")]
349 jpeg_height: JDIMENSION,
350
351 pub data_precision: c_int,
353 pub num_components: c_int,
354 pub jpeg_color_space: J_COLOR_SPACE,
355 pub comp_info: *mut jpeg_component_info,
357 pub quant_tbl_ptrs: [*mut JQUANT_TBL; 4usize],
358
359 #[cfg(feature = "jpeg70_abi")]
360 q_scale_factor: [c_int; NUM_QUANT_TBLS],
361
362 pub dc_huff_tbl_ptrs: [*mut JHUFF_TBL; 4usize],
365 pub ac_huff_tbl_ptrs: [*mut JHUFF_TBL; 4usize],
366 pub arith_dc_L: [u8; 16usize],
367 pub arith_dc_U: [u8; 16usize],
368 pub arith_ac_K: [u8; 16usize],
369 pub num_scans: c_int,
370 pub scan_info: *const jpeg_scan_info,
371 pub raw_data_in: boolean,
373 pub arith_code: boolean,
374 pub optimize_coding: boolean,
376 pub CCIR601_sampling: boolean,
377 #[cfg(feature = "jpeg70_abi")]
379 pub do_fancy_downsampling: boolean,
380 pub smoothing_factor: c_int,
381 pub dct_method: J_DCT_METHOD,
382 pub restart_interval: c_uint,
384 pub restart_in_rows: c_int,
385 pub write_JFIF_header: boolean,
386 pub JFIF_major_version: u8,
387 pub JFIF_minor_version: u8,
388 pub density_unit: u8,
389 pub X_density: u16,
390 pub Y_density: u16,
391 pub write_Adobe_marker: boolean,
392 pub next_scanline: JDIMENSION,
393 progressive_mode: boolean,
397 pub max_h_samp_factor: c_int,
398 pub max_v_samp_factor: c_int,
399 #[cfg(feature = "jpeg70_abi")]
401 min_DCT_h_scaled_size: c_int,
402 #[cfg(feature = "jpeg70_abi")]
404 min_DCT_v_scaled_size: c_int,
405
406 total_iMCU_rows: JDIMENSION,
407 comps_in_scan: c_int,
408 cur_comp_info: [*mut jpeg_component_info; 4usize],
409 MCUs_per_row: JDIMENSION,
410 MCU_rows_in_scan: JDIMENSION,
411 blocks_in_MCU: c_int,
412 MCU_membership: [c_int; 10usize],
413 Ss: c_int,
414 Se: c_int,
415 Ah: c_int,
416 Al: c_int,
417 #[cfg(feature = "jpeg80_abi")]
419 block_size: c_int,
420 #[cfg(feature = "jpeg80_abi")]
422 natural_order: *const c_int,
423 #[cfg(feature = "jpeg80_abi")]
425 lim_Se: c_int,
426
427 master: *mut jpeg_comp_master,
428 main: *mut jpeg_c_main_controller,
429 prep: *mut jpeg_c_prep_controller,
430 coef: *mut jpeg_c_coef_controller,
431 marker: *mut jpeg_marker_writer,
432 cconvert: *mut jpeg_color_converter,
433 downsample: *mut jpeg_downsampler,
434 fdct: *mut jpeg_forward_dct,
435 entropy: *mut jpeg_entropy_encoder,
436 script_space: *mut jpeg_scan_info,
437 script_space_size: c_int,
438}
439
440enum jpeg_decomp_master {}
441enum jpeg_d_main_controller {}
442enum jpeg_d_coef_controller {}
443enum jpeg_d_post_controller {}
444enum jpeg_input_controller {}
445enum jpeg_marker_reader {}
446enum jpeg_entropy_decoder {}
447enum jpeg_inverse_dct {}
448enum jpeg_upsampler {}
449enum jpeg_color_deconverter {}
450enum jpeg_color_quantizer {}
451
452#[repr(C)]
453pub struct jpeg_decompress_struct {
454 pub common: jpeg_common_struct,
455
456 pub src: *mut jpeg_source_mgr,
457 pub image_width: JDIMENSION,
459 pub image_height: JDIMENSION,
460 pub num_components: c_int,
461 pub jpeg_color_space: J_COLOR_SPACE,
462 pub out_color_space: J_COLOR_SPACE,
466 pub scale_num: c_uint,
467 pub scale_denom: c_uint,
468 pub output_gamma: f64,
470 pub buffered_image: boolean,
471 pub raw_data_out: boolean,
473 pub dct_method: J_DCT_METHOD,
474 pub do_fancy_upsampling: boolean,
475 pub do_block_smoothing: boolean,
476 pub quantize_colors: boolean,
478 pub dither_mode: J_DITHER_MODE,
480 pub two_pass_quantize: boolean,
482 pub desired_number_of_colors: c_int,
484 pub enable_1pass_quant: boolean,
486 pub enable_external_quant: boolean,
488 pub enable_2pass_quant: boolean,
490 pub output_width: JDIMENSION,
495 pub output_height: JDIMENSION,
496 pub out_color_components: c_int,
497 pub output_components: c_int,
498 pub rec_outbuf_height: c_int,
503 pub actual_number_of_colors: c_int,
505 pub colormap: JSAMPARRAY_MUT,
507 pub output_scanline: JDIMENSION,
511 pub input_scan_number: c_int,
514 pub input_iMCU_row: JDIMENSION,
515 pub output_scan_number: c_int,
516 pub output_iMCU_row: JDIMENSION,
517 pub coef_bits: *mut c_void,
524 pub quant_tbl_ptrs: [*mut JQUANT_TBL; 4usize],
528 dc_huff_tbl_ptrs: [*mut JHUFF_TBL; 4usize],
529 ac_huff_tbl_ptrs: [*mut JHUFF_TBL; 4usize],
530 data_precision: c_int,
531 pub comp_info: *mut jpeg_component_info,
532
533 #[cfg(feature = "jpeg80_abi")]
535 is_baseline: boolean,
536 progressive_mode: boolean,
537
538 arith_code: boolean,
539 arith_dc_L: [u8; 16usize],
540 arith_dc_U: [u8; 16usize],
541 arith_ac_K: [u8; 16usize],
542 restart_interval: c_uint,
543 saw_JFIF_marker: boolean,
544 JFIF_major_version: u8,
545 JFIF_minor_version: u8,
546 pub density_unit: u8,
547 pub X_density: u16,
548 pub Y_density: u16,
549 saw_Adobe_marker: boolean,
550 Adobe_transform: u8,
551 CCIR601_sampling: boolean,
552 pub marker_list: *mut jpeg_marker_struct,
553 pub max_h_samp_factor: c_int,
555 pub max_v_samp_factor: c_int,
556
557 #[cfg(feature = "jpeg70_abi")]
559 min_DCT_h_scaled_size: c_int,
560 #[cfg(feature = "jpeg70_abi")]
562 min_DCT_v_scaled_size: c_int,
563 #[cfg(not(feature = "jpeg70_abi"))]
565 min_DCT_scaled_size: c_int,
566 total_iMCU_rows: JDIMENSION,
567 sample_range_limit: *mut JSAMPLE,
568 comps_in_scan: c_int,
569 cur_comp_info: [*mut jpeg_component_info; 4usize],
570 MCUs_per_row: JDIMENSION,
571 MCU_rows_in_scan: JDIMENSION,
572 blocks_in_MCU: c_int,
573 MCU_membership: [c_int; 10usize],
574 Ss: c_int,
575 Se: c_int,
576 Ah: c_int,
577 Al: c_int,
578
579 #[cfg(feature = "jpeg80_abi")]
581 block_size: c_int,
582 #[cfg(feature = "jpeg80_abi")]
584 natural_order: *const c_int,
585 #[cfg(feature = "jpeg80_abi")]
587 lim_Se: c_int,
588
589 unread_marker: c_int,
590 master: *mut jpeg_decomp_master,
591 main: *mut jpeg_d_main_controller,
592 coef: *mut jpeg_d_coef_controller,
593 post: *mut jpeg_d_post_controller,
594 inputctl: *mut jpeg_input_controller,
595 marker: *mut jpeg_marker_reader,
596 entropy: *mut jpeg_entropy_decoder,
597 idct: *mut jpeg_inverse_dct,
598 upsample: *mut jpeg_upsampler,
599 cconvert: *mut jpeg_color_deconverter,
600 cquantize: *mut jpeg_color_quantizer,
601}
602
603#[repr(C)]
604pub struct jpeg_error_mgr {
606 pub error_exit: Option<unsafe extern "C-unwind" fn(cinfo: &mut jpeg_common_struct)>,
608 pub emit_message: Option<unsafe extern "C-unwind" fn(cinfo: &mut jpeg_common_struct, msg_level: c_int)>,
609 pub output_message: Option<unsafe extern "C-unwind" fn(cinfo: &mut jpeg_common_struct)>,
610 pub format_message: Option<unsafe extern "C-unwind" fn(cinfo: &mut jpeg_common_struct, buffer: &[u8; 80usize])>,
611 pub reset_error_mgr: Option<unsafe extern "C-unwind" fn(cinfo: &mut jpeg_common_struct)>,
612 pub msg_code: c_int,
613 pub msg_parm: msg_parm_union,
614 pub trace_level: c_int,
615 pub num_warnings: c_long,
616 pub jpeg_message_table: *const *const i8,
617 pub last_jpeg_message: c_int,
618 pub addon_message_table: *const *const i8,
619 pub first_addon_message: c_int,
620 pub last_addon_message: c_int,
621}
622
623#[repr(C)]
624pub struct msg_parm_union {
625 pub _bindgen_data_: [u32; 20usize],
626}
627impl msg_parm_union {
628 pub unsafe fn i(&mut self) -> *mut [c_int; 8usize] {
629 ::std::mem::transmute(&self._bindgen_data_)
630 }
631 pub unsafe fn s(&mut self) -> *mut [i8; 80usize] {
632 ::std::mem::transmute(&self._bindgen_data_)
633 }
634}
635impl Default for msg_parm_union {
636 fn default() -> msg_parm_union { unsafe { mem::zeroed() } }
637}
638
639#[repr(C)]
640pub struct jpeg_progress_mgr {
641 pub progress_monitor: Option<unsafe extern "C-unwind" fn(cinfo: &mut jpeg_common_struct)>,
642 pub pass_counter: c_long,
643 pub pass_limit: c_long,
644 pub completed_passes: c_int,
645 pub total_passes: c_int,
646}
647
648#[repr(C)]
649pub struct jpeg_destination_mgr {
650 pub next_output_byte: *mut u8,
651 pub free_in_buffer: usize,
652 pub init_destination: Option<unsafe extern "C-unwind" fn(cinfo: &mut jpeg_compress_struct)>,
653 pub empty_output_buffer: Option<unsafe extern "C-unwind" fn(cinfo: &mut jpeg_compress_struct) -> boolean>,
654 pub term_destination: Option<unsafe extern "C-unwind" fn(cinfo: &mut jpeg_compress_struct)>,
655}
656
657#[repr(C)]
658pub struct jpeg_source_mgr {
659 pub next_input_byte: *const u8,
660 pub bytes_in_buffer: usize,
661 pub init_source: Option<unsafe extern "C-unwind" fn(cinfo: &mut jpeg_decompress_struct)>,
662 pub fill_input_buffer: Option<unsafe extern "C-unwind" fn(cinfo: &mut jpeg_decompress_struct)
663 -> boolean>,
664 pub skip_input_data: Option<unsafe extern "C-unwind" fn(cinfo: &mut jpeg_decompress_struct,
665 num_bytes:
666 c_long)>,
667 pub resync_to_restart: Option<unsafe extern "C-unwind" fn(cinfo: &mut jpeg_decompress_struct,
668 desired: c_int)
669 -> boolean>,
670 pub term_source: Option<unsafe extern "C-unwind" fn(cinfo: &mut jpeg_decompress_struct)>,
671}
672
673#[repr(C)]
675pub struct jvirt_sarray_control {
676 _priv: c_long,
677}
678
679#[repr(C)]
681pub struct jvirt_barray_control {
682 _priv: c_long,
683}
684
685#[repr(C)]
686pub struct jpeg_memory_mgr {
687 pub alloc_small: Option<unsafe extern "C-unwind" fn(cinfo: &mut jpeg_common_struct,
688 pool_id: c_int,
689 sizeofobject: usize) -> *mut c_void>,
690 pub alloc_large: Option<unsafe extern "C-unwind" fn(cinfo: &mut jpeg_common_struct,
691 pool_id: c_int,
692 sizeofobject: usize) -> *mut c_void>,
693 pub alloc_sarray: Option<unsafe extern "C-unwind" fn(cinfo: &mut jpeg_common_struct,
694 pool_id: c_int,
695 samplesperrow: JDIMENSION,
696 numrows: JDIMENSION) -> JSAMPARRAY_MUT>,
697 pub alloc_barray: Option<unsafe extern "C-unwind" fn(cinfo: &mut jpeg_common_struct,
698 pool_id: c_int,
699 blocksperrow: JDIMENSION,
700 numrows: JDIMENSION) -> JBLOCKARRAY>,
701 pub request_virt_sarray: Option<unsafe extern "C-unwind" fn(cinfo: &mut jpeg_common_struct,
702 pool_id: c_int,
703 pre_zero: boolean,
704 samplesperrow: JDIMENSION,
705 numrows: JDIMENSION,
706 maxaccess: JDIMENSION) -> *mut jvirt_sarray_control>,
707 pub request_virt_barray: Option<unsafe extern "C-unwind" fn(cinfo: &mut jpeg_common_struct,
708 pool_id:
709 c_int,
710 pre_zero: boolean,
711 blocksperrow:
712 JDIMENSION,
713 numrows: JDIMENSION,
714 maxaccess: JDIMENSION) -> *mut jvirt_barray_control>,
715 pub realize_virt_arrays: Option<unsafe extern "C-unwind" fn(cinfo: &mut jpeg_common_struct)>,
716 pub access_virt_sarray: Option<unsafe extern "C-unwind" fn(cinfo: &mut jpeg_common_struct,
717 ptr: *mut jvirt_sarray_control,
718 start_row: JDIMENSION,
719 num_rows: JDIMENSION,
720 writable: boolean) -> JSAMPARRAY_MUT>,
721 pub access_virt_barray: Option<unsafe extern "C-unwind" fn(cinfo: &mut jpeg_common_struct,
722 ptr: *mut jvirt_barray_control,
723 start_row: JDIMENSION,
724 num_rows: JDIMENSION,
725 writable: boolean) -> JBLOCKARRAY>,
726 pub free_pool: Option<unsafe extern "C-unwind" fn(cinfo: &mut jpeg_common_struct, pool_id: c_int)>,
727 pub self_destruct: Option<unsafe extern "C-unwind" fn(cinfo: &mut jpeg_common_struct)>,
728 pub max_memory_to_use: c_long,
729 pub max_alloc_chunk: c_long,
730}
731
732pub type jpeg_marker_parser_method = Option<unsafe extern "C-unwind" fn(cinfo: &mut jpeg_decompress_struct) -> boolean>;
733
734pub unsafe fn jpeg_create_decompress(dinfo: *mut jpeg_decompress_struct) {
735 jpeg_CreateDecompress(dinfo, JPEG_LIB_VERSION, mem::size_of::<jpeg_decompress_struct>());
736}
737
738pub unsafe fn jpeg_create_compress(cinfo: *mut jpeg_compress_struct) {
739 jpeg_CreateCompress(cinfo, JPEG_LIB_VERSION, mem::size_of::<jpeg_compress_struct>());
740}
741
742extern "C-unwind" {
743 pub fn jpeg_std_error<'a>(err: &'a mut jpeg_error_mgr) -> &'a mut jpeg_error_mgr;
744 pub fn jpeg_CreateCompress(cinfo: *mut jpeg_compress_struct, version: c_int, structsize: usize);
745 pub fn jpeg_CreateDecompress(cinfo: *mut jpeg_decompress_struct, version: c_int, structsize: usize);
746 pub fn jpeg_destroy_compress(cinfo: &mut jpeg_compress_struct);
747 pub fn jpeg_destroy_decompress(cinfo: &mut jpeg_decompress_struct);
748 #[cfg(not(target_arch = "wasm32"))]
749 pub fn jpeg_stdio_dest(cinfo: &mut jpeg_compress_struct, outfile: *mut FILE);
750 #[cfg(not(target_arch = "wasm32"))]
751 pub fn jpeg_stdio_src(cinfo: &mut jpeg_decompress_struct, infile: *mut FILE);
752 pub fn jpeg_mem_dest(cinfo: &mut jpeg_compress_struct,
753 outbuffer: *mut *mut u8,
754 outsize: *mut c_ulong);
755 pub fn jpeg_mem_src(cinfo: &mut jpeg_decompress_struct,
756 inbuffer: *const u8,
757 insize: c_ulong);
758 pub fn jpeg_set_defaults(cinfo: &mut jpeg_compress_struct);
759 pub fn jpeg_set_colorspace(cinfo: &mut jpeg_compress_struct, colorspace: J_COLOR_SPACE);
760 pub fn jpeg_default_colorspace(cinfo: &mut jpeg_compress_struct);
761 pub fn jpeg_set_quality(cinfo: &mut jpeg_compress_struct, quality: c_int, force_baseline: boolean);
762 pub fn jpeg_set_linear_quality(cinfo: &mut jpeg_compress_struct,
763 scale_factor: c_int,
764 force_baseline: boolean);
765 pub fn jpeg_add_quant_table(cinfo: &mut jpeg_compress_struct,
766 which_tbl: c_int,
767 basic_table: *const c_uint,
768 scale_factor: c_int,
769 force_baseline: boolean);
770 pub fn jpeg_quality_scaling(quality: c_int) -> c_int;
771 pub fn jpeg_float_quality_scaling(quality: f32) -> f32;
772 pub fn jpeg_simple_progression(cinfo: &mut jpeg_compress_struct);
773 pub fn jpeg_suppress_tables(cinfo: &mut jpeg_compress_struct, suppress: boolean);
774 pub fn jpeg_alloc_quant_table(cinfo: &mut jpeg_common_struct) -> *mut JQUANT_TBL;
775 pub fn jpeg_alloc_huff_table(cinfo: &mut jpeg_common_struct) -> *mut JHUFF_TBL;
776 pub fn jpeg_start_compress(cinfo: &mut jpeg_compress_struct, write_all_tables: boolean);
777 pub fn jpeg_write_scanlines(cinfo: &mut jpeg_compress_struct, scanlines: JSAMPARRAY,
778 num_lines: JDIMENSION) -> JDIMENSION;
779 pub fn jpeg_finish_compress(cinfo: &mut jpeg_compress_struct);
780 pub fn jpeg_write_raw_data(cinfo: &mut jpeg_compress_struct, data: JSAMPIMAGE,
781 num_lines: JDIMENSION) -> JDIMENSION;
782 pub fn jpeg_write_marker(cinfo: &mut jpeg_compress_struct, marker: c_int,
783 dataptr: *const u8, datalen: c_uint);
784 pub fn jpeg_write_m_header(cinfo: &mut jpeg_compress_struct, marker: c_int, datalen: c_uint);
785 pub fn jpeg_write_m_byte(cinfo: &mut jpeg_compress_struct, val: c_int);
786 pub fn jpeg_write_tables(cinfo: &mut jpeg_compress_struct);
787 pub fn jpeg_read_header(cinfo: &mut jpeg_decompress_struct, require_image: boolean) -> c_int;
788 pub fn jpeg_start_decompress(cinfo: &mut jpeg_decompress_struct) -> boolean;
789 pub fn jpeg_read_scanlines(cinfo: &mut jpeg_decompress_struct, scanlines: JSAMPARRAY_MUT,
790 max_lines: JDIMENSION) -> JDIMENSION;
791 pub fn jpeg_finish_decompress(cinfo: &mut jpeg_decompress_struct) -> boolean;
792 pub fn jpeg_read_raw_data(cinfo: &mut jpeg_decompress_struct, data: JSAMPIMAGE_MUT,
793 max_lines: JDIMENSION) -> JDIMENSION;
794 #[cfg(feature = "icc_io")]
805 pub fn jpeg_read_icc_profile(cinfo: &mut jpeg_decompress_struct, icc_data_ptr: *mut *mut u8, icc_data_len: *mut c_uint) -> boolean;
806 #[cfg(feature = "icc_io")]
811 pub fn jpeg_write_icc_profile(cinfo: &mut jpeg_compress_struct, icc_data_ptr: *const u8, icc_data_len: c_uint);
812 pub fn jpeg_skip_scanlines(cinfo: &mut jpeg_decompress_struct, num_lines: JDIMENSION) -> JDIMENSION;
819 pub fn jpeg_crop_scanline(cinfo: &mut jpeg_decompress_struct, xoffset: &mut JDIMENSION, width: &mut JDIMENSION);
828 pub fn jpeg_has_multiple_scans(cinfo: &jpeg_decompress_struct) -> boolean;
829 pub fn jpeg_start_output(cinfo: &mut jpeg_decompress_struct, scan_number: c_int) -> boolean;
830 pub fn jpeg_finish_output(cinfo: &mut jpeg_decompress_struct) -> boolean;
831 pub fn jpeg_input_complete(cinfo: &jpeg_decompress_struct) -> boolean;
832 #[deprecated]
833 pub fn jpeg_new_colormap(cinfo: &mut jpeg_decompress_struct);
834 pub fn jpeg_consume_input(cinfo: &mut jpeg_decompress_struct) -> c_int;
835 #[cfg(feature = "jpeg70_abi")]
837 pub fn jpeg_calc_jpeg_dimensions(cinfo: &mut jpeg_compress_struct);
838 pub fn jpeg_calc_output_dimensions(cinfo: &mut jpeg_decompress_struct);
839 pub fn jpeg_save_markers(cinfo: &mut jpeg_decompress_struct,
840 marker_code: c_int,
841 length_limit: c_uint);
842 pub fn jpeg_set_marker_processor(cinfo: &mut jpeg_decompress_struct,
843 marker_code: c_int,
844 routine: jpeg_marker_parser_method);
845 pub fn jpeg_read_coefficients(cinfo: &mut jpeg_decompress_struct) -> *mut *mut jvirt_barray_control;
846 pub fn jpeg_write_coefficients(cinfo: &mut jpeg_compress_struct,
847 coef_arrays: *mut *mut jvirt_barray_control);
848 pub fn jpeg_copy_critical_parameters(srcinfo: &jpeg_decompress_struct,
849 dstinfo: &mut jpeg_compress_struct);
850 #[cfg(feature = "jpeg80_abi")]
851 pub fn jpeg_core_output_dimensions(cinfo: &mut jpeg_decompress_struct);
852 pub fn jpeg_abort_compress(cinfo: &mut jpeg_compress_struct);
853 pub fn jpeg_abort_decompress(cinfo: &mut jpeg_decompress_struct);
854 pub fn jpeg_resync_to_restart(cinfo: &mut jpeg_decompress_struct, desired: c_int) -> boolean;
855 pub fn jpeg_c_bool_param_supported(cinfo: &jpeg_compress_struct,
856 param: J_BOOLEAN_PARAM) -> boolean;
857 pub fn jpeg_c_set_bool_param(cinfo: &mut jpeg_compress_struct,
858 param: J_BOOLEAN_PARAM, value: boolean);
859 pub fn jpeg_c_get_bool_param(cinfo: &jpeg_compress_struct,
860 param: J_BOOLEAN_PARAM) -> boolean;
861 pub fn jpeg_c_float_param_supported(cinfo: &jpeg_compress_struct, param: J_FLOAT_PARAM) -> boolean;
862 pub fn jpeg_abort(cinfo: &mut jpeg_common_struct);
863 pub fn jpeg_destroy(cinfo: &mut jpeg_common_struct);
864 pub fn jpeg_c_set_float_param(cinfo: &mut jpeg_compress_struct, param: J_FLOAT_PARAM, value: f32);
865 pub fn jpeg_c_get_float_param(cinfo: &jpeg_compress_struct, param: J_FLOAT_PARAM) -> f32;
866 pub fn jpeg_c_int_param_supported(cinfo: &jpeg_compress_struct, param: J_INT_PARAM) -> boolean;
867 pub fn jpeg_c_set_int_param(cinfo: &mut jpeg_compress_struct, param: J_INT_PARAM, value: c_int);
868 pub fn jpeg_c_get_int_param(cinfo: &jpeg_compress_struct, param: J_INT_PARAM) -> c_int;
869 pub fn jpeg_set_idct_method_selector(cinfo: &jpeg_compress_struct, param: *const c_void);
870 #[cfg(test)] #[allow(dead_code)] fn jsimd_can_rgb_ycc() -> c_int;
871 #[cfg(test)] #[allow(dead_code)] fn jsimd_can_fdct_ifast() -> c_int;
872 #[cfg(test)] #[allow(dead_code)] fn jsimd_fdct_ifast(block: *mut DCTELEM);
873}
874
875#[test]
876fn enum_32bit() {
877 assert_eq!(JBOOLEAN_TRELLIS_QUANT as u64, 0xC5122033);
878}
879
880#[test]
881#[cfg(feature = "with_simd")]
882fn simd_is_detectable() {
883 unsafe {
884 jsimd_can_rgb_ycc();
885 }
886}
887
888#[test]
889#[cfg(all(target_arch = "x86_64", feature = "nasm_simd"))]
890fn simd_works_sse2() {
891 #[repr(align(16))]
892 struct Aligned([DCTELEM; 64]);
893
894 unsafe {
895 assert!(jsimd_can_fdct_ifast() != 0);
896 let mut data = Aligned([0 as DCTELEM; 64]);
897 jsimd_fdct_ifast(data.0.as_mut_ptr());
898 }
899}
900
901#[test]
902fn try_decompress() {
903 unsafe {
904 let mut err = mem::zeroed();
905 jpeg_std_error(&mut err);
906 let mut cinfo: jpeg_decompress_struct = mem::zeroed();
907 cinfo.common.err = &mut err;
908 jpeg_create_decompress(&mut cinfo);
909 jpeg_destroy_decompress(&mut cinfo);
910 }
911}
912
913#[test]
914fn try_compress() {
915 unsafe {
916 let mut err = mem::zeroed();
917 jpeg_std_error(&mut err);
918 let mut cinfo: jpeg_compress_struct = mem::zeroed();
919 cinfo.common.err = &mut err;
920 if 0 == jpeg_c_bool_param_supported(&cinfo, JBOOLEAN_TRELLIS_QUANT) {
921 panic!("Not linked to mozjpeg?");
922 }
923 jpeg_create_compress(&mut cinfo);
924 jpeg_destroy_compress(&mut cinfo);
925 }
926}
927
928#[test]
929#[cfg(target_pointer_width = "32")]
930fn bindgen_test_layout_JQUANT_TBL() {
931 assert_eq!(::std::mem::size_of::<JQUANT_TBL>(), 132usize, concat!("Size of: ", stringify!(JQUANT_TBL)));
932 assert_eq!(::std::mem::align_of::<JQUANT_TBL>(), 4usize, concat!("Alignment of ", stringify!(JQUANT_TBL)));
933 assert_eq!(unsafe { &(*(::std::ptr::null::<JQUANT_TBL>())).quantval as *const _ as usize }, 0usize, concat!("Offset of field: ", stringify!(JQUANT_TBL), "::", stringify!(quantval)));
934 assert_eq!(unsafe { &(*(::std::ptr::null::<JQUANT_TBL>())).sent_table as *const _ as usize }, 128usize, concat!("Offset of field: ", stringify!(JQUANT_TBL), "::", stringify!(sent_table)));
935}
936
937#[test]
938#[cfg(target_pointer_width = "32")]
939fn bindgen_test_layout_JHUFF_TBL() {
940 assert_eq!(::std::mem::size_of::<JHUFF_TBL>(), 280usize, concat!("Size of: ", stringify!(JHUFF_TBL)));
941 assert_eq!(::std::mem::align_of::<JHUFF_TBL>(), 4usize, concat!("Alignment of ", stringify!(JHUFF_TBL)));
942 assert_eq!(unsafe { &(*(::std::ptr::null::<JHUFF_TBL>())).bits as *const _ as usize }, 0usize, concat!("Offset of field: ", stringify!(JHUFF_TBL), "::", stringify!(bits)));
943 assert_eq!(unsafe { &(*(::std::ptr::null::<JHUFF_TBL>())).huffval as *const _ as usize }, 17usize, concat!("Offset of field: ", stringify!(JHUFF_TBL), "::", stringify!(huffval)));
944 assert_eq!(unsafe { &(*(::std::ptr::null::<JHUFF_TBL>())).sent_table as *const _ as usize }, 276usize, concat!("Offset of field: ", stringify!(JHUFF_TBL), "::", stringify!(sent_table)));
945}
946
947#[test]
948#[cfg(target_pointer_width = "32")]
949fn bindgen_test_layout_jpeg_component_info() {
950 assert_eq!(::std::mem::align_of::<jpeg_component_info>(), 4usize, concat!("Alignment of ", stringify!(jpeg_component_info)));
951 assert_eq!(
952 unsafe { &(*(::std::ptr::null::<jpeg_component_info>())).component_id as *const _ as usize },
953 0usize,
954 concat!("Offset of field: ", stringify!(jpeg_component_info), "::", stringify!(component_id))
955 );
956 assert_eq!(
957 unsafe { &(*(::std::ptr::null::<jpeg_component_info>())).component_index as *const _ as usize },
958 4usize,
959 concat!("Offset of field: ", stringify!(jpeg_component_info), "::", stringify!(component_index))
960 );
961 assert_eq!(
962 unsafe { &(*(::std::ptr::null::<jpeg_component_info>())).h_samp_factor as *const _ as usize },
963 8usize,
964 concat!("Offset of field: ", stringify!(jpeg_component_info), "::", stringify!(h_samp_factor))
965 );
966 assert_eq!(
967 unsafe { &(*(::std::ptr::null::<jpeg_component_info>())).v_samp_factor as *const _ as usize },
968 12usize,
969 concat!("Offset of field: ", stringify!(jpeg_component_info), "::", stringify!(v_samp_factor))
970 );
971 assert_eq!(
972 unsafe { &(*(::std::ptr::null::<jpeg_component_info>())).quant_tbl_no as *const _ as usize },
973 16usize,
974 concat!("Offset of field: ", stringify!(jpeg_component_info), "::", stringify!(quant_tbl_no))
975 );
976 assert_eq!(
977 unsafe { &(*(::std::ptr::null::<jpeg_component_info>())).dc_tbl_no as *const _ as usize },
978 20usize,
979 concat!("Offset of field: ", stringify!(jpeg_component_info), "::", stringify!(dc_tbl_no))
980 );
981 assert_eq!(
982 unsafe { &(*(::std::ptr::null::<jpeg_component_info>())).ac_tbl_no as *const _ as usize },
983 24usize,
984 concat!("Offset of field: ", stringify!(jpeg_component_info), "::", stringify!(ac_tbl_no))
985 );
986 assert_eq!(
987 unsafe { &(*(::std::ptr::null::<jpeg_component_info>())).width_in_blocks as *const _ as usize },
988 28usize,
989 concat!("Offset of field: ", stringify!(jpeg_component_info), "::", stringify!(width_in_blocks))
990 );
991 assert_eq!(
992 unsafe { &(*(::std::ptr::null::<jpeg_component_info>())).height_in_blocks as *const _ as usize },
993 32usize,
994 concat!("Offset of field: ", stringify!(jpeg_component_info), "::", stringify!(height_in_blocks))
995 );
996}
997
998#[test]
999#[cfg(target_pointer_width = "32")]
1000fn bindgen_test_layout_jpeg_scan_info() {
1001 assert_eq!(::std::mem::size_of::<jpeg_scan_info>(), 36usize, concat!("Size of: ", stringify!(jpeg_scan_info)));
1002 assert_eq!(::std::mem::align_of::<jpeg_scan_info>(), 4usize, concat!("Alignment of ", stringify!(jpeg_scan_info)));
1003 assert_eq!(
1004 unsafe { &(*(::std::ptr::null::<jpeg_scan_info>())).comps_in_scan as *const _ as usize },
1005 0usize,
1006 concat!("Offset of field: ", stringify!(jpeg_scan_info), "::", stringify!(comps_in_scan))
1007 );
1008 assert_eq!(
1009 unsafe { &(*(::std::ptr::null::<jpeg_scan_info>())).component_index as *const _ as usize },
1010 4usize,
1011 concat!("Offset of field: ", stringify!(jpeg_scan_info), "::", stringify!(component_index))
1012 );
1013 assert_eq!(unsafe { &(*(::std::ptr::null::<jpeg_scan_info>())).Ss as *const _ as usize }, 20usize, concat!("Offset of field: ", stringify!(jpeg_scan_info), "::", stringify!(Ss)));
1014 assert_eq!(unsafe { &(*(::std::ptr::null::<jpeg_scan_info>())).Se as *const _ as usize }, 24usize, concat!("Offset of field: ", stringify!(jpeg_scan_info), "::", stringify!(Se)));
1015 assert_eq!(unsafe { &(*(::std::ptr::null::<jpeg_scan_info>())).Ah as *const _ as usize }, 28usize, concat!("Offset of field: ", stringify!(jpeg_scan_info), "::", stringify!(Ah)));
1016 assert_eq!(unsafe { &(*(::std::ptr::null::<jpeg_scan_info>())).Al as *const _ as usize }, 32usize, concat!("Offset of field: ", stringify!(jpeg_scan_info), "::", stringify!(Al)));
1017}
1018
1019#[test]
1020#[cfg(target_pointer_width = "32")]
1021fn bindgen_test_layout_jpeg_marker_struct() {
1022 assert_eq!(::std::mem::size_of::<jpeg_marker_struct>(), 20usize, concat!("Size of: ", stringify!(jpeg_marker_struct)));
1023 assert_eq!(::std::mem::align_of::<jpeg_marker_struct>(), 4usize, concat!("Alignment of ", stringify!(jpeg_marker_struct)));
1024 assert_eq!(unsafe { &(*(::std::ptr::null::<jpeg_marker_struct>())).next as *const _ as usize }, 0usize, concat!("Offset of field: ", stringify!(jpeg_marker_struct), "::", stringify!(next)));
1025 assert_eq!(unsafe { &(*(::std::ptr::null::<jpeg_marker_struct>())).marker as *const _ as usize }, 4usize, concat!("Offset of field: ", stringify!(jpeg_marker_struct), "::", stringify!(marker)));
1026 assert_eq!(
1027 unsafe { &(*(::std::ptr::null::<jpeg_marker_struct>())).original_length as *const _ as usize },
1028 8usize,
1029 concat!("Offset of field: ", stringify!(jpeg_marker_struct), "::", stringify!(original_length))
1030 );
1031 assert_eq!(
1032 unsafe { &(*(::std::ptr::null::<jpeg_marker_struct>())).data_length as *const _ as usize },
1033 12usize,
1034 concat!("Offset of field: ", stringify!(jpeg_marker_struct), "::", stringify!(data_length))
1035 );
1036 assert_eq!(unsafe { &(*(::std::ptr::null::<jpeg_marker_struct>())).data as *const _ as usize }, 16usize, concat!("Offset of field: ", stringify!(jpeg_marker_struct), "::", stringify!(data)));
1037}
1038
1039#[test]
1040#[cfg(target_pointer_width = "32")]
1041fn bindgen_test_layout_jpeg_common_struct() {
1042 assert_eq!(::std::mem::size_of::<jpeg_common_struct>(), 24usize, concat!("Size of: ", stringify!(jpeg_common_struct)));
1043 assert_eq!(::std::mem::align_of::<jpeg_common_struct>(), 4usize, concat!("Alignment of ", stringify!(jpeg_common_struct)));
1044 assert_eq!(unsafe { &(*(::std::ptr::null::<jpeg_common_struct>())).err as *const _ as usize }, 0usize, concat!("Offset of field: ", stringify!(jpeg_common_struct), "::", stringify!(err)));
1045 assert_eq!(unsafe { &(*(::std::ptr::null::<jpeg_common_struct>())).mem as *const _ as usize }, 4usize, concat!("Offset of field: ", stringify!(jpeg_common_struct), "::", stringify!(mem)));
1046 assert_eq!(
1047 unsafe { &(*(::std::ptr::null::<jpeg_common_struct>())).progress as *const _ as usize },
1048 8usize,
1049 concat!("Offset of field: ", stringify!(jpeg_common_struct), "::", stringify!(progress))
1050 );
1051 assert_eq!(
1052 unsafe { &(*(::std::ptr::null::<jpeg_common_struct>())).client_data as *const _ as usize },
1053 12usize,
1054 concat!("Offset of field: ", stringify!(jpeg_common_struct), "::", stringify!(client_data))
1055 );
1056 assert_eq!(
1057 unsafe { &(*(::std::ptr::null::<jpeg_common_struct>())).is_decompressor as *const _ as usize },
1058 16usize,
1059 concat!("Offset of field: ", stringify!(jpeg_common_struct), "::", stringify!(is_decompressor))
1060 );
1061 assert_eq!(
1062 unsafe { &(*(::std::ptr::null::<jpeg_common_struct>())).global_state as *const _ as usize },
1063 20usize,
1064 concat!("Offset of field: ", stringify!(jpeg_common_struct), "::", stringify!(global_state))
1065 );
1066}
1067
1068#[test]
1069#[cfg(target_pointer_width = "32")]
1070fn bindgen_test_layout_jpeg_compress_struct() {
1071 assert_eq!(::std::mem::align_of::<jpeg_compress_struct>(), 4usize, concat!("Alignment of ", stringify!(jpeg_compress_struct)));
1072 assert_eq!(
1073 unsafe { &(*(::std::ptr::null::<jpeg_compress_struct>())).common.err as *const _ as usize },
1074 0usize,
1075 concat!("Offset of field: ", stringify!(jpeg_compress_struct), "::", stringify!(err))
1076 );
1077 assert_eq!(
1078 unsafe { &(*(::std::ptr::null::<jpeg_compress_struct>())).common.mem as *const _ as usize },
1079 4usize,
1080 concat!("Offset of field: ", stringify!(jpeg_compress_struct), "::", stringify!(mem))
1081 );
1082 assert_eq!(
1083 unsafe { &(*(::std::ptr::null::<jpeg_compress_struct>())).common.progress as *const _ as usize },
1084 8usize,
1085 concat!("Offset of field: ", stringify!(jpeg_compress_struct), "::", stringify!(progress))
1086 );
1087 assert_eq!(
1088 unsafe { &(*(::std::ptr::null::<jpeg_compress_struct>())).common.client_data as *const _ as usize },
1089 12usize,
1090 concat!("Offset of field: ", stringify!(jpeg_compress_struct), "::", stringify!(client_data))
1091 );
1092 assert_eq!(
1093 unsafe { &(*(::std::ptr::null::<jpeg_compress_struct>())).common.is_decompressor as *const _ as usize },
1094 16usize,
1095 concat!("Offset of field: ", stringify!(jpeg_compress_struct), "::", stringify!(is_decompressor))
1096 );
1097 assert_eq!(
1098 unsafe { &(*(::std::ptr::null::<jpeg_compress_struct>())).common.global_state as *const _ as usize },
1099 20usize,
1100 concat!("Offset of field: ", stringify!(jpeg_compress_struct), "::", stringify!(global_state))
1101 );
1102 assert_eq!(unsafe { &(*(::std::ptr::null::<jpeg_compress_struct>())).dest as *const _ as usize }, 24usize, concat!("Offset of field: ", stringify!(jpeg_compress_struct), "::", stringify!(dest)));
1103 assert_eq!(
1104 unsafe { &(*(::std::ptr::null::<jpeg_compress_struct>())).image_width as *const _ as usize },
1105 28usize,
1106 concat!("Offset of field: ", stringify!(jpeg_compress_struct), "::", stringify!(image_width))
1107 );
1108 assert_eq!(
1109 unsafe { &(*(::std::ptr::null::<jpeg_compress_struct>())).image_height as *const _ as usize },
1110 32usize,
1111 concat!("Offset of field: ", stringify!(jpeg_compress_struct), "::", stringify!(image_height))
1112 );
1113 assert_eq!(
1114 unsafe { &(*(::std::ptr::null::<jpeg_compress_struct>())).input_components as *const _ as usize },
1115 36usize,
1116 concat!("Offset of field: ", stringify!(jpeg_compress_struct), "::", stringify!(input_components))
1117 );
1118 assert_eq!(
1119 unsafe { &(*(::std::ptr::null::<jpeg_compress_struct>())).in_color_space as *const _ as usize },
1120 40usize,
1121 concat!("Offset of field: ", stringify!(jpeg_compress_struct), "::", stringify!(in_color_space))
1122 );
1123 assert_eq!(
1124 unsafe { &(*(::std::ptr::null::<jpeg_compress_struct>())).input_gamma as *const _ as usize },
1125 44usize,
1126 concat!("Offset of field: ", stringify!(jpeg_compress_struct), "::", stringify!(input_gamma))
1127 );
1128}
1129
1130#[test]
1131#[cfg(target_pointer_width = "32")]
1132fn bindgen_test_layout_jpeg_decompress_struct() {
1133 assert_eq!(::std::mem::align_of::<jpeg_decompress_struct>(), 4usize, concat!("Alignment of ", stringify!(jpeg_decompress_struct)));
1134 assert_eq!(
1135 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).common.err as *const _ as usize },
1136 0usize,
1137 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(err))
1138 );
1139 assert_eq!(
1140 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).common.mem as *const _ as usize },
1141 4usize,
1142 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(mem))
1143 );
1144 assert_eq!(
1145 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).common.progress as *const _ as usize },
1146 8usize,
1147 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(progress))
1148 );
1149 assert_eq!(
1150 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).common.client_data as *const _ as usize },
1151 12usize,
1152 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(client_data))
1153 );
1154 assert_eq!(
1155 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).common.is_decompressor as *const _ as usize },
1156 16usize,
1157 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(is_decompressor))
1158 );
1159 assert_eq!(
1160 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).common.global_state as *const _ as usize },
1161 20usize,
1162 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(global_state))
1163 );
1164 assert_eq!(
1165 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).src as *const _ as usize },
1166 24usize,
1167 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(src))
1168 );
1169 assert_eq!(
1170 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).image_width as *const _ as usize },
1171 28usize,
1172 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(image_width))
1173 );
1174 assert_eq!(
1175 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).image_height as *const _ as usize },
1176 32usize,
1177 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(image_height))
1178 );
1179 assert_eq!(
1180 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).num_components as *const _ as usize },
1181 36usize,
1182 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(num_components))
1183 );
1184 assert_eq!(
1185 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).jpeg_color_space as *const _ as usize },
1186 40usize,
1187 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(jpeg_color_space))
1188 );
1189 assert_eq!(
1190 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).out_color_space as *const _ as usize },
1191 44usize,
1192 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(out_color_space))
1193 );
1194 assert_eq!(
1195 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).scale_num as *const _ as usize },
1196 48usize,
1197 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(scale_num))
1198 );
1199 assert_eq!(
1200 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).scale_denom as *const _ as usize },
1201 52usize,
1202 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(scale_denom))
1203 );
1204 assert_eq!(
1205 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).output_gamma as *const _ as usize },
1206 56usize,
1207 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(output_gamma))
1208 );
1209 assert_eq!(
1210 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).buffered_image as *const _ as usize },
1211 64usize,
1212 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(buffered_image))
1213 );
1214 assert_eq!(
1215 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).raw_data_out as *const _ as usize },
1216 68usize,
1217 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(raw_data_out))
1218 );
1219 assert_eq!(
1220 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).dct_method as *const _ as usize },
1221 72usize,
1222 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(dct_method))
1223 );
1224 assert_eq!(
1225 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).do_fancy_upsampling as *const _ as usize },
1226 76usize,
1227 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(do_fancy_upsampling))
1228 );
1229 assert_eq!(
1230 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).do_block_smoothing as *const _ as usize },
1231 80usize,
1232 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(do_block_smoothing))
1233 );
1234 assert_eq!(
1235 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).quantize_colors as *const _ as usize },
1236 84usize,
1237 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(quantize_colors))
1238 );
1239 assert_eq!(
1240 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).dither_mode as *const _ as usize },
1241 88usize,
1242 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(dither_mode))
1243 );
1244 assert_eq!(
1245 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).two_pass_quantize as *const _ as usize },
1246 92usize,
1247 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(two_pass_quantize))
1248 );
1249 assert_eq!(
1250 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).desired_number_of_colors as *const _ as usize },
1251 96usize,
1252 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(desired_number_of_colors))
1253 );
1254 assert_eq!(
1255 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).enable_1pass_quant as *const _ as usize },
1256 100usize,
1257 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(enable_1pass_quant))
1258 );
1259 assert_eq!(
1260 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).enable_external_quant as *const _ as usize },
1261 104usize,
1262 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(enable_external_quant))
1263 );
1264 assert_eq!(
1265 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).enable_2pass_quant as *const _ as usize },
1266 108usize,
1267 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(enable_2pass_quant))
1268 );
1269 assert_eq!(
1270 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).output_width as *const _ as usize },
1271 112usize,
1272 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(output_width))
1273 );
1274 assert_eq!(
1275 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).output_height as *const _ as usize },
1276 116usize,
1277 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(output_height))
1278 );
1279 assert_eq!(
1280 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).out_color_components as *const _ as usize },
1281 120usize,
1282 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(out_color_components))
1283 );
1284 assert_eq!(
1285 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).output_components as *const _ as usize },
1286 124usize,
1287 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(output_components))
1288 );
1289 assert_eq!(
1290 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).rec_outbuf_height as *const _ as usize },
1291 128usize,
1292 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(rec_outbuf_height))
1293 );
1294 assert_eq!(
1295 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).actual_number_of_colors as *const _ as usize },
1296 132usize,
1297 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(actual_number_of_colors))
1298 );
1299 assert_eq!(
1300 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).colormap as *const _ as usize },
1301 136usize,
1302 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(colormap))
1303 );
1304 assert_eq!(
1305 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).output_scanline as *const _ as usize },
1306 140usize,
1307 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(output_scanline))
1308 );
1309 assert_eq!(
1310 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).input_scan_number as *const _ as usize },
1311 144usize,
1312 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(input_scan_number))
1313 );
1314 assert_eq!(
1315 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).input_iMCU_row as *const _ as usize },
1316 148usize,
1317 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(input_iMCU_row))
1318 );
1319 assert_eq!(
1320 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).output_scan_number as *const _ as usize },
1321 152usize,
1322 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(output_scan_number))
1323 );
1324 assert_eq!(
1325 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).output_iMCU_row as *const _ as usize },
1326 156usize,
1327 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(output_iMCU_row))
1328 );
1329 assert_eq!(
1330 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).coef_bits as *const _ as usize },
1331 160usize,
1332 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(coef_bits))
1333 );
1334 assert_eq!(
1335 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).quant_tbl_ptrs as *const _ as usize },
1336 164usize,
1337 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(quant_tbl_ptrs))
1338 );
1339 assert_eq!(
1340 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).dc_huff_tbl_ptrs as *const _ as usize },
1341 180usize,
1342 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(dc_huff_tbl_ptrs))
1343 );
1344 assert_eq!(
1345 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).ac_huff_tbl_ptrs as *const _ as usize },
1346 196usize,
1347 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(ac_huff_tbl_ptrs))
1348 );
1349 assert_eq!(
1350 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).data_precision as *const _ as usize },
1351 212usize,
1352 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(data_precision))
1353 );
1354 assert_eq!(
1355 unsafe { &(*(::std::ptr::null::<jpeg_decompress_struct>())).comp_info as *const _ as usize },
1356 216usize,
1357 concat!("Offset of field: ", stringify!(jpeg_decompress_struct), "::", stringify!(comp_info))
1358 );
1359}
1360
1361#[test]
1362#[cfg(target_pointer_width = "32")]
1363fn bindgen_test_layout_jpeg_error_mgr() {
1364 assert_eq!(::std::mem::size_of::<jpeg_error_mgr>(), 132usize, concat!("Size of: ", stringify!(jpeg_error_mgr)));
1365 assert_eq!(::std::mem::align_of::<jpeg_error_mgr>(), 4usize, concat!("Alignment of ", stringify!(jpeg_error_mgr)));
1366 assert_eq!(unsafe { &(*(::std::ptr::null::<jpeg_error_mgr>())).error_exit as *const _ as usize }, 0usize, concat!("Offset of field: ", stringify!(jpeg_error_mgr), "::", stringify!(error_exit)));
1367 assert_eq!(
1368 unsafe { &(*(::std::ptr::null::<jpeg_error_mgr>())).emit_message as *const _ as usize },
1369 4usize,
1370 concat!("Offset of field: ", stringify!(jpeg_error_mgr), "::", stringify!(emit_message))
1371 );
1372 assert_eq!(
1373 unsafe { &(*(::std::ptr::null::<jpeg_error_mgr>())).output_message as *const _ as usize },
1374 8usize,
1375 concat!("Offset of field: ", stringify!(jpeg_error_mgr), "::", stringify!(output_message))
1376 );
1377 assert_eq!(
1378 unsafe { &(*(::std::ptr::null::<jpeg_error_mgr>())).format_message as *const _ as usize },
1379 12usize,
1380 concat!("Offset of field: ", stringify!(jpeg_error_mgr), "::", stringify!(format_message))
1381 );
1382 assert_eq!(
1383 unsafe { &(*(::std::ptr::null::<jpeg_error_mgr>())).reset_error_mgr as *const _ as usize },
1384 16usize,
1385 concat!("Offset of field: ", stringify!(jpeg_error_mgr), "::", stringify!(reset_error_mgr))
1386 );
1387 assert_eq!(unsafe { &(*(::std::ptr::null::<jpeg_error_mgr>())).msg_code as *const _ as usize }, 20usize, concat!("Offset of field: ", stringify!(jpeg_error_mgr), "::", stringify!(msg_code)));
1388 assert_eq!(unsafe { &(*(::std::ptr::null::<jpeg_error_mgr>())).msg_parm as *const _ as usize }, 24usize, concat!("Offset of field: ", stringify!(jpeg_error_mgr), "::", stringify!(msg_parm)));
1389 assert_eq!(
1390 unsafe { &(*(::std::ptr::null::<jpeg_error_mgr>())).trace_level as *const _ as usize },
1391 104usize,
1392 concat!("Offset of field: ", stringify!(jpeg_error_mgr), "::", stringify!(trace_level))
1393 );
1394 assert_eq!(
1395 unsafe { &(*(::std::ptr::null::<jpeg_error_mgr>())).num_warnings as *const _ as usize },
1396 108usize,
1397 concat!("Offset of field: ", stringify!(jpeg_error_mgr), "::", stringify!(num_warnings))
1398 );
1399 assert_eq!(
1400 unsafe { &(*(::std::ptr::null::<jpeg_error_mgr>())).jpeg_message_table as *const _ as usize },
1401 112usize,
1402 concat!("Offset of field: ", stringify!(jpeg_error_mgr), "::", stringify!(jpeg_message_table))
1403 );
1404 assert_eq!(
1405 unsafe { &(*(::std::ptr::null::<jpeg_error_mgr>())).last_jpeg_message as *const _ as usize },
1406 116usize,
1407 concat!("Offset of field: ", stringify!(jpeg_error_mgr), "::", stringify!(last_jpeg_message))
1408 );
1409 assert_eq!(
1410 unsafe { &(*(::std::ptr::null::<jpeg_error_mgr>())).addon_message_table as *const _ as usize },
1411 120usize,
1412 concat!("Offset of field: ", stringify!(jpeg_error_mgr), "::", stringify!(addon_message_table))
1413 );
1414 assert_eq!(
1415 unsafe { &(*(::std::ptr::null::<jpeg_error_mgr>())).first_addon_message as *const _ as usize },
1416 124usize,
1417 concat!("Offset of field: ", stringify!(jpeg_error_mgr), "::", stringify!(first_addon_message))
1418 );
1419 assert_eq!(
1420 unsafe { &(*(::std::ptr::null::<jpeg_error_mgr>())).last_addon_message as *const _ as usize },
1421 128usize,
1422 concat!("Offset of field: ", stringify!(jpeg_error_mgr), "::", stringify!(last_addon_message))
1423 );
1424}
1425
1426#[test]
1427#[cfg(target_pointer_width = "32")]
1428fn bindgen_test_layout_jpeg_progress_mgr() {
1429 assert_eq!(::std::mem::size_of::<jpeg_progress_mgr>(), 20usize, concat!("Size of: ", stringify!(jpeg_progress_mgr)));
1430 assert_eq!(::std::mem::align_of::<jpeg_progress_mgr>(), 4usize, concat!("Alignment of ", stringify!(jpeg_progress_mgr)));
1431 assert_eq!(
1432 unsafe { &(*(::std::ptr::null::<jpeg_progress_mgr>())).progress_monitor as *const _ as usize },
1433 0usize,
1434 concat!("Offset of field: ", stringify!(jpeg_progress_mgr), "::", stringify!(progress_monitor))
1435 );
1436 assert_eq!(
1437 unsafe { &(*(::std::ptr::null::<jpeg_progress_mgr>())).pass_counter as *const _ as usize },
1438 4usize,
1439 concat!("Offset of field: ", stringify!(jpeg_progress_mgr), "::", stringify!(pass_counter))
1440 );
1441 assert_eq!(
1442 unsafe { &(*(::std::ptr::null::<jpeg_progress_mgr>())).pass_limit as *const _ as usize },
1443 8usize,
1444 concat!("Offset of field: ", stringify!(jpeg_progress_mgr), "::", stringify!(pass_limit))
1445 );
1446 assert_eq!(
1447 unsafe { &(*(::std::ptr::null::<jpeg_progress_mgr>())).completed_passes as *const _ as usize },
1448 12usize,
1449 concat!("Offset of field: ", stringify!(jpeg_progress_mgr), "::", stringify!(completed_passes))
1450 );
1451 assert_eq!(
1452 unsafe { &(*(::std::ptr::null::<jpeg_progress_mgr>())).total_passes as *const _ as usize },
1453 16usize,
1454 concat!("Offset of field: ", stringify!(jpeg_progress_mgr), "::", stringify!(total_passes))
1455 );
1456}
1457
1458#[test]
1459#[cfg(target_pointer_width = "32")]
1460fn bindgen_test_layout_jpeg_destination_mgr() {
1461 assert_eq!(::std::mem::size_of::<jpeg_destination_mgr>(), 20usize, concat!("Size of: ", stringify!(jpeg_destination_mgr)));
1462 assert_eq!(::std::mem::align_of::<jpeg_destination_mgr>(), 4usize, concat!("Alignment of ", stringify!(jpeg_destination_mgr)));
1463 assert_eq!(
1464 unsafe { &(*(::std::ptr::null::<jpeg_destination_mgr>())).next_output_byte as *const _ as usize },
1465 0usize,
1466 concat!("Offset of field: ", stringify!(jpeg_destination_mgr), "::", stringify!(next_output_byte))
1467 );
1468 assert_eq!(
1469 unsafe { &(*(::std::ptr::null::<jpeg_destination_mgr>())).free_in_buffer as *const _ as usize },
1470 4usize,
1471 concat!("Offset of field: ", stringify!(jpeg_destination_mgr), "::", stringify!(free_in_buffer))
1472 );
1473 assert_eq!(
1474 unsafe { &(*(::std::ptr::null::<jpeg_destination_mgr>())).init_destination as *const _ as usize },
1475 8usize,
1476 concat!("Offset of field: ", stringify!(jpeg_destination_mgr), "::", stringify!(init_destination))
1477 );
1478 assert_eq!(
1479 unsafe { &(*(::std::ptr::null::<jpeg_destination_mgr>())).empty_output_buffer as *const _ as usize },
1480 12usize,
1481 concat!("Offset of field: ", stringify!(jpeg_destination_mgr), "::", stringify!(empty_output_buffer))
1482 );
1483 assert_eq!(
1484 unsafe { &(*(::std::ptr::null::<jpeg_destination_mgr>())).term_destination as *const _ as usize },
1485 16usize,
1486 concat!("Offset of field: ", stringify!(jpeg_destination_mgr), "::", stringify!(term_destination))
1487 );
1488}
1489
1490#[test]
1491#[cfg(target_pointer_width = "32")]
1492fn bindgen_test_layout_jpeg_source_mgr() {
1493 assert_eq!(::std::mem::size_of::<jpeg_source_mgr>(), 28usize, concat!("Size of: ", stringify!(jpeg_source_mgr)));
1494 assert_eq!(::std::mem::align_of::<jpeg_source_mgr>(), 4usize, concat!("Alignment of ", stringify!(jpeg_source_mgr)));
1495 assert_eq!(
1496 unsafe { &(*(::std::ptr::null::<jpeg_source_mgr>())).next_input_byte as *const _ as usize },
1497 0usize,
1498 concat!("Offset of field: ", stringify!(jpeg_source_mgr), "::", stringify!(next_input_byte))
1499 );
1500 assert_eq!(
1501 unsafe { &(*(::std::ptr::null::<jpeg_source_mgr>())).bytes_in_buffer as *const _ as usize },
1502 4usize,
1503 concat!("Offset of field: ", stringify!(jpeg_source_mgr), "::", stringify!(bytes_in_buffer))
1504 );
1505 assert_eq!(
1506 unsafe { &(*(::std::ptr::null::<jpeg_source_mgr>())).init_source as *const _ as usize },
1507 8usize,
1508 concat!("Offset of field: ", stringify!(jpeg_source_mgr), "::", stringify!(init_source))
1509 );
1510 assert_eq!(
1511 unsafe { &(*(::std::ptr::null::<jpeg_source_mgr>())).fill_input_buffer as *const _ as usize },
1512 12usize,
1513 concat!("Offset of field: ", stringify!(jpeg_source_mgr), "::", stringify!(fill_input_buffer))
1514 );
1515 assert_eq!(
1516 unsafe { &(*(::std::ptr::null::<jpeg_source_mgr>())).skip_input_data as *const _ as usize },
1517 16usize,
1518 concat!("Offset of field: ", stringify!(jpeg_source_mgr), "::", stringify!(skip_input_data))
1519 );
1520 assert_eq!(
1521 unsafe { &(*(::std::ptr::null::<jpeg_source_mgr>())).resync_to_restart as *const _ as usize },
1522 20usize,
1523 concat!("Offset of field: ", stringify!(jpeg_source_mgr), "::", stringify!(resync_to_restart))
1524 );
1525 assert_eq!(
1526 unsafe { &(*(::std::ptr::null::<jpeg_source_mgr>())).term_source as *const _ as usize },
1527 24usize,
1528 concat!("Offset of field: ", stringify!(jpeg_source_mgr), "::", stringify!(term_source))
1529 );
1530}
1531
1532#[test]
1533#[cfg(target_pointer_width = "32")]
1534fn bindgen_test_layout_jpeg_memory_mgr() {
1535 assert_eq!(::std::mem::size_of::<jpeg_memory_mgr>(), 52usize, concat!("Size of: ", stringify!(jpeg_memory_mgr)));
1536 assert_eq!(::std::mem::align_of::<jpeg_memory_mgr>(), 4usize, concat!("Alignment of ", stringify!(jpeg_memory_mgr)));
1537 assert_eq!(
1538 unsafe { &(*(::std::ptr::null::<jpeg_memory_mgr>())).alloc_small as *const _ as usize },
1539 0usize,
1540 concat!("Offset of field: ", stringify!(jpeg_memory_mgr), "::", stringify!(alloc_small))
1541 );
1542 assert_eq!(
1543 unsafe { &(*(::std::ptr::null::<jpeg_memory_mgr>())).alloc_large as *const _ as usize },
1544 4usize,
1545 concat!("Offset of field: ", stringify!(jpeg_memory_mgr), "::", stringify!(alloc_large))
1546 );
1547 assert_eq!(
1548 unsafe { &(*(::std::ptr::null::<jpeg_memory_mgr>())).alloc_sarray as *const _ as usize },
1549 8usize,
1550 concat!("Offset of field: ", stringify!(jpeg_memory_mgr), "::", stringify!(alloc_sarray))
1551 );
1552 assert_eq!(
1553 unsafe { &(*(::std::ptr::null::<jpeg_memory_mgr>())).alloc_barray as *const _ as usize },
1554 12usize,
1555 concat!("Offset of field: ", stringify!(jpeg_memory_mgr), "::", stringify!(alloc_barray))
1556 );
1557 assert_eq!(
1558 unsafe { &(*(::std::ptr::null::<jpeg_memory_mgr>())).request_virt_sarray as *const _ as usize },
1559 16usize,
1560 concat!("Offset of field: ", stringify!(jpeg_memory_mgr), "::", stringify!(request_virt_sarray))
1561 );
1562 assert_eq!(
1563 unsafe { &(*(::std::ptr::null::<jpeg_memory_mgr>())).request_virt_barray as *const _ as usize },
1564 20usize,
1565 concat!("Offset of field: ", stringify!(jpeg_memory_mgr), "::", stringify!(request_virt_barray))
1566 );
1567 assert_eq!(
1568 unsafe { &(*(::std::ptr::null::<jpeg_memory_mgr>())).realize_virt_arrays as *const _ as usize },
1569 24usize,
1570 concat!("Offset of field: ", stringify!(jpeg_memory_mgr), "::", stringify!(realize_virt_arrays))
1571 );
1572 assert_eq!(
1573 unsafe { &(*(::std::ptr::null::<jpeg_memory_mgr>())).access_virt_sarray as *const _ as usize },
1574 28usize,
1575 concat!("Offset of field: ", stringify!(jpeg_memory_mgr), "::", stringify!(access_virt_sarray))
1576 );
1577 assert_eq!(
1578 unsafe { &(*(::std::ptr::null::<jpeg_memory_mgr>())).access_virt_barray as *const _ as usize },
1579 32usize,
1580 concat!("Offset of field: ", stringify!(jpeg_memory_mgr), "::", stringify!(access_virt_barray))
1581 );
1582 assert_eq!(unsafe { &(*(::std::ptr::null::<jpeg_memory_mgr>())).free_pool as *const _ as usize }, 36usize, concat!("Offset of field: ", stringify!(jpeg_memory_mgr), "::", stringify!(free_pool)));
1583 assert_eq!(
1584 unsafe { &(*(::std::ptr::null::<jpeg_memory_mgr>())).self_destruct as *const _ as usize },
1585 40usize,
1586 concat!("Offset of field: ", stringify!(jpeg_memory_mgr), "::", stringify!(self_destruct))
1587 );
1588 assert_eq!(
1589 unsafe { &(*(::std::ptr::null::<jpeg_memory_mgr>())).max_memory_to_use as *const _ as usize },
1590 44usize,
1591 concat!("Offset of field: ", stringify!(jpeg_memory_mgr), "::", stringify!(max_memory_to_use))
1592 );
1593 assert_eq!(
1594 unsafe { &(*(::std::ptr::null::<jpeg_memory_mgr>())).max_alloc_chunk as *const _ as usize },
1595 48usize,
1596 concat!("Offset of field: ", stringify!(jpeg_memory_mgr), "::", stringify!(max_alloc_chunk))
1597 );
1598}
1599
1600#[test]
1601fn all_links() {
1602 let _x = [
1603 jpeg_std_error as *const c_void,
1604 jpeg_CreateCompress as *const c_void,
1605 jpeg_CreateDecompress as *const c_void,
1606 jpeg_destroy_compress as *const c_void,
1607 jpeg_destroy_decompress as *const c_void,
1608 jpeg_stdio_dest as *const c_void,
1609 jpeg_stdio_src as *const c_void,
1610 jpeg_mem_dest as *const c_void,
1611 jpeg_mem_src as *const c_void,
1612 jpeg_set_defaults as *const c_void,
1613 jpeg_set_colorspace as *const c_void,
1614 jpeg_default_colorspace as *const c_void,
1615 jpeg_set_quality as *const c_void,
1616 jpeg_set_linear_quality as *const c_void,
1617 jpeg_add_quant_table as *const c_void,
1618 jpeg_quality_scaling as *const c_void,
1619 jpeg_float_quality_scaling as *const c_void,
1620 jpeg_simple_progression as *const c_void,
1621 jpeg_suppress_tables as *const c_void,
1622 jpeg_alloc_quant_table as *const c_void,
1623 jpeg_alloc_huff_table as *const c_void,
1624 jpeg_start_compress as *const c_void,
1625 jpeg_write_scanlines as *const c_void,
1626 jpeg_finish_compress as *const c_void,
1627 jpeg_write_raw_data as *const c_void,
1628 jpeg_write_marker as *const c_void,
1629 jpeg_write_m_header as *const c_void,
1630 jpeg_write_m_byte as *const c_void,
1631 jpeg_write_tables as *const c_void,
1632 jpeg_read_header as *const c_void,
1633 jpeg_start_decompress as *const c_void,
1634 jpeg_read_scanlines as *const c_void,
1635 jpeg_finish_decompress as *const c_void,
1636 jpeg_read_raw_data as *const c_void,
1637 #[cfg(feature = "icc_io")] {
1638 jpeg_read_icc_profile as *const c_void
1639 },
1640 #[cfg(feature = "icc_io")] {
1641 jpeg_write_icc_profile as *const c_void
1642 },
1643 jpeg_skip_scanlines as *const c_void,
1644 jpeg_crop_scanline as *const c_void,
1645 jpeg_has_multiple_scans as *const c_void,
1646 jpeg_start_output as *const c_void,
1647 jpeg_finish_output as *const c_void,
1648 jpeg_input_complete as *const c_void,
1649 jpeg_consume_input as *const c_void,
1650 #[cfg(feature = "jpeg70_abi")] {
1651 jpeg_calc_jpeg_dimensions as *const c_void
1652 },
1653 jpeg_calc_output_dimensions as *const c_void,
1654 jpeg_save_markers as *const c_void,
1655 jpeg_set_marker_processor as *const c_void,
1656 jpeg_read_coefficients as *const c_void,
1657 jpeg_write_coefficients as *const c_void,
1658 jpeg_copy_critical_parameters as *const c_void,
1659 jpeg_abort_compress as *const c_void,
1660 jpeg_abort_decompress as *const c_void,
1661 jpeg_resync_to_restart as *const c_void,
1662 jpeg_c_bool_param_supported as *const c_void,
1663 jpeg_c_set_bool_param as *const c_void,
1664 jpeg_c_get_bool_param as *const c_void,
1665 jpeg_c_float_param_supported as *const c_void,
1666 jpeg_abort as *const c_void,
1667 jpeg_destroy as *const c_void,
1668 jpeg_c_set_float_param as *const c_void,
1669 jpeg_c_get_float_param as *const c_void,
1670 jpeg_c_int_param_supported as *const c_void,
1671 jpeg_c_set_int_param as *const c_void,
1672 jpeg_c_get_int_param as *const c_void,
1673 jpeg_set_idct_method_selector as *const c_void,
1674 ];
1675}