Struct gif::streaming_decoder::StreamingDecoder

source ·
pub struct StreamingDecoder {
Show 14 fields state: State, lzw_reader: LzwReader, skip_frame_decoding: bool, check_frame_consistency: bool, allow_unknown_blocks: bool, memory_limit: MemoryLimit, version: Version, width: u16, height: u16, global_color_table: Vec<u8>, background_color: [u8; 4], ext: ExtensionData, current: Option<Frame<'static>>, header_end_reached: bool,
}
Expand description

GIF decoder which emits low-level events for items in the GIF file

To just get GIF frames, use crate::Decoder instead.

Fields§

§state: State§lzw_reader: LzwReader§skip_frame_decoding: bool§check_frame_consistency: bool§allow_unknown_blocks: bool§memory_limit: MemoryLimit§version: Version§width: u16§height: u16§global_color_table: Vec<u8>§background_color: [u8; 4]§ext: ExtensionData

ext buffer

§current: Option<Frame<'static>>

Frame data

§header_end_reached: bool

Needs to emit HeaderEnd once

Implementations§

source§

impl StreamingDecoder

source

pub fn new() -> StreamingDecoder

Creates a new streaming decoder

source

pub(crate) fn with_options(options: &DecodeOptions) -> Self

source

pub fn update<'a>( &'a mut self, buf: &[u8], write_into: &mut OutputBuffer<'_>, ) -> Result<(usize, Decoded), DecodingError>

Updates the internal state of the decoder.

Returns the number of bytes consumed from the input buffer and the last decoding result.

source

pub fn last_ext(&self) -> (AnyExtension, &[u8], bool)

Returns the data of the last extension that has been decoded.

source

pub fn current_frame_mut(&mut self) -> &mut Frame<'static>

Current frame info as a mutable ref.

source

pub fn current_frame(&self) -> &Frame<'static>

Current frame info as a ref.

source

fn try_current_frame(&mut self) -> Result<&mut Frame<'static>, DecodingError>

Current frame info as a mutable ref.

source

pub fn width(&self) -> u16

Width of the image

source

pub fn height(&self) -> u16

Height of the image

source

pub fn version(&self) -> Version

The version number of the GIF standard used in this image.

We suppose a minimum of V87a compatibility. This value will be reported until we have read the version information in the magic header bytes.

source

fn next_state( &mut self, buf: &[u8], write_into: &mut OutputBuffer<'_>, ) -> Result<(usize, Decoded), DecodingError>

source

fn read_second_byte( &mut self, next: U16Value, value: u8, b: u8, ) -> Result<State, DecodingError>

source

fn read_control_extension(&mut self, b: u8) -> Result<State, DecodingError>

source

fn add_frame(&mut self)

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.