manpagez: man pages & more
html files: gst-plugins-bad-libs-1.0
Home | html | info | man


GstVideoAggregator — Base class for video aggregators

Types and Values

Object Hierarchy

    ╰── GInitiallyUnowned
        ╰── GstObject
            ╰── GstElement
                ╰── GstAggregator
                    ╰── GstVideoAggregator

Implemented Interfaces

GstVideoAggregator implements GstChildProxy.


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.


Types and Values

struct GstVideoAggregator

struct GstVideoAggregator {
  /* Output caps */
  GstVideoInfo info;


GstVideoInfo info;

The GstVideoInfo representing the currently set srcpad caps.


struct GstVideoAggregatorClass

struct GstVideoAggregatorClass {
  GstCaps *          (*update_caps)               (GstVideoAggregator *  videoaggregator,
                                                   GstCaps            *  caps,
                                                   GstCaps            *  filter_caps);
  GstCaps *          (*fixate_caps)               (GstVideoAggregator *  videoaggregator,
                                                   GstCaps            *  caps);
  GstFlowReturn      (*aggregate_frames)          (GstVideoAggregator *  videoaggregator,
                                                   GstBuffer          *  outbuffer);
  GstFlowReturn      (*get_output_buffer)         (GstVideoAggregator *  videoaggregator,
                                                   GstBuffer          ** outbuffer);
  gboolean           (*negotiated_caps)           (GstVideoAggregator *  videoaggregator,
                                                   GstCaps            *  caps);
  void               (*find_best_format)          (GstVideoAggregator *  vagg,
                                                   GstCaps            *  downstream_caps,
                                                   GstVideoInfo       *  best_info,
                                                   gboolean           *  at_least_one_alpha);

  GstCaps           *sink_non_alpha_caps;


update_caps ()

Optional. Lets subclasses update the GstCaps representing the src pad caps before usage. Return NULL to indicate failure.


fixate_caps ()

Fixate and return the src pad caps provided. The function takes ownership of caps and returns a fixated version of caps . caps is not guaranteed to be writable.


aggregate_frames ()

Lets subclasses aggregate frames that are ready. Subclasses should iterate the GstElement.sinkpads and use the already mapped GstVideoFrame from GstVideoAggregatorPad.aggregated_frame or directly use the GstBuffer from GstVideoAggregatorPad.buffer if it needs to map the buffer in a special way. The result of the aggregation should land in outbuffer .


get_output_buffer ()

Optional. Lets subclasses provide a GstBuffer to be used as outbuffer of the aggregate_frames vmethod.


negotiated_caps ()

Optional. Notifies subclasses what caps format has been negotiated


find_best_format ()

Optional. Lets subclasses decide of the best common format to use.


GstCaps *sink_non_alpha_caps;

© 2000-2019
Individual documents may contain additional copyright information.