Top | ![]() |
![]() |
![]() |
![]() |
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 |
||
GstVideoInfo |
The GstVideoInfo currently set on the pad |
|
GstBuffer * |
||
GstVideoInfo |
The GstVideoInfo representing the type contained
in |
|
GstVideoFrame * |
The GstVideoFrame ready to be used for aggregation inside the aggregate_frames vmethod. |
|
guint |
The zorder of this pad |
|
gboolean |
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