summaryrefslogtreecommitdiff
path: root/vendor/jpeg-decoder/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/jpeg-decoder/src/lib.rs')
-rw-r--r--vendor/jpeg-decoder/src/lib.rs66
1 files changed, 66 insertions, 0 deletions
diff --git a/vendor/jpeg-decoder/src/lib.rs b/vendor/jpeg-decoder/src/lib.rs
new file mode 100644
index 0000000..ff1ceb1
--- /dev/null
+++ b/vendor/jpeg-decoder/src/lib.rs
@@ -0,0 +1,66 @@
+//! This crate contains a JPEG decoder.
+//!
+//! # Examples
+//!
+//! ```
+//! use jpeg_decoder::Decoder;
+//! use std::fs::File;
+//! use std::io::BufReader;
+//!
+//! let file = File::open("tests/reftest/images/extraneous-data.jpg").expect("failed to open file");
+//! let mut decoder = Decoder::new(BufReader::new(file));
+//! let pixels = decoder.decode().expect("failed to decode image");
+//! let metadata = decoder.info().unwrap();
+//! ```
+//!
+//! Get metadata from a file without decoding it:
+//!
+//! ```
+//! use jpeg_decoder::Decoder;
+//! use std::fs::File;
+//! use std::io::BufReader;
+//!
+//! let file = File::open("tests/reftest/images/extraneous-data.jpg").expect("failed to open file");
+//! let mut decoder = Decoder::new(BufReader::new(file));
+//! decoder.read_info().expect("failed to read metadata");
+//! let metadata = decoder.info().unwrap();
+//! ```
+
+#![deny(missing_docs)]
+#![deny(unsafe_code)]
+#![cfg_attr(feature = "platform_independent", forbid(unsafe_code))]
+
+extern crate alloc;
+extern crate core;
+
+#[cfg(feature = "rayon")]
+extern crate rayon;
+
+pub use decoder::{ColorTransform, Decoder, ImageInfo, PixelFormat};
+pub use error::{Error, UnsupportedFeature};
+pub use parser::CodingProcess;
+
+use std::io;
+
+#[cfg(not(feature = "platform_independent"))]
+mod arch;
+mod decoder;
+mod error;
+mod huffman;
+mod idct;
+mod marker;
+mod parser;
+mod upsampler;
+mod worker;
+
+fn read_u8<R: io::Read>(reader: &mut R) -> io::Result<u8> {
+ let mut buf = [0];
+ reader.read_exact(&mut buf)?;
+ Ok(buf[0])
+}
+
+fn read_u16_from_be<R: io::Read>(reader: &mut R) -> io::Result<u16> {
+ let mut buf = [0, 0];
+ reader.read_exact(&mut buf)?;
+ Ok(u16::from_be_bytes(buf))
+}