Struct libavif_sys::avifDecoder [−][src]
Fields
codecChoice: avifCodecChoiceDefaults to AVIF_CODEC_CHOICE_AUTO: Preference determined by order in availableCodecs table (avif.c)
maxThreads: c_intmultithreading is disabled if <2)
requestedSource: avifDecoderSourceimage: *mut avifImageAll decoded image data; owned by the decoder. All information in this image is incrementally added and updated as avifDecoder*() functions are called. After a successful call to avifDecoderParse(), all values in decoder->image (other than the planes/rowBytes themselves) will be pre-populated with all information found in the outer AVIF container, prior to any AV1 decoding. If the contents of the inner AV1 payload disagree with the outer container, these values may change after calls to avifDecoderRead*(),avifDecoderNextImage(), or avifDecoderNthImage().
The YUV and A contents of this image are likely owned by the decoder, so be sure to copy any data inside of this image before advancing to the next image or reusing the decoder. It is legal to call avifImageYUVToRGB() on this in between calls to avifDecoderNextImage(), but use avifImageCopy() if you want to make a complete, permanent copy of this image’s YUV content or metadata.
imageIndex: c_intCounts and timing for the current image in an image sequence. Uninteresting for single image files. 9-based
imageCount: c_intAlways 1 for non-sequences
imageTiming: avifImageTimingtimescale: u64timescale of the media (Hz)
duration: f64in seconds (durationInTimescales / timescale)
durationInTimescales: u64duration in “timescales”
alphaPresent: avifBoolThis is true when avifDecoderParse() detects an alpha plane. Use this to find out if alpha is present after a successful call to avifDecoderParse(), but prior to any call to avifDecoderNextImage() or avifDecoderNthImage(), as decoder->image->alphaPlane won’t exist yet.
ignoreExif: avifBoolEnable any of these to avoid reading and surfacing specific data to the decoded avifImage. These can be useful if your avifIO implementation heavily uses AVIF_RESULT_WAITING_ON_IO for streaming data, as some of these payloads are (unfortunately) packed at the end of the file, which will cause avifDecoderParse() to return AVIF_RESULT_WAITING_ON_IO until it finds them. If you don’t actually leverage this data, it is best to ignore it here.
ignoreXMP: avifBoolioStats: avifIOStatsstats from the most recent read, possibly 0s if reading an image sequence
io: *mut avifIOUse one of the avifDecoderSetIO*() functions to set this
data: *mut avifDecoderDataInternals used by the decoder
Auto Trait Implementations
impl RefUnwindSafe for avifDecoder
impl !Send for avifDecoder
impl !Sync for avifDecoder
impl Unpin for avifDecoder
impl UnwindSafe for avifDecoder
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,