pub trait VideoAggregatorImpl: VideoAggregatorImplExt + AggregatorImpl {
    // Provided methods
    fn update_caps(&self, caps: &Caps) -> Result<Caps, LoggableError> { ... }
    fn aggregate_frames(
        &self,
        token: &AggregateFramesToken<'_>,
        outbuf: &mut BufferRef,
    ) -> Result<FlowSuccess, FlowError> { ... }
    fn create_output_buffer(&self) -> Result<Option<Buffer>, FlowError> { ... }
    fn find_best_format(
        &self,
        downstream_caps: &Caps,
    ) -> Option<(VideoInfo, bool)> { ... }
}

Provided Methods§

source

fn update_caps(&self, caps: &Caps) -> Result<Caps, LoggableError>

Optional. Lets subclasses update the gst::Caps representing the src pad caps before usage. Return None to indicate failure.

source

fn aggregate_frames( &self, token: &AggregateFramesToken<'_>, outbuf: &mut BufferRef, ) -> Result<FlowSuccess, FlowError>

Lets subclasses aggregate frames that are ready. Subclasses should iterate the GstElement.sinkpads and use the already mapped VideoFrame from VideoAggregatorPadExtManual::prepared_frame() or directly use the gst::Buffer from VideoAggregatorPadExtManual::current_buffer() if it needs to map the buffer in a special way. The result of the aggregation should land in outbuffer.

source

fn create_output_buffer(&self) -> Result<Option<Buffer>, FlowError>

Optional. Lets subclasses provide a gst::Buffer to be used as outbuffer of the aggregate_frames vmethod.

source

fn find_best_format(&self, downstream_caps: &Caps) -> Option<(VideoInfo, bool)>

Object Safety§

This trait is not object safe.

Implementors§