Struct ffmpeg::avcodec::AvFrameBuilder
source · pub struct AvFrameBuilder(AvFrame);
Expand description
A builder for AVFrame that allows specifying buffers and image metadata.
Tuple Fields§
§0: AvFrame
Implementations§
source§impl AvFrameBuilder
impl AvFrameBuilder
sourcepub fn set_dimensions(
&mut self,
dimensions: Dimensions
) -> Result<(), AvFrameError>
pub fn set_dimensions( &mut self, dimensions: Dimensions ) -> Result<(), AvFrameError>
Set the frame’s width and height.
The dimensions must not be greater than i32::MAX
.
sourcepub fn set_format(&mut self, format: AvPixelFormat) -> Result<(), AvFrameError>
pub fn set_format(&mut self, format: AvPixelFormat) -> Result<(), AvFrameError>
Set the frame’s format.
sourcepub fn build_owned<BI: IntoIterator<Item = AvBuffer>, PI: IntoIterator<Item = PlaneDescriptor>>(
self,
buffers: BI,
planes: PI
) -> Result<AvFrame, AvFrameError>
pub fn build_owned<BI: IntoIterator<Item = AvBuffer>, PI: IntoIterator<Item = PlaneDescriptor>>( self, buffers: BI, planes: PI ) -> Result<AvFrame, AvFrameError>
Build an AvFrame from iterators of AvBuffer
s and subslice of buffers describing the
planes.
The frame will own the buffers
.
This function checks that:
- Each plane fits inside the bounds of the associated buffer.
- Different planes do not overlap each other’s buffer slice. In this check, all planes are
assumed to be potentially mutable, regardless of whether the AvFrame is actually used for
read or write access. Aliasing reference to the same buffer will be rejected, since it can
potentially allow routines to overwrite each
An exception to this is when the same buffer is passed multiple times in
buffers
. In this case, each buffer is treated as a different buffer. Since clones have to be made to be passed multiple times inbuffers
, the frame will not be considered writable. Hence aliasing is safe in this case, but the caller is required to explicit opt-in to this read-only handling by passing clones of the buffer intobuffers
and have a different buffer index for each plane combination that could overlap in their range.
Auto Trait Implementations§
impl RefUnwindSafe for AvFrameBuilder
impl !Send for AvFrameBuilder
impl !Sync for AvFrameBuilder
impl Unpin for AvFrameBuilder
impl UnwindSafe for AvFrameBuilder
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more