GstAggregator
Manages a set of pads with the purpose of aggregating their buffers. Control is given to the subclass when all pads have data.
-
Base class for mixers and muxers. Subclasses should at least implement the aggregate virtual method.
-
Installs a GstPadChainFunction, a GstPadEventFullFunction and a GstPadQueryFunction to queue all serialized data packets per sink pad. Subclasses should not overwrite those, but instead implement sink_event and sink_query as needed.
-
When data is queued on all pads, the aggregate vmethod is called.
-
One can peek at the data on any given GstAggregatorPad with the gst_aggregator_pad_peek_buffer method, and remove it from the pad with the gst_aggregator_pad_pop_buffer () method. When a buffer has been taken with pop_buffer (), a new buffer can be queued on that pad.
-
When gst_aggregator_pad_peek_buffer or gst_aggregator_pad_has_buffer are called, a reference is taken to the returned buffer, which stays valid until either:
- gst_aggregator_pad_pop_buffer is called, in which case the caller is guaranteed that the buffer they receive is the same as the peeked buffer.
- gst_aggregator_pad_drop_buffer is called, in which case the caller is guaranteed that the dropped buffer is the one that was peeked.
- the subclass implementation of aggregate returns.
Subsequent calls to gst_aggregator_pad_peek_buffer or gst_aggregator_pad_has_buffer return / check the same buffer that was returned / checked, until one of the conditions listed above is met.
Subclasses are only allowed to call these methods from the aggregate thread.
-
If the subclass wishes to push a buffer downstream in its aggregate implementation, it should do so through the gst_aggregator_finish_buffer method. This method will take care of sending and ordering mandatory events such as stream start, caps and segment. Buffer lists can also be pushed out with gst_aggregator_finish_buffer_list.
-
Same goes for EOS events, which should not be pushed directly by the subclass, it should instead return GST_FLOW_EOS in its aggregate implementation.
-
Note that the aggregator logic regarding gap event handling is to turn these into gap buffers with matching PTS and duration. It will also flag these buffers with GST_BUFFER_FLAG_GAP and GST_BUFFER_FLAG_DROPPABLE to ease their identification and subsequent processing. In addition, if the gap event was flagged with GST_GAP_FLAG_MISSING_DATA, a custom meta is added to the resulting gap buffer (GstAggregatorMissingDataMeta).
-
Subclasses must use (a subclass of) GstAggregatorPad for both their sink and source pads. See gst_element_class_add_static_pad_template_with_gtype.
This class used to live in gst-plugins-bad and was moved to core.
GstAggregator
GObject ╰──GInitiallyUnowned ╰──GstObject ╰──GstElement ╰──GstAggregator
Aggregator base class object structure.
Members
parent
(GstElement)
–
srcpad
(GstPad *)
–
the aggregator's source pad
Since : 1.14
Class structure
GstAggregatorClass
The aggregator base class will handle in a thread-safe way all manners of concurrent flushes, seeks, pad additions and removals, leaving to the subclass the responsibility of clipping buffers, and aggregating buffers in the way the implementor sees fit.
It will also take care of event ordering (stream-start, segment, eos).
Basically, a simple implementation will override aggregate, and call _finish_buffer from inside that function.
Fields
parent_class
(GstElementClass)
–
Since : 1.14
GstBase.AggregatorClass
The aggregator base class will handle in a thread-safe way all manners of concurrent flushes, seeks, pad additions and removals, leaving to the subclass the responsibility of clipping buffers, and aggregating buffers in the way the implementor sees fit.
It will also take care of event ordering (stream-start, segment, eos).
Basically, a simple implementation will override aggregate, and call _finish_buffer from inside that function.
Attributes
parent_class
(Gst.ElementClass)
–
Since : 1.14
GstBase.AggregatorClass
The aggregator base class will handle in a thread-safe way all manners of concurrent flushes, seeks, pad additions and removals, leaving to the subclass the responsibility of clipping buffers, and aggregating buffers in the way the implementor sees fit.
It will also take care of event ordering (stream-start, segment, eos).
Basically, a simple implementation will override aggregate, and call _finish_buffer from inside that function.
Attributes
parent_class
(Gst.ElementClass)
–
Since : 1.14
GstBase.Aggregator
GObject.Object ╰──GObject.InitiallyUnowned ╰──Gst.Object ╰──Gst.Element ╰──GstBase.Aggregator
Aggregator base class object structure.
Members
parent
(Gst.Element)
–
srcpad
(Gst.Pad)
–
the aggregator's source pad
Since : 1.14
GstBase.Aggregator
GObject.Object ╰──GObject.InitiallyUnowned ╰──Gst.Object ╰──Gst.Element ╰──GstBase.Aggregator
Aggregator base class object structure.
Members
parent
(Gst.Element)
–
srcpad
(Gst.Pad)
–
the aggregator's source pad
Since : 1.14
Methods
gst_aggregator_finish_buffer
GstFlowReturn gst_aggregator_finish_buffer (GstAggregator * aggregator, GstBuffer * buffer)
This method will push the provided output buffer downstream. If needed, mandatory events such as stream-start, caps, and segment events will be sent before pushing the buffer.
GstBase.Aggregator.prototype.finish_buffer
function GstBase.Aggregator.prototype.finish_buffer(buffer: Gst.Buffer): {
// javascript wrapper for 'gst_aggregator_finish_buffer'
}
This method will push the provided output buffer downstream. If needed, mandatory events such as stream-start, caps, and segment events will be sent before pushing the buffer.
GstBase.Aggregator.finish_buffer
def GstBase.Aggregator.finish_buffer (self, buffer):
#python wrapper for 'gst_aggregator_finish_buffer'
This method will push the provided output buffer downstream. If needed, mandatory events such as stream-start, caps, and segment events will be sent before pushing the buffer.
gst_aggregator_finish_buffer_list
GstFlowReturn gst_aggregator_finish_buffer_list (GstAggregator * aggregator, GstBufferList * bufferlist)
This method will push the provided output buffer list downstream. If needed, mandatory events such as stream-start, caps, and segment events will be sent before pushing the buffer.
Parameters:
aggregator
–
The GstAggregator
bufferlist
(
[transfer: full])
–
the GstBufferList to push.
Since : 1.18
GstBase.Aggregator.prototype.finish_buffer_list
function GstBase.Aggregator.prototype.finish_buffer_list(bufferlist: Gst.BufferList): {
// javascript wrapper for 'gst_aggregator_finish_buffer_list'
}
This method will push the provided output buffer list downstream. If needed, mandatory events such as stream-start, caps, and segment events will be sent before pushing the buffer.
Since : 1.18
GstBase.Aggregator.finish_buffer_list
def GstBase.Aggregator.finish_buffer_list (self, bufferlist):
#python wrapper for 'gst_aggregator_finish_buffer_list'
This method will push the provided output buffer list downstream. If needed, mandatory events such as stream-start, caps, and segment events will be sent before pushing the buffer.
Since : 1.18
gst_aggregator_get_allocator
gst_aggregator_get_allocator (GstAggregator * self, GstAllocator ** allocator, GstAllocationParams * params)
Lets GstAggregator sub-classes get the memory allocator acquired by the base class and its params.
Unref the allocator after use it.
Parameters:
self
–
allocator
(
[out][optional][nullable][transfer: full])
–
the GstAllocator used
params
(
[out][optional])
–
the GstAllocationParams of allocator
GstBase.Aggregator.prototype.get_allocator
function GstBase.Aggregator.prototype.get_allocator(): {
// javascript wrapper for 'gst_aggregator_get_allocator'
}
Lets GstBase.Aggregator sub-classes get the memory allocator acquired by the base class and its params.
Unref the allocator after use it.
Parameters:
GstBase.Aggregator.get_allocator
def GstBase.Aggregator.get_allocator (self):
#python wrapper for 'gst_aggregator_get_allocator'
Lets GstBase.Aggregator sub-classes get the memory allocator acquired by the base class and its params.
Unref the allocator after use it.
Parameters:
gst_aggregator_get_buffer_pool
GstBufferPool * gst_aggregator_get_buffer_pool (GstAggregator * self)
Parameters:
self
–
the instance of the GstBufferPool used by trans; free it after use it
GstBase.Aggregator.prototype.get_buffer_pool
function GstBase.Aggregator.prototype.get_buffer_pool(): {
// javascript wrapper for 'gst_aggregator_get_buffer_pool'
}
Parameters:
the instance of the Gst.BufferPool used by trans; free it after use it
GstBase.Aggregator.get_buffer_pool
def GstBase.Aggregator.get_buffer_pool (self):
#python wrapper for 'gst_aggregator_get_buffer_pool'
Parameters:
the instance of the Gst.BufferPool used by trans; free it after use it
gst_aggregator_get_force_live
gboolean gst_aggregator_get_force_live (GstAggregator * self)
Subclasses may use the return value to inform whether they should return GST_FLOW_EOS from their aggregate implementation.
Parameters:
self
–
whether live status was forced on self.
Since : 1.22
GstBase.Aggregator.prototype.get_force_live
function GstBase.Aggregator.prototype.get_force_live(): {
// javascript wrapper for 'gst_aggregator_get_force_live'
}
Subclasses may use the return value to inform whether they should return Gst.FlowReturn.EOS from their aggregate implementation.
Parameters:
whether live status was forced on self.
Since : 1.22
GstBase.Aggregator.get_force_live
def GstBase.Aggregator.get_force_live (self):
#python wrapper for 'gst_aggregator_get_force_live'
Subclasses may use the return value to inform whether they should return Gst.FlowReturn.EOS from their aggregate implementation.
Parameters:
whether live status was forced on self.
Since : 1.22
gst_aggregator_get_ignore_inactive_pads
gboolean gst_aggregator_get_ignore_inactive_pads (GstAggregator * self)
Parameters:
self
–
whether inactive pads will not be waited on
Since : 1.20
GstBase.Aggregator.prototype.get_ignore_inactive_pads
function GstBase.Aggregator.prototype.get_ignore_inactive_pads(): {
// javascript wrapper for 'gst_aggregator_get_ignore_inactive_pads'
}
Parameters:
whether inactive pads will not be waited on
Since : 1.20
GstBase.Aggregator.get_ignore_inactive_pads
def GstBase.Aggregator.get_ignore_inactive_pads (self):
#python wrapper for 'gst_aggregator_get_ignore_inactive_pads'
Parameters:
whether inactive pads will not be waited on
Since : 1.20
gst_aggregator_get_latency
GstClockTime gst_aggregator_get_latency (GstAggregator * self)
Retrieves the latency values reported by self in response to the latency query, or GST_CLOCK_TIME_NONE if there is not live source connected and the element will not wait for the clock.
Typically only called by subclasses.
Parameters:
self
–
The latency or GST_CLOCK_TIME_NONE if the element does not sync
GstBase.Aggregator.prototype.get_latency
function GstBase.Aggregator.prototype.get_latency(): {
// javascript wrapper for 'gst_aggregator_get_latency'
}
Retrieves the latency values reported by self in response to the latency query, or Gst.CLOCK_TIME_NONE if there is not live source connected and the element will not wait for the clock.
Typically only called by subclasses.
Parameters:
The latency or Gst.CLOCK_TIME_NONE if the element does not sync
GstBase.Aggregator.get_latency
def GstBase.Aggregator.get_latency (self):
#python wrapper for 'gst_aggregator_get_latency'
Retrieves the latency values reported by self in response to the latency query, or Gst.CLOCK_TIME_NONE if there is not live source connected and the element will not wait for the clock.
Typically only called by subclasses.
Parameters:
The latency or Gst.CLOCK_TIME_NONE if the element does not sync
gst_aggregator_negotiate
gboolean gst_aggregator_negotiate (GstAggregator * self)
Negotiates src pad caps with downstream elements. Unmarks GST_PAD_FLAG_NEED_RECONFIGURE in any case. But marks it again if negotiate fails.
Parameters:
self
–
Since : 1.18
GstBase.Aggregator.prototype.negotiate
function GstBase.Aggregator.prototype.negotiate(): {
// javascript wrapper for 'gst_aggregator_negotiate'
}
Negotiates src pad caps with downstream elements. Unmarks GST_PAD_FLAG_NEED_RECONFIGURE in any case. But marks it again if vfunc_negotiate fails.
Parameters:
Since : 1.18
GstBase.Aggregator.negotiate
def GstBase.Aggregator.negotiate (self):
#python wrapper for 'gst_aggregator_negotiate'
Negotiates src pad caps with downstream elements. Unmarks GST_PAD_FLAG_NEED_RECONFIGURE in any case. But marks it again if do_negotiate fails.
Parameters:
Since : 1.18
gst_aggregator_peek_next_sample
GstSample * gst_aggregator_peek_next_sample (GstAggregator * self, GstAggregatorPad * pad)
Use this function to determine what input buffers will be aggregated to produce the next output buffer. This should only be called from a samples-selected handler, and can be used to precisely control aggregating parameters for a given set of input samples.
Parameters:
self
–
pad
–
The sample that is about to be aggregated. It may hold a GstBuffer or a GstBufferList. The contents of its info structure is subclass-dependent, and documented on a subclass basis. The buffers held by the sample are not writable.
Since : 1.18
GstBase.Aggregator.prototype.peek_next_sample
function GstBase.Aggregator.prototype.peek_next_sample(pad: GstBase.AggregatorPad): {
// javascript wrapper for 'gst_aggregator_peek_next_sample'
}
Use this function to determine what input buffers will be aggregated to produce the next output buffer. This should only be called from a samples-selected handler, and can be used to precisely control aggregating parameters for a given set of input samples.
Parameters:
The sample that is about to be aggregated. It may hold a Gst.Buffer or a Gst.BufferList. The contents of its info structure is subclass-dependent, and documented on a subclass basis. The buffers held by the sample are not writable.
Since : 1.18
GstBase.Aggregator.peek_next_sample
def GstBase.Aggregator.peek_next_sample (self, pad):
#python wrapper for 'gst_aggregator_peek_next_sample'
Use this function to determine what input buffers will be aggregated to produce the next output buffer. This should only be called from a samples-selected handler, and can be used to precisely control aggregating parameters for a given set of input samples.
Parameters:
The sample that is about to be aggregated. It may hold a Gst.Buffer or a Gst.BufferList. The contents of its info structure is subclass-dependent, and documented on a subclass basis. The buffers held by the sample are not writable.
Since : 1.18
gst_aggregator_push_src_event
gboolean gst_aggregator_push_src_event (GstAggregator * aggregator, GstEvent * event)
This method will push the provided event downstream. If needed, mandatory events such as stream-start, caps, and segment events will be sent before pushing the event.
This API does not allow pushing stream-start, caps, segment and EOS events. Specific API like gst_aggregator_set_src_caps should be used for these.
Since : 1.26
GstBase.Aggregator.prototype.push_src_event
function GstBase.Aggregator.prototype.push_src_event(event: Gst.Event): {
// javascript wrapper for 'gst_aggregator_push_src_event'
}
This method will push the provided event downstream. If needed, mandatory events such as stream-start, caps, and segment events will be sent before pushing the event.
This API does not allow pushing stream-start, caps, segment and EOS events. Specific API like GstBase.Aggregator.prototype.set_src_caps should be used for these.
Parameters:
Since : 1.26
GstBase.Aggregator.push_src_event
def GstBase.Aggregator.push_src_event (self, event):
#python wrapper for 'gst_aggregator_push_src_event'
This method will push the provided event downstream. If needed, mandatory events such as stream-start, caps, and segment events will be sent before pushing the event.
This API does not allow pushing stream-start, caps, segment and EOS events. Specific API like GstBase.Aggregator.set_src_caps should be used for these.
Parameters:
Since : 1.26
gst_aggregator_selected_samples
gst_aggregator_selected_samples (GstAggregator * self, GstClockTime pts, GstClockTime dts, GstClockTime duration, GstStructure * info)
Subclasses should call this when they have prepared the buffers they will aggregate for each of their sink pads, but before using any of the properties of the pads that govern how aggregation should be performed, for example z-index for video aggregators.
If gst_aggregator_update_segment is used by the subclass, it MUST be called before gst_aggregator_selected_samples.
This function MUST only be called from the aggregate() function.
Parameters:
self
–
pts
–
The presentation timestamp of the next output buffer
dts
–
The decoding timestamp of the next output buffer
duration
–
The duration of the next output buffer
info
(
[nullable])
–
a GstStructure containing additional information
Since : 1.18
GstBase.Aggregator.prototype.selected_samples
function GstBase.Aggregator.prototype.selected_samples(pts: Number, dts: Number, duration: Number, info: Gst.Structure): {
// javascript wrapper for 'gst_aggregator_selected_samples'
}
Subclasses should call this when they have prepared the buffers they will aggregate for each of their sink pads, but before using any of the properties of the pads that govern how aggregation should be performed, for example z-index for video aggregators.
If GstBase.Aggregator.prototype.update_segment is used by the subclass, it MUST be called before GstBase.Aggregator.prototype.selected_samples.
This function MUST only be called from the vfunc_aggregate() function.
Parameters:
The presentation timestamp of the next output buffer
The decoding timestamp of the next output buffer
The duration of the next output buffer
a Gst.Structure containing additional information
Since : 1.18
GstBase.Aggregator.selected_samples
def GstBase.Aggregator.selected_samples (self, pts, dts, duration, info):
#python wrapper for 'gst_aggregator_selected_samples'
Subclasses should call this when they have prepared the buffers they will aggregate for each of their sink pads, but before using any of the properties of the pads that govern how aggregation should be performed, for example z-index for video aggregators.
If GstBase.Aggregator.update_segment is used by the subclass, it MUST be called before GstBase.Aggregator.selected_samples.
This function MUST only be called from the do_aggregate() function.
Parameters:
The presentation timestamp of the next output buffer
The decoding timestamp of the next output buffer
The duration of the next output buffer
a Gst.Structure containing additional information
Since : 1.18
gst_aggregator_set_force_live
gst_aggregator_set_force_live (GstAggregator * self, gboolean force_live)
Subclasses should call this at construction time in order for self to aggregate on a timeout even when no live source is connected.
Parameters:
self
–
force_live
–
Since : 1.22
GstBase.Aggregator.prototype.set_force_live
function GstBase.Aggregator.prototype.set_force_live(force_live: Number): {
// javascript wrapper for 'gst_aggregator_set_force_live'
}
Subclasses should call this at construction time in order for self to aggregate on a timeout even when no live source is connected.
Parameters:
Since : 1.22
GstBase.Aggregator.set_force_live
def GstBase.Aggregator.set_force_live (self, force_live):
#python wrapper for 'gst_aggregator_set_force_live'
Subclasses should call this at construction time in order for self to aggregate on a timeout even when no live source is connected.
Parameters:
Since : 1.22
gst_aggregator_set_ignore_inactive_pads
gst_aggregator_set_ignore_inactive_pads (GstAggregator * self, gboolean ignore)
Subclasses should call this when they don't want to time out waiting for a pad that hasn't yet received any buffers in live mode.
GstAggregator will still wait once on each newly-added pad, making sure upstream has had a fair chance to start up.
Parameters:
self
–
ignore
–
whether inactive pads should not be waited on
Since : 1.20
GstBase.Aggregator.prototype.set_ignore_inactive_pads
function GstBase.Aggregator.prototype.set_ignore_inactive_pads(ignore: Number): {
// javascript wrapper for 'gst_aggregator_set_ignore_inactive_pads'
}
Subclasses should call this when they don't want to time out waiting for a pad that hasn't yet received any buffers in live mode.
GstBase.Aggregator will still wait once on each newly-added pad, making sure upstream has had a fair chance to start up.
Parameters:
whether inactive pads should not be waited on
Since : 1.20
GstBase.Aggregator.set_ignore_inactive_pads
def GstBase.Aggregator.set_ignore_inactive_pads (self, ignore):
#python wrapper for 'gst_aggregator_set_ignore_inactive_pads'
Subclasses should call this when they don't want to time out waiting for a pad that hasn't yet received any buffers in live mode.
GstBase.Aggregator will still wait once on each newly-added pad, making sure upstream has had a fair chance to start up.
Parameters:
whether inactive pads should not be waited on
Since : 1.20
gst_aggregator_set_latency
gst_aggregator_set_latency (GstAggregator * self, GstClockTime min_latency, GstClockTime max_latency)
Lets GstAggregator sub-classes tell the baseclass what their internal latency is. Will also post a LATENCY message on the bus so the pipeline can reconfigure its global latency if the values changed.
GstBase.Aggregator.prototype.set_latency
function GstBase.Aggregator.prototype.set_latency(min_latency: Number, max_latency: Number): {
// javascript wrapper for 'gst_aggregator_set_latency'
}
Lets GstBase.Aggregator sub-classes tell the baseclass what their internal latency is. Will also post a LATENCY message on the bus so the pipeline can reconfigure its global latency if the values changed.
Parameters:
minimum latency
maximum latency
GstBase.Aggregator.set_latency
def GstBase.Aggregator.set_latency (self, min_latency, max_latency):
#python wrapper for 'gst_aggregator_set_latency'
Lets GstBase.Aggregator sub-classes tell the baseclass what their internal latency is. Will also post a LATENCY message on the bus so the pipeline can reconfigure its global latency if the values changed.
Parameters:
minimum latency
maximum latency
gst_aggregator_set_src_caps
gst_aggregator_set_src_caps (GstAggregator * self, GstCaps * caps)
Sets the caps to be used on the src pad.
GstBase.Aggregator.prototype.set_src_caps
function GstBase.Aggregator.prototype.set_src_caps(caps: Gst.Caps): {
// javascript wrapper for 'gst_aggregator_set_src_caps'
}
Sets the caps to be used on the src pad.
Parameters:
GstBase.Aggregator.set_src_caps
def GstBase.Aggregator.set_src_caps (self, caps):
#python wrapper for 'gst_aggregator_set_src_caps'
Sets the caps to be used on the src pad.
Parameters:
gst_aggregator_simple_get_next_time
GstClockTime gst_aggregator_simple_get_next_time (GstAggregator * self)
This is a simple get_next_time implementation that just looks at the GstSegment on the srcpad of the aggregator and bases the next time on the running time there.
This is the desired behaviour in most cases where you have a live source and you have a dead line based aggregator subclass.
Parameters:
self
–
The running time based on the position
Since : 1.16
GstBase.Aggregator.prototype.simple_get_next_time
function GstBase.Aggregator.prototype.simple_get_next_time(): {
// javascript wrapper for 'gst_aggregator_simple_get_next_time'
}
This is a simple vfunc_get_next_time implementation that just looks at the Gst.Segment on the srcpad of the aggregator and bases the next time on the running time there.
This is the desired behaviour in most cases where you have a live source and you have a dead line based aggregator subclass.
Parameters:
The running time based on the position
Since : 1.16
GstBase.Aggregator.simple_get_next_time
def GstBase.Aggregator.simple_get_next_time (self):
#python wrapper for 'gst_aggregator_simple_get_next_time'
This is a simple do_get_next_time implementation that just looks at the Gst.Segment on the srcpad of the aggregator and bases the next time on the running time there.
This is the desired behaviour in most cases where you have a live source and you have a dead line based aggregator subclass.
Parameters:
The running time based on the position
Since : 1.16
gst_aggregator_update_segment
gst_aggregator_update_segment (GstAggregator * self, const GstSegment * segment)
Subclasses should use this to update the segment on their source pad, instead of directly pushing new segment events downstream.
Subclasses MUST call this before gst_aggregator_selected_samples, if it is used at all.
Parameters:
self
–
segment
–
Since : 1.18
GstBase.Aggregator.prototype.update_segment
function GstBase.Aggregator.prototype.update_segment(segment: Gst.Segment): {
// javascript wrapper for 'gst_aggregator_update_segment'
}
Subclasses should use this to update the segment on their source pad, instead of directly pushing new segment events downstream.
Subclasses MUST call this before GstBase.Aggregator.prototype.selected_samples, if it is used at all.
Parameters:
Since : 1.18
GstBase.Aggregator.update_segment
def GstBase.Aggregator.update_segment (self, segment):
#python wrapper for 'gst_aggregator_update_segment'
Subclasses should use this to update the segment on their source pad, instead of directly pushing new segment events downstream.
Subclasses MUST call this before GstBase.Aggregator.selected_samples, if it is used at all.
Parameters:
Since : 1.18
Signals
samples-selected
samples_selected_callback (GstAggregator * self, GstSegment * segment, guint64 pts, guint64 dts, guint64 duration, GstStructure * info, gpointer user_data)
Signals that the GstAggregator subclass has selected the next set of input samples it will aggregate. Handlers may call gst_aggregator_peek_next_sample at that point.
Parameters:
self
–
segment
–
The GstSegment the next output buffer is part of
pts
–
The presentation timestamp of the next output buffer
dts
–
The decoding timestamp of the next output buffer
duration
–
The duration of the next output buffer
info
(
[nullable])
–
a GstStructure containing additional information
user_data
–
Flags: Run First
Since : 1.18
samples-selected
function samples_selected_callback(self: GstBase.Aggregator, segment: Gst.Segment, pts: Number, dts: Number, duration: Number, info: Gst.Structure, user_data: Object): {
// javascript callback for the 'samples-selected' signal
}
Signals that the GstBase.Aggregator subclass has selected the next set of input samples it will aggregate. Handlers may call GstBase.Aggregator.prototype.peek_next_sample at that point.
Parameters:
The Gst.Segment the next output buffer is part of
The presentation timestamp of the next output buffer
The decoding timestamp of the next output buffer
The duration of the next output buffer
a Gst.Structure containing additional information
Flags: Run First
Since : 1.18
samples-selected
def samples_selected_callback (self, segment, pts, dts, duration, info, *user_data):
#python callback for the 'samples-selected' signal
Signals that the GstBase.Aggregator subclass has selected the next set of input samples it will aggregate. Handlers may call GstBase.Aggregator.peek_next_sample at that point.
Parameters:
The Gst.Segment the next output buffer is part of
The presentation timestamp of the next output buffer
The decoding timestamp of the next output buffer
The duration of the next output buffer
a Gst.Structure containing additional information
Flags: Run First
Since : 1.18
Properties
emit-signals
“emit-signals” gboolean
Enables the emission of signals such as samples-selected
Flags : Read / Write
Since : 1.18
emit-signals
“emit-signals” Number
Enables the emission of signals such as samples-selected
Flags : Read / Write
Since : 1.18
emit_signals
“self.props.emit_signals” bool
Enables the emission of signals such as samples-selected
Flags : Read / Write
Since : 1.18
min-upstream-latency
“min-upstream-latency” guint64
Force minimum upstream latency (in nanoseconds). When sources with a higher latency are expected to be plugged in dynamically after the aggregator has started playing, this allows overriding the minimum latency reported by the initial source(s). This is only taken into account when larger than the actually reported minimum latency.
Flags : Read / Write
Since : 1.16
min-upstream-latency
“min-upstream-latency” Number
Force minimum upstream latency (in nanoseconds). When sources with a higher latency are expected to be plugged in dynamically after the aggregator has started playing, this allows overriding the minimum latency reported by the initial source(s). This is only taken into account when larger than the actually reported minimum latency.
Flags : Read / Write
Since : 1.16
min_upstream_latency
“self.props.min_upstream_latency” int
Force minimum upstream latency (in nanoseconds). When sources with a higher latency are expected to be plugged in dynamically after the aggregator has started playing, this allows overriding the minimum latency reported by the initial source(s). This is only taken into account when larger than the actually reported minimum latency.
Flags : Read / Write
Since : 1.16
start-time-selection
“start-time-selection” GstBase.AggregatorStartTimeSelection
Flags : Read / Write
start_time_selection
“self.props.start_time_selection” GstBase.AggregatorStartTimeSelection
Flags : Read / Write
Virtual Methods
aggregate
GstFlowReturn aggregate (GstAggregator * aggregator, gboolean timeout)
Mandatory. Called when buffers are queued on all sinkpads. Classes should iterate the GstElement->sinkpads and peek or steal buffers from the GstAggregatorPad. If the subclass returns GST_FLOW_EOS, sending of the eos event will be taken care of. Once / if a buffer has been constructed from the aggregated buffers, the subclass should call _finish_buffer.
Parameters:
aggregator
–
timeout
–
vfunc_aggregate
function vfunc_aggregate(aggregator: GstBase.Aggregator, timeout: Number): {
// javascript implementation of the 'aggregate' virtual method
}
Mandatory. Called when buffers are queued on all sinkpads. Classes should iterate the GstElement->sinkpads and peek or steal buffers from the GstBase.AggregatorPad. If the subclass returns GST_FLOW_EOS, sending of the eos event will be taken care of. Once / if a buffer has been constructed from the aggregated buffers, the subclass should call _finish_buffer.
Parameters:
do_aggregate
def do_aggregate (aggregator, timeout):
#python implementation of the 'aggregate' virtual method
Mandatory. Called when buffers are queued on all sinkpads. Classes should iterate the GstElement->sinkpads and peek or steal buffers from the GstBase.AggregatorPad. If the subclass returns GST_FLOW_EOS, sending of the eos event will be taken care of. Once / if a buffer has been constructed from the aggregated buffers, the subclass should call _finish_buffer.
Parameters:
clip
GstBuffer * clip (GstAggregator * aggregator, GstAggregatorPad * aggregator_pad, GstBuffer * buf)
Optional. Called when a buffer is received on a sink pad, the task of clipping it and translating it to the current segment falls on the subclass. The function should use the segment of data and the negotiated media type on the pad to perform clipping of input buffer. This function takes ownership of buf and should output a buffer or return NULL in if the buffer should be dropped.
Parameters:
aggregator
–
aggregator_pad
–
buf
–
vfunc_clip
function vfunc_clip(aggregator: GstBase.Aggregator, aggregator_pad: GstBase.AggregatorPad, buf: Gst.Buffer): {
// javascript implementation of the 'clip' virtual method
}
Optional. Called when a buffer is received on a sink pad, the task of clipping it and translating it to the current segment falls on the subclass. The function should use the segment of data and the negotiated media type on the pad to perform clipping of input buffer. This function takes ownership of buf and should output a buffer or return NULL in if the buffer should be dropped.
Parameters:
do_clip
def do_clip (aggregator, aggregator_pad, buf):
#python implementation of the 'clip' virtual method
Optional. Called when a buffer is received on a sink pad, the task of clipping it and translating it to the current segment falls on the subclass. The function should use the segment of data and the negotiated media type on the pad to perform clipping of input buffer. This function takes ownership of buf and should output a buffer or return NULL in if the buffer should be dropped.
Parameters:
create_new_pad
GstAggregatorPad * create_new_pad (GstAggregator * self, GstPadTemplate * templ, const gchar * req_name, const GstCaps * caps)
Optional. Called when a new pad needs to be created. Allows subclass that don't have a single sink pad template to provide a pad based on the provided information.
Parameters:
self
–
templ
–
req_name
–
caps
–
decide_allocation
gboolean decide_allocation (GstAggregator * self, GstQuery * query)
Optional. Allows the subclass to influence the allocation choices. Setup the allocation parameters for allocating output buffers. The passed in query contains the result of the downstream allocation query.
Parameters:
self
–
query
–
vfunc_decide_allocation
function vfunc_decide_allocation(self: GstBase.Aggregator, query: Gst.Query): {
// javascript implementation of the 'decide_allocation' virtual method
}
Optional. Allows the subclass to influence the allocation choices. Setup the allocation parameters for allocating output buffers. The passed in query contains the result of the downstream allocation query.
Parameters:
do_decide_allocation
def do_decide_allocation (self, query):
#python implementation of the 'decide_allocation' virtual method
Optional. Allows the subclass to influence the allocation choices. Setup the allocation parameters for allocating output buffers. The passed in query contains the result of the downstream allocation query.
Parameters:
finish_buffer
GstFlowReturn finish_buffer (GstAggregator * aggregator, GstBuffer * buffer)
Optional. Called when a subclass calls gst_aggregator_finish_buffer from their aggregate function to push out a buffer. Subclasses can override this to modify or decorate buffers before they get pushed out. This function takes ownership of the buffer passed. Subclasses that override this method should always chain up to the parent class virtual method.
Parameters:
aggregator
–
buffer
–
vfunc_finish_buffer
function vfunc_finish_buffer(aggregator: GstBase.Aggregator, buffer: Gst.Buffer): {
// javascript implementation of the 'finish_buffer' virtual method
}
Optional. Called when a subclass calls GstBase.Aggregator.prototype.finish_buffer from their aggregate function to push out a buffer. Subclasses can override this to modify or decorate buffers before they get pushed out. This function takes ownership of the buffer passed. Subclasses that override this method should always chain up to the parent class virtual method.
Parameters:
do_finish_buffer
def do_finish_buffer (aggregator, buffer):
#python implementation of the 'finish_buffer' virtual method
Optional. Called when a subclass calls GstBase.Aggregator.finish_buffer from their aggregate function to push out a buffer. Subclasses can override this to modify or decorate buffers before they get pushed out. This function takes ownership of the buffer passed. Subclasses that override this method should always chain up to the parent class virtual method.
Parameters:
finish_buffer_list
GstFlowReturn finish_buffer_list (GstAggregator * aggregator, GstBufferList * bufferlist)
Optional. Equivalent of finish_buffer for buffer lists.
Parameters:
aggregator
–
bufferlist
–
Since : 1.18
vfunc_finish_buffer_list
function vfunc_finish_buffer_list(aggregator: GstBase.Aggregator, bufferlist: Gst.BufferList): {
// javascript implementation of the 'finish_buffer_list' virtual method
}
Optional. Equivalent of vfunc_finish_buffer for buffer lists.
Parameters:
Since : 1.18
do_finish_buffer_list
def do_finish_buffer_list (aggregator, bufferlist):
#python implementation of the 'finish_buffer_list' virtual method
Optional. Equivalent of do_finish_buffer for buffer lists.
Parameters:
Since : 1.18
fixate_src_caps
GstCaps * fixate_src_caps (GstAggregator * self, GstCaps * caps)
Optional. 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.
Parameters:
self
–
caps
–
vfunc_fixate_src_caps
function vfunc_fixate_src_caps(self: GstBase.Aggregator, caps: Gst.Caps): {
// javascript implementation of the 'fixate_src_caps' virtual method
}
Optional. 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.
Parameters:
do_fixate_src_caps
def do_fixate_src_caps (self, caps):
#python implementation of the 'fixate_src_caps' virtual method
Optional. 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.
Parameters:
flush
GstFlowReturn flush (GstAggregator * aggregator)
Optional. Called after a successful flushing seek, once all the flush stops have been received. Flush pad-specific data in GstAggregatorPad->flush.
Parameters:
aggregator
–
vfunc_flush
function vfunc_flush(aggregator: GstBase.Aggregator): {
// javascript implementation of the 'flush' virtual method
}
Optional. Called after a successful flushing seek, once all the flush stops have been received. Flush pad-specific data in GstBase.AggregatorPad->flush.
Parameters:
do_flush
def do_flush (aggregator):
#python implementation of the 'flush' virtual method
Optional. Called after a successful flushing seek, once all the flush stops have been received. Flush pad-specific data in GstBase.AggregatorPad->flush.
Parameters:
get_next_time
GstClockTime get_next_time (GstAggregator * aggregator)
Optional. Called when the element needs to know the running time of the next rendered buffer for live pipelines. This causes deadline based aggregation to occur. Defaults to returning GST_CLOCK_TIME_NONE causing the element to wait for buffers on all sink pads before aggregating.
Parameters:
aggregator
–
vfunc_get_next_time
function vfunc_get_next_time(aggregator: GstBase.Aggregator): {
// javascript implementation of the 'get_next_time' virtual method
}
Optional. Called when the element needs to know the running time of the next rendered buffer for live pipelines. This causes deadline based aggregation to occur. Defaults to returning GST_CLOCK_TIME_NONE causing the element to wait for buffers on all sink pads before aggregating.
Parameters:
do_get_next_time
def do_get_next_time (aggregator):
#python implementation of the 'get_next_time' virtual method
Optional. Called when the element needs to know the running time of the next rendered buffer for live pipelines. This causes deadline based aggregation to occur. Defaults to returning GST_CLOCK_TIME_NONE causing the element to wait for buffers on all sink pads before aggregating.
Parameters:
negotiate
gboolean negotiate (GstAggregator * self)
Optional. Negotiate the caps with the peer (Since: 1.18).
Parameters:
self
–
vfunc_negotiate
function vfunc_negotiate(self: GstBase.Aggregator): {
// javascript implementation of the 'negotiate' virtual method
}
Optional. Negotiate the caps with the peer (Since: 1.18).
Parameters:
do_negotiate
def do_negotiate (self):
#python implementation of the 'negotiate' virtual method
Optional. Negotiate the caps with the peer (Since: 1.18).
Parameters:
negotiated_src_caps
gboolean negotiated_src_caps (GstAggregator * self, GstCaps * caps)
Optional. Notifies subclasses what caps format has been negotiated
Parameters:
self
–
caps
–
vfunc_negotiated_src_caps
function vfunc_negotiated_src_caps(self: GstBase.Aggregator, caps: Gst.Caps): {
// javascript implementation of the 'negotiated_src_caps' virtual method
}
Optional. Notifies subclasses what caps format has been negotiated
Parameters:
do_negotiated_src_caps
def do_negotiated_src_caps (self, caps):
#python implementation of the 'negotiated_src_caps' virtual method
Optional. Notifies subclasses what caps format has been negotiated
Parameters:
peek_next_sample
GstSample * peek_next_sample (GstAggregator * aggregator, GstAggregatorPad * aggregator_pad)
See gst_aggregator_peek_next_sample.
Parameters:
aggregator
–
aggregator_pad
–
Since : 1.18
vfunc_peek_next_sample
function vfunc_peek_next_sample(aggregator: GstBase.Aggregator, aggregator_pad: GstBase.AggregatorPad): {
// javascript implementation of the 'peek_next_sample' virtual method
}
See GstBase.Aggregator.prototype.peek_next_sample.
Parameters:
Since : 1.18
do_peek_next_sample
def do_peek_next_sample (aggregator, aggregator_pad):
#python implementation of the 'peek_next_sample' virtual method
See GstBase.Aggregator.peek_next_sample.
Parameters:
Since : 1.18
propose_allocation
gboolean propose_allocation (GstAggregator * self, GstAggregatorPad * pad, GstQuery * decide_query, GstQuery * query)
Optional. Allows the subclass to handle the allocation query from upstream.
Parameters:
self
–
pad
–
decide_query
–
query
–
vfunc_propose_allocation
function vfunc_propose_allocation(self: GstBase.Aggregator, pad: GstBase.AggregatorPad, decide_query: Gst.Query, query: Gst.Query): {
// javascript implementation of the 'propose_allocation' virtual method
}
Optional. Allows the subclass to handle the allocation query from upstream.
Parameters:
do_propose_allocation
def do_propose_allocation (self, pad, decide_query, query):
#python implementation of the 'propose_allocation' virtual method
Optional. Allows the subclass to handle the allocation query from upstream.
Parameters:
sink_event
gboolean sink_event (GstAggregator * aggregator, GstAggregatorPad * aggregator_pad, GstEvent * event)
Optional. Called when an event is received on a sink pad, the subclass should always chain up.
Parameters:
aggregator
–
aggregator_pad
–
event
–
vfunc_sink_event
function vfunc_sink_event(aggregator: GstBase.Aggregator, aggregator_pad: GstBase.AggregatorPad, event: Gst.Event): {
// javascript implementation of the 'sink_event' virtual method
}
Optional. Called when an event is received on a sink pad, the subclass should always chain up.
Parameters:
do_sink_event
def do_sink_event (aggregator, aggregator_pad, event):
#python implementation of the 'sink_event' virtual method
Optional. Called when an event is received on a sink pad, the subclass should always chain up.
Parameters:
sink_event_pre_queue
GstFlowReturn sink_event_pre_queue (GstAggregator * aggregator, GstAggregatorPad * aggregator_pad, GstEvent * event)
Optional. Called when an event is received on a sink pad before queueing up serialized events. The subclass should always chain up (Since: 1.18).
Parameters:
aggregator
–
aggregator_pad
–
event
–
vfunc_sink_event_pre_queue
function vfunc_sink_event_pre_queue(aggregator: GstBase.Aggregator, aggregator_pad: GstBase.AggregatorPad, event: Gst.Event): {
// javascript implementation of the 'sink_event_pre_queue' virtual method
}
Optional. Called when an event is received on a sink pad before queueing up serialized events. The subclass should always chain up (Since: 1.18).
Parameters:
do_sink_event_pre_queue
def do_sink_event_pre_queue (aggregator, aggregator_pad, event):
#python implementation of the 'sink_event_pre_queue' virtual method
Optional. Called when an event is received on a sink pad before queueing up serialized events. The subclass should always chain up (Since: 1.18).
Parameters:
sink_query
gboolean sink_query (GstAggregator * aggregator, GstAggregatorPad * aggregator_pad, GstQuery * query)
Optional. Called when a query is received on a sink pad, the subclass should always chain up.
Parameters:
aggregator
–
aggregator_pad
–
query
–
vfunc_sink_query
function vfunc_sink_query(aggregator: GstBase.Aggregator, aggregator_pad: GstBase.AggregatorPad, query: Gst.Query): {
// javascript implementation of the 'sink_query' virtual method
}
Optional. Called when a query is received on a sink pad, the subclass should always chain up.
Parameters:
do_sink_query
def do_sink_query (aggregator, aggregator_pad, query):
#python implementation of the 'sink_query' virtual method
Optional. Called when a query is received on a sink pad, the subclass should always chain up.
Parameters:
sink_query_pre_queue
gboolean sink_query_pre_queue (GstAggregator * aggregator, GstAggregatorPad * aggregator_pad, GstQuery * query)
Optional. Called when a query is received on a sink pad before queueing up serialized queries. The subclass should always chain up (Since: 1.18).
Parameters:
aggregator
–
aggregator_pad
–
query
–
vfunc_sink_query_pre_queue
function vfunc_sink_query_pre_queue(aggregator: GstBase.Aggregator, aggregator_pad: GstBase.AggregatorPad, query: Gst.Query): {
// javascript implementation of the 'sink_query_pre_queue' virtual method
}
Optional. Called when a query is received on a sink pad before queueing up serialized queries. The subclass should always chain up (Since: 1.18).
Parameters:
do_sink_query_pre_queue
def do_sink_query_pre_queue (aggregator, aggregator_pad, query):
#python implementation of the 'sink_query_pre_queue' virtual method
Optional. Called when a query is received on a sink pad before queueing up serialized queries. The subclass should always chain up (Since: 1.18).
Parameters:
src_activate
gboolean src_activate (GstAggregator * aggregator, GstPadMode mode, gboolean active)
Optional. Called when the src pad is activated, it will start/stop its pad task right after that call.
Parameters:
aggregator
–
mode
–
active
–
vfunc_src_activate
function vfunc_src_activate(aggregator: GstBase.Aggregator, mode: Gst.PadMode, active: Number): {
// javascript implementation of the 'src_activate' virtual method
}
Optional. Called when the src pad is activated, it will start/stop its pad task right after that call.
Parameters:
do_src_activate
def do_src_activate (aggregator, mode, active):
#python implementation of the 'src_activate' virtual method
Optional. Called when the src pad is activated, it will start/stop its pad task right after that call.
Parameters:
src_event
gboolean src_event (GstAggregator * aggregator, GstEvent * event)
Optional. Called when an event is received on the src pad, the subclass should always chain up.
Parameters:
aggregator
–
event
–
vfunc_src_event
function vfunc_src_event(aggregator: GstBase.Aggregator, event: Gst.Event): {
// javascript implementation of the 'src_event' virtual method
}
Optional. Called when an event is received on the src pad, the subclass should always chain up.
Parameters:
do_src_event
def do_src_event (aggregator, event):
#python implementation of the 'src_event' virtual method
Optional. Called when an event is received on the src pad, the subclass should always chain up.
Parameters:
src_query
gboolean src_query (GstAggregator * aggregator, GstQuery * query)
Optional. Called when a query is received on the src pad, the subclass should always chain up.
Parameters:
aggregator
–
query
–
vfunc_src_query
function vfunc_src_query(aggregator: GstBase.Aggregator, query: Gst.Query): {
// javascript implementation of the 'src_query' virtual method
}
Optional. Called when a query is received on the src pad, the subclass should always chain up.
Parameters:
do_src_query
def do_src_query (aggregator, query):
#python implementation of the 'src_query' virtual method
Optional. Called when a query is received on the src pad, the subclass should always chain up.
Parameters:
start
gboolean start (GstAggregator * aggregator)
Optional. Called when the element goes from READY to PAUSED. The subclass should get ready to process aggregated buffers.
Parameters:
aggregator
–
vfunc_start
function vfunc_start(aggregator: GstBase.Aggregator): {
// javascript implementation of the 'start' virtual method
}
Optional. Called when the element goes from READY to PAUSED. The subclass should get ready to process aggregated buffers.
Parameters:
do_start
def do_start (aggregator):
#python implementation of the 'start' virtual method
Optional. Called when the element goes from READY to PAUSED. The subclass should get ready to process aggregated buffers.
Parameters:
stop
gboolean stop (GstAggregator * aggregator)
Optional. Called when the element goes from PAUSED to READY. The subclass should free all resources and reset its state.
Parameters:
aggregator
–
vfunc_stop
function vfunc_stop(aggregator: GstBase.Aggregator): {
// javascript implementation of the 'stop' virtual method
}
Optional. Called when the element goes from PAUSED to READY. The subclass should free all resources and reset its state.
Parameters:
do_stop
def do_stop (aggregator):
#python implementation of the 'stop' virtual method
Optional. Called when the element goes from PAUSED to READY. The subclass should free all resources and reset its state.
Parameters:
update_src_caps
GstFlowReturn update_src_caps (GstAggregator * self, GstCaps * caps, GstCaps ** ret)
Lets subclasses update the GstCaps representing the src pad caps before usage. The result should end up in ret. Return GST_AGGREGATOR_FLOW_NEED_DATA to indicate that the element needs more information (caps, a buffer, etc) to choose the correct caps. Should return ANY caps if the stream has not caps at all.
Parameters:
self
–
caps
–
ret
–
vfunc_update_src_caps
function vfunc_update_src_caps(self: GstBase.Aggregator, caps: Gst.Caps): {
// javascript implementation of the 'update_src_caps' virtual method
}
Lets subclasses update the Gst.Caps representing the src pad caps before usage. The result should end up in ret. Return GST_AGGREGATOR_FLOW_NEED_DATA (not introspectable) to indicate that the element needs more information (caps, a buffer, etc) to choose the correct caps. Should return ANY caps if the stream has not caps at all.
Parameters:
Returns a tuple made of:
do_update_src_caps
def do_update_src_caps (self, caps):
#python implementation of the 'update_src_caps' virtual method
Lets subclasses update the Gst.Caps representing the src pad caps before usage. The result should end up in ret. Return GST_AGGREGATOR_FLOW_NEED_DATA (not introspectable) to indicate that the element needs more information (caps, a buffer, etc) to choose the correct caps. Should return ANY caps if the stream has not caps at all.
Parameters:
Returns a tuple made of:
GstAggregatorPad
GObject ╰──GInitiallyUnowned ╰──GstObject ╰──GstPad ╰──GstAggregatorPad
The implementation the GstPad to use with GstAggregator
Since : 1.14
Class structure
GstBase.AggregatorPadClass
Attributes
parent_class
(Gst.PadClass)
–
Since : 1.14
GstBase.AggregatorPadClass
Attributes
parent_class
(Gst.PadClass)
–
Since : 1.14
GstBase.AggregatorPad
GObject.Object ╰──GObject.InitiallyUnowned ╰──Gst.Object ╰──Gst.Pad ╰──GstBase.AggregatorPad
The implementation the GstPad to use with GstBase.Aggregator
Since : 1.14
GstBase.AggregatorPad
GObject.Object ╰──GObject.InitiallyUnowned ╰──Gst.Object ╰──Gst.Pad ╰──GstBase.AggregatorPad
The implementation the GstPad to use with GstBase.Aggregator
Since : 1.14
Methods
gst_aggregator_pad_drop_buffer
gboolean gst_aggregator_pad_drop_buffer (GstAggregatorPad * pad)
Drop the buffer currently queued in pad.
Parameters:
pad
–
the pad where to drop any pending buffer
TRUE if there was a buffer queued in pad, or FALSE if not.
GstBase.AggregatorPad.prototype.drop_buffer
function GstBase.AggregatorPad.prototype.drop_buffer(): {
// javascript wrapper for 'gst_aggregator_pad_drop_buffer'
}
Drop the buffer currently queued in pad.
Parameters:
the pad where to drop any pending buffer
TRUE if there was a buffer queued in pad, or FALSE if not.
GstBase.AggregatorPad.drop_buffer
def GstBase.AggregatorPad.drop_buffer (self):
#python wrapper for 'gst_aggregator_pad_drop_buffer'
Drop the buffer currently queued in pad.
Parameters:
the pad where to drop any pending buffer
TRUE if there was a buffer queued in pad, or FALSE if not.
gst_aggregator_pad_has_buffer
gboolean gst_aggregator_pad_has_buffer (GstAggregatorPad * pad)
This checks if a pad has a buffer available that will be returned by a call to gst_aggregator_pad_peek_buffer or gst_aggregator_pad_pop_buffer.
Parameters:
pad
–
the pad to check the buffer on
TRUE if the pad has a buffer available as the next thing.
Since : 1.14.1
GstBase.AggregatorPad.prototype.has_buffer
function GstBase.AggregatorPad.prototype.has_buffer(): {
// javascript wrapper for 'gst_aggregator_pad_has_buffer'
}
This checks if a pad has a buffer available that will be returned by a call to GstBase.AggregatorPad.prototype.peek_buffer or GstBase.AggregatorPad.prototype.pop_buffer.
Parameters:
the pad to check the buffer on
Since : 1.14.1
GstBase.AggregatorPad.has_buffer
def GstBase.AggregatorPad.has_buffer (self):
#python wrapper for 'gst_aggregator_pad_has_buffer'
This checks if a pad has a buffer available that will be returned by a call to GstBase.AggregatorPad.peek_buffer or GstBase.AggregatorPad.pop_buffer.
Parameters:
the pad to check the buffer on
Since : 1.14.1
gst_aggregator_pad_is_eos
gboolean gst_aggregator_pad_is_eos (GstAggregatorPad * pad)
Parameters:
pad
–
an aggregator pad
GstBase.AggregatorPad.prototype.is_eos
function GstBase.AggregatorPad.prototype.is_eos(): {
// javascript wrapper for 'gst_aggregator_pad_is_eos'
}
Parameters:
an aggregator pad
GstBase.AggregatorPad.is_eos
def GstBase.AggregatorPad.is_eos (self):
#python wrapper for 'gst_aggregator_pad_is_eos'
Parameters:
an aggregator pad
gst_aggregator_pad_is_inactive
gboolean gst_aggregator_pad_is_inactive (GstAggregatorPad * pad)
It is only valid to call this method from aggregate()
Parameters:
pad
–
an aggregator pad
Since : 1.20
GstBase.AggregatorPad.prototype.is_inactive
function GstBase.AggregatorPad.prototype.is_inactive(): {
// javascript wrapper for 'gst_aggregator_pad_is_inactive'
}
It is only valid to call this method from vfunc_aggregate()
Parameters:
an aggregator pad
Since : 1.20
GstBase.AggregatorPad.is_inactive
def GstBase.AggregatorPad.is_inactive (self):
#python wrapper for 'gst_aggregator_pad_is_inactive'
It is only valid to call this method from do_aggregate()
Parameters:
an aggregator pad
Since : 1.20
gst_aggregator_pad_peek_buffer
GstBuffer * gst_aggregator_pad_peek_buffer (GstAggregatorPad * pad)
Parameters:
pad
–
the pad to get buffer from
A reference to the buffer in pad or NULL if no buffer was queued. You should unref the buffer after usage.
GstBase.AggregatorPad.prototype.peek_buffer
function GstBase.AggregatorPad.prototype.peek_buffer(): {
// javascript wrapper for 'gst_aggregator_pad_peek_buffer'
}
Parameters:
the pad to get buffer from
A reference to the buffer in pad or NULL if no buffer was queued. You should unref the buffer after usage.
GstBase.AggregatorPad.peek_buffer
def GstBase.AggregatorPad.peek_buffer (self):
#python wrapper for 'gst_aggregator_pad_peek_buffer'
Parameters:
the pad to get buffer from
A reference to the buffer in pad or NULL if no buffer was queued. You should unref the buffer after usage.
gst_aggregator_pad_pop_buffer
GstBuffer * gst_aggregator_pad_pop_buffer (GstAggregatorPad * pad)
Steal the ref to the buffer currently queued in pad.
Parameters:
pad
–
the pad to get buffer from
The buffer in pad or NULL if no buffer was queued. You should unref the buffer after usage.
GstBase.AggregatorPad.prototype.pop_buffer
function GstBase.AggregatorPad.prototype.pop_buffer(): {
// javascript wrapper for 'gst_aggregator_pad_pop_buffer'
}
Steal the ref to the buffer currently queued in pad.
Parameters:
the pad to get buffer from
The buffer in pad or NULL if no buffer was queued. You should unref the buffer after usage.
GstBase.AggregatorPad.pop_buffer
def GstBase.AggregatorPad.pop_buffer (self):
#python wrapper for 'gst_aggregator_pad_pop_buffer'
Steal the ref to the buffer currently queued in pad.
Parameters:
the pad to get buffer from
The buffer in pad or NULL if no buffer was queued. You should unref the buffer after usage.
Signals
buffer-consumed
buffer_consumed_callback (GstAggregatorPad * self, GstBuffer * object, gpointer user_data)
Parameters:
self
–
object
–
user_data
–
Flags: Run First
buffer-consumed
function buffer_consumed_callback(self: GstBase.AggregatorPad, object: Gst.Buffer, user_data: Object): {
// javascript callback for the 'buffer-consumed' signal
}
Parameters:
Flags: Run First
buffer-consumed
def buffer_consumed_callback (self, object, *user_data):
#python callback for the 'buffer-consumed' signal
Parameters:
Flags: Run First
Properties
emit-signals
“emit-signals” gboolean
Enables the emission of signals such as buffer-consumed
Flags : Read / Write
Since : 1.16
emit-signals
“emit-signals” Number
Enables the emission of signals such as buffer-consumed
Flags : Read / Write
Since : 1.16
emit_signals
“self.props.emit_signals” bool
Enables the emission of signals such as buffer-consumed
Flags : Read / Write
Since : 1.16
Virtual Methods
flush
GstFlowReturn flush (GstAggregatorPad * aggpad, GstAggregator * aggregator)
Optional Called when the pad has received a flush stop, this is the place to flush any information specific to the pad, it allows for individual pads to be flushed while others might not be.
Parameters:
aggpad
–
aggregator
–
vfunc_flush
function vfunc_flush(aggpad: GstBase.AggregatorPad, aggregator: GstBase.Aggregator): {
// javascript implementation of the 'flush' virtual method
}
Optional Called when the pad has received a flush stop, this is the place to flush any information specific to the pad, it allows for individual pads to be flushed while others might not be.
Parameters:
do_flush
def do_flush (aggpad, aggregator):
#python implementation of the 'flush' virtual method
Optional Called when the pad has received a flush stop, this is the place to flush any information specific to the pad, it allows for individual pads to be flushed while others might not be.
Parameters:
skip_buffer
gboolean skip_buffer (GstAggregatorPad * aggpad, GstAggregator * aggregator, GstBuffer * buffer)
Optional Called before input buffers are queued in the pad, return TRUE if the buffer should be skipped.
Parameters:
aggpad
–
aggregator
–
buffer
–
vfunc_skip_buffer
function vfunc_skip_buffer(aggpad: GstBase.AggregatorPad, aggregator: GstBase.Aggregator, buffer: Gst.Buffer): {
// javascript implementation of the 'skip_buffer' virtual method
}
Optional Called before input buffers are queued in the pad, return true if the buffer should be skipped.
Parameters:
do_skip_buffer
def do_skip_buffer (aggpad, aggregator, buffer):
#python implementation of the 'skip_buffer' virtual method
Optional Called before input buffers are queued in the pad, return True if the buffer should be skipped.
Parameters:
Function Macros
GST_AGGREGATOR_CAST
#define GST_AGGREGATOR_CAST(obj) ((GstAggregator *)(obj))
GST_AGGREGATOR_PAD_CAST
#define GST_AGGREGATOR_PAD_CAST(obj) ((GstAggregatorPad *)(obj))
GST_AGGREGATOR_SRC_PAD
#define GST_AGGREGATOR_SRC_PAD(agg) (((GstAggregator *)(agg))->srcpad)
Convenience macro to access the source pad of GstAggregator
Parameters:
agg
–
Since : 1.6
Enumerations
GstAggregatorStartTimeSelection
Members
GST_AGGREGATOR_START_TIME_SELECTION_ZERO
(0)
–
Start at running time 0.
GST_AGGREGATOR_START_TIME_SELECTION_FIRST
(1)
–
Start at the running time of the first buffer that is received.
GST_AGGREGATOR_START_TIME_SELECTION_SET
(2)
–
Start at the running time
selected by the start-time
property.
Since : 1.18
GstBase.AggregatorStartTimeSelection
Members
GstBase.AggregatorStartTimeSelection.ZERO
(0)
–
Start at running time 0.
GstBase.AggregatorStartTimeSelection.FIRST
(1)
–
Start at the running time of the first buffer that is received.
GstBase.AggregatorStartTimeSelection.SET
(2)
–
Start at the running time
selected by the start-time
property.
Since : 1.18
GstBase.AggregatorStartTimeSelection
Members
GstBase.AggregatorStartTimeSelection.ZERO
(0)
–
Start at running time 0.
GstBase.AggregatorStartTimeSelection.FIRST
(1)
–
Start at the running time of the first buffer that is received.
GstBase.AggregatorStartTimeSelection.SET
(2)
–
Start at the running time
selected by the start-time
property.
Since : 1.18
Constants
GST_AGGREGATOR_FLOW_NEED_DATA
#define GST_AGGREGATOR_FLOW_NEED_DATA GST_FLOW_CUSTOM_ERROR
The results of the search are