pub struct VideoFrame<'a> {
pub bgra: &'a [u8],
pub width: u32,
pub height: u32,
pub metadata: Option<FrameMetadata>,
}Expand description
A decoded video frame, borrowed for the duration of the callback. The buffer
is BGRA (width*height*4, B-G-R-A); copy it if you need to keep it.
Fields§
§bgra: &'a [u8]§width: u32§height: u32§metadata: Option<FrameMetadata>Metadata attached by the sender via
[Track::push_video_frame_with_metadata], decoded from the packet trailer.
None when no trailer was present — which includes every frame from a peer
that did not negotiate the capability, and every frame on a connection built
with RtcConfiguration::frame_metadata off.
Implementations§
Source§impl VideoFrame<'_>
impl VideoFrame<'_>
Sourcepub const fn new(bgra: &[u8], width: u32, height: u32) -> VideoFrame<'_>
pub const fn new(bgra: &[u8], width: u32, height: u32) -> VideoFrame<'_>
A push-side frame: BGRA pixels, no metadata (outgoing trailers go
through [VideoTrack::push_frame_with_metadata(_at)] with user_data).
The same struct on_frame delivers — relay use cases repack nothing.
metadata is populated only on receive.
Auto Trait Implementations§
impl<'a> Freeze for VideoFrame<'a>
impl<'a> RefUnwindSafe for VideoFrame<'a>
impl<'a> Send for VideoFrame<'a>
impl<'a> Sync for VideoFrame<'a>
impl<'a> Unpin for VideoFrame<'a>
impl<'a> UnsafeUnpin for VideoFrame<'a>
impl<'a> UnwindSafe for VideoFrame<'a>
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