Skip to main content

DecoderLimits

Struct DecoderLimits 

Source
pub struct DecoderLimits { /* private fields */ }
Expand description

What opening and running one decoder may spend.

Composes FrameLimits — what the frames it produces may cost — with the two things a decoder spends before it has produced anything: copying the caller’s codec parameters into an AVCodecContext, and copying the caller’s compressed bytes into an AVPacket.

Taken at open by every decoder session in this crate, for the reason FrameLimits gives: half of it is written into an AVCodecContext whose ceilings cannot move after avcodec_open2.

Implementations§

Source§

impl DecoderLimits

Source

pub const fn new() -> Self

Source

pub const fn frame(&self) -> FrameLimits

What one decoded frame may cost.

Source

pub const fn max_codec_parameter_bytes(&self) -> usize

Most heap bytes the codec parameters this decoder is opened from may hold.

Enforced at the choke point every road into libavcodec passes through, so a decoder cannot be opened over parameters nobody measured.

Source

pub const fn max_packet_bytes(&self) -> usize

Most compressed bytes one packet handed to a stream decoder may carry.

Source

pub const fn packet_limits(&self) -> PacketLimits

Self::max_packet_bytes as the PacketLimits the boundary conversions take, so the send leg and the receive leg are handed the same seat rather than two numbers that could drift.

Source

pub const fn max_image_input_bytes(&self) -> usize

Most compressed bytes one image decode may be handed. See DEFAULT_MAX_IMAGE_INPUT_BYTES for why this is its own seat.

Source

pub const fn with_frame(self, value: FrameLimits) -> Self

Sets the frame ceilings (consuming builder).

Source

pub const fn with_max_codec_parameter_bytes(self, value: usize) -> Self

Sets the codec-parameter ceiling (consuming builder).

Source

pub const fn with_max_packet_bytes(self, value: usize) -> Self

Sets the per-packet ceiling (consuming builder).

Source

pub const fn with_max_image_input_bytes(self, value: usize) -> Self

Sets the image-input ceiling (consuming builder).

Source

pub const fn set_frame(&mut self, value: FrameLimits) -> &mut Self

Sets the frame ceilings in place.

Source

pub const fn set_max_codec_parameter_bytes(&mut self, value: usize) -> &mut Self

Sets the codec-parameter ceiling in place.

Source

pub const fn set_max_packet_bytes(&mut self, value: usize) -> &mut Self

Sets the per-packet ceiling in place.

Source

pub const fn set_max_image_input_bytes(&mut self, value: usize) -> &mut Self

Sets the image-input ceiling in place.

Trait Implementations§

Source§

impl Clone for DecoderLimits

Source§

fn clone(&self) -> DecoderLimits

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for DecoderLimits

Source§

impl Debug for DecoderLimits

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for DecoderLimits

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Eq for DecoderLimits

Source§

impl Hash for DecoderLimits

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for DecoderLimits

Source§

fn eq(&self, other: &DecoderLimits) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for DecoderLimits

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

type Error = !

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>,

Source§

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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more