1#![deny(unsafe_op_in_unsafe_fn)]
9#![warn(unreachable_pub)]
10#[cfg(not(any(target_arch = "x86_64", target_arch = "aarch64")))]
13compile_error!("j2k-jpeg currently supports only x86_64 and aarch64 targets");
14
15extern crate alloc;
16
17mod info;
18pub use info::{
19 ColorSpace, ColorTransform, DecodeOptions, Info, McuGeometry, Rect, RestartIndex,
20 RestartSegment, SamplingFactors, SamplingFactorsError, SofKind,
21};
22pub use j2k_core::{
23 BatchDecodeError, BatchInfrastructureError, CacheStats, CodecContext, CompressedPayloadKind,
24 CompressedTransferSyntax, DecodeRowsError, Downscale, ImageCodec, ImageDecode, ImageDecodeRows,
25 PassthroughCandidate, PassthroughDecision, PassthroughRejectReason, PassthroughRequirements,
26 PixelFormat, PixelLayout, RowSink, Sample, SampleType, TileBatchDecode, TileDecompress,
27};
28
29mod context;
30pub use context::DecoderContext;
31
32mod batch_session;
33pub use batch_session::JpegBatchSession;
34
35mod capabilities;
36pub use capabilities::{
37 JpegBackendEligibility, JpegCapabilityReport, JpegCapabilityRequest, JpegDecodeOp,
38 JpegDecodeRequest, JpegResolvedDecode, JpegResolvedDecodePath,
39};
40
41mod output_buffer;
42pub use output_buffer::JpegOutputBuffer;
43
44mod segment;
45pub use segment::{
46 find_scan_ranges, is_sof_marker, iter_segments, parse_dri, parse_sof_info,
47 prepare_tiff_jpeg_tile, rewrite_sof_dimensions, DuplicateTablePolicy, JpegScanRanges,
48 JpegSegment, JpegSegmentIter, JpegSofInfo, JpegTilePrepareOptions, PreparedJpeg,
49};
50
51#[doc(hidden)]
52pub mod adapter;
53pub use adapter::DeviceBatchSummary;
54
55mod error;
56pub use error::{
57 BuilderConflictReason, HuffmanFailure, JpegError, MarkerKind, ProgressiveScanStateError,
58 ProgressiveScanTerminationError, TableKind, UnsupportedReason, Warning,
59};
60
61mod allocation;
62
63pub(crate) mod parse;
64
65pub(crate) mod entropy;
66
67pub(crate) mod idct;
68
69pub(crate) mod lossless;
70
71pub(crate) mod internal;
72
73pub(crate) mod color;
74
75pub(crate) mod backend;
76
77pub(crate) mod output;
78
79pub(crate) mod profile;
80
81pub(crate) mod encoded_output;
82
83mod baseline_encode_contract;
84mod baseline_entropy;
85mod dct_contract;
86
87mod encoder;
89pub use encoder::{
90 encode_jpeg_baseline, EncodedJpeg, JpegBackend, JpegEncodeError, JpegEncodeOptions,
91 JpegSamples, JpegSubsampling,
92};
93
94#[doc(hidden)]
95pub mod transcode;
96
97mod decoder;
98pub use decoder::{
99 decode_prepared_jpeg_tiles_rgb8, decode_tile_into, decode_tile_into_in_context,
100 decode_tile_into_in_context_with_options, decode_tile_region_into_in_context,
101 decode_tile_region_into_in_context_with_options, decode_tile_region_scaled_into_in_context,
102 decode_tile_region_scaled_into_in_context_with_options, decode_tile_scaled_into_in_context,
103 decode_tile_scaled_into_in_context_with_options, decode_tiles_into,
104 decode_tiles_into_with_options, decode_tiles_region_scaled_into,
105 decode_tiles_region_scaled_into_with_options, decode_tiles_scaled_into,
106 decode_tiles_scaled_into_with_options, ComponentRowWriter, DecodeOutcome, DecodeRequest,
107 DecodedTile, Decoder, JpegView, PreparedJpegTileJob, PreparedTileBatchError, TileBatchError,
108 TileBatchOptions, TileDecodeJob, TileDecodeOutput, TileRegionScaledDecodeJob,
109 TileScaledDecodeJob,
110};
111
112pub use internal::scratch::ScratchPool;
113
114#[derive(Debug, Clone, Copy, Default, PartialEq, Eq)]
115pub struct JpegCodec;
117
118#[cfg(feature = "bench-internals")]
119#[doc(hidden)]
120pub mod bench_support;