Types and Values



Types and Values

struct GstVideoAggregatorPad

struct GstVideoAggregatorPad {
  GstAggregatorPad parent;

  GstVideoInfo info;

  GstBuffer *buffer;
  /* The caps on the pad may not match the buffer above because of two reasons:
   * 1) When caps change, the info above will get updated, but the buffer might
   *    not since it might be pending on the GstAggregatorPad
   * 2) We might reject the new buffer in fill_queues() and reuse a previous
   *    buffer which has older GstVideoInfo
   * Hence, we need to maintain a GstVideoInfo for mapping buffers separately */
  GstVideoInfo buffer_vinfo;

  GstVideoFrame *aggregated_frame;

  /* properties */
  guint zorder;
  gboolean ignore_eos;


GstAggregatorPad parent;


GstVideoInfo info;

The GstVideoInfo currently set on the pad


GstBuffer *buffer;


GstVideoInfo buffer_vinfo;

The GstVideoInfo representing the type contained in buffer


GstVideoFrame *aggregated_frame;

The GstVideoFrame ready to be used for aggregation inside the aggregate_frames vmethod.


guint zorder;

The zorder of this pad


gboolean ignore_eos;


struct GstVideoAggregatorPadClass

struct GstVideoAggregatorPadClass {
  GstAggregatorPadClass parent_class;
  gboolean           (*set_info)              (GstVideoAggregatorPad * pad,
                                               GstVideoAggregator    * videoaggregator,
                                               GstVideoInfo          * current_info,
                                               GstVideoInfo          * wanted_info);

  gboolean           (*prepare_frame)         (GstVideoAggregatorPad * pad,
                                               GstVideoAggregator    * videoaggregator);

  void               (*clean_frame)           (GstVideoAggregatorPad * pad,
                                               GstVideoAggregator    * videoaggregator);

  gpointer          _gst_reserved[GST_PADDING_LARGE];

set_info : Lets subclass set a converter on the pad, right after a new format has been negotiated. prepare_frame : Prepare the frame from the pad buffer (if any) and sets it to aggregated_frame clean_frame : clean the frame previously prepared in prepare_frame