pub trait StatelessAV1DecoderBackend: StatelessDecoderBackend + StatelessDecoderBackendPicture<Av1> {
// Required methods
fn new_sequence(
&mut self,
sequence: &Rc<SequenceHeaderObu>,
highest_spatial_layer: Option<u32>,
) -> StatelessBackendResult<()>;
fn new_picture(
&mut self,
hdr: &FrameHeaderObu,
timestamp: u64,
highest_spatial_layer: Option<u32>,
) -> NewPictureResult<Self::Picture>;
fn begin_picture(
&mut self,
picture: &mut Self::Picture,
sequence: &SequenceHeaderObu,
hdr: &FrameHeaderObu,
reference_frames: &[Option<Self::Handle>; 8],
) -> StatelessBackendResult<()>;
fn decode_tile_group(
&mut self,
picture: &mut Self::Picture,
tile_group: TileGroupObu<'_>,
) -> StatelessBackendResult<()>;
fn submit_picture(
&mut self,
picture: Self::Picture,
) -> StatelessBackendResult<Self::Handle>;
}
Expand description
Stateless backend methods specific to AV1.
Required Methods§
Sourcefn new_sequence(
&mut self,
sequence: &Rc<SequenceHeaderObu>,
highest_spatial_layer: Option<u32>,
) -> StatelessBackendResult<()>
fn new_sequence( &mut self, sequence: &Rc<SequenceHeaderObu>, highest_spatial_layer: Option<u32>, ) -> StatelessBackendResult<()>
Called when a new Sequence Header OBU is parsed. The
highest_spatial_layer
argument refers to the maximum layer selected by
the client through set_operating_point()
and the scalability
information present in the stream, if any.
Sourcefn new_picture(
&mut self,
hdr: &FrameHeaderObu,
timestamp: u64,
highest_spatial_layer: Option<u32>,
) -> NewPictureResult<Self::Picture>
fn new_picture( &mut self, hdr: &FrameHeaderObu, timestamp: u64, highest_spatial_layer: Option<u32>, ) -> NewPictureResult<Self::Picture>
Called when the decoder determines that a new picture was found. The backend allocates all the resources it needs to process that picture.
Sourcefn begin_picture(
&mut self,
picture: &mut Self::Picture,
sequence: &SequenceHeaderObu,
hdr: &FrameHeaderObu,
reference_frames: &[Option<Self::Handle>; 8],
) -> StatelessBackendResult<()>
fn begin_picture( &mut self, picture: &mut Self::Picture, sequence: &SequenceHeaderObu, hdr: &FrameHeaderObu, reference_frames: &[Option<Self::Handle>; 8], ) -> StatelessBackendResult<()>
Called to set the global parameters of a picture.
Sourcefn decode_tile_group(
&mut self,
picture: &mut Self::Picture,
tile_group: TileGroupObu<'_>,
) -> StatelessBackendResult<()>
fn decode_tile_group( &mut self, picture: &mut Self::Picture, tile_group: TileGroupObu<'_>, ) -> StatelessBackendResult<()>
Called to dispatch a decode operation to the backend.
Sourcefn submit_picture(
&mut self,
picture: Self::Picture,
) -> StatelessBackendResult<Self::Handle>
fn submit_picture( &mut self, picture: Self::Picture, ) -> StatelessBackendResult<Self::Handle>
Called when the decoder wants the backend to finish the decoding
operations for picture
. At this point, decode_tile
has been called
for all tiles.