Class VideoAggregator

All Implemented Interfaces:
Proxy
Direct Known Subclasses:
VideoAggregator.VideoAggregator$Impl

@Generated("org.javagi.JavaGI") public abstract class VideoAggregator extends Aggregator

VideoAggregator can accept AYUV, ARGB and BGRA video streams. For each of the requested sink pads it will compare the incoming geometry and framerate to define the output parameters. Indeed output video frames will have the geometry of the biggest incoming video stream and the framerate of the fastest incoming one.

VideoAggregator will do colorspace conversion.

Zorder for each input stream can be configured on the GstVideoAggregatorPad.

Since:
1.16
  • Constructor Details

    • VideoAggregator

      public VideoAggregator(MemorySegment address)
      Create a VideoAggregator instance for the provided memory address.
      Parameters:
      address - the memory address of the native object
    • VideoAggregator

      public VideoAggregator()
      Create a new VideoAggregator.
  • Method Details

    • getType

      public static @Nullable Type getType()
      Get the GType of the VideoAggregator class.
      Returns:
      the GType
    • getMemoryLayout

      public static MemoryLayout getMemoryLayout()
      The memory layout of the native struct.
      Returns:
      the memory layout
    • asParent

      protected VideoAggregator asParent()
      Return this instance as if it were its parent type. Comparable to the Java super keyword, but ensures the parent typeclass is also used in native code.
      Overrides:
      asParent in class Aggregator
      Returns:
      the instance as if it were its parent type
    • getExecutionTaskPool

      public TaskPool getExecutionTaskPool()
      The returned GstTaskPool is used internally for performing parallel video format conversions/scaling/etc during the GstVideoAggregatorPadClass::prepare_frame_start() process. Subclasses can add their own operation to perform using the returned GstTaskPool during GstVideoAggregatorClass::aggregate_frames().
      Returns:
      the GstTaskPool that can be used by subclasses for performing concurrent operations
      Since:
      1.20
    • aggregateFrames

      protected FlowReturn aggregateFrames(Buffer outbuffer)
      Lets subclasses aggregate frames that are ready. Subclasses should iterate the GstElement.sinkpads and use the already mapped GstVideoFrame from gst_video_aggregator_pad_get_prepared_frame() or directly use the GstBuffer from gst_video_aggregator_pad_get_current_buffer() if it needs to map the buffer in a special way. The result of the aggregation should land in outbuffer.
    • createOutputBuffer

      protected FlowReturn createOutputBuffer(Buffer[] outbuffer)
      Optional. Lets subclasses provide a GstBuffer to be used as outbuffer of the aggregate_frames vmethod.
    • findBestFormat

      protected void findBestFormat(Caps downstreamCaps, VideoInfo bestInfo, Out<Boolean> atLeastOneAlpha)
    • updateCaps

      protected Caps updateCaps(Caps caps)
      Optional. Lets subclasses update the GstCaps representing the src pad caps before usage. Return null to indicate failure.