# 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 GstAggregatorClass.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 GstAggregatorClass.sink_event() and GstAggregatorClass.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.

- 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.

- 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) –
No description available
`srcpad` (GstPad *) –

the aggregator's source pad

### 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) –
No description available

### 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) –
No description available

### 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) –
No description available

## GstAggregator

    GObject
        ╰──GInitiallyUnowned
            ╰──GstObject
                ╰──GstElement
                    ╰──GstAggregator

Aggregator base class object structure.

### Members

`parent` (GstElement) –
No description available
`srcpad` (GstPad) –

the aggregator's source pad

## GstAggregator

    GObject
        ╰──GInitiallyUnowned
            ╰──GstObject
                ╰──GstElement
                    ╰──GstAggregator

Aggregator base class object structure.

### Members

`parent` (GstElement) –
No description available
`srcpad` (GstPad) –

the aggregator's source pad

### 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.

Parameters:

`aggregator` –

The GstAggregator

`buffer` ( [transfer: full] ) –

the GstBuffer to push.

Returns –
No description available

#### 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.

Parameters:

`aggregator` ( GstBase.Aggregator ) –

The GstBase.Aggregator

`buffer` ( Gst.Buffer ) –

the Gst.Buffer to push.

Returns ( Gst.FlowReturn ) –
No description available

#### 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.

Parameters:

`aggregator` ( GstBase.Aggregator ) –

The GstBase.Aggregator

`buffer` ( Gst.Buffer ) –

the Gst.Buffer to push.

Returns ( Gst.FlowReturn ) –
No description available

#### 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.

Returns –
No description available

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.

Parameters:

`aggregator` ( GstBase.Aggregator ) –

The GstBase.Aggregator

`bufferlist` ( Gst.BufferList ) –

the Gst.BufferList to push.

Returns ( Gst.FlowReturn ) –
No description available

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.

Parameters:

`aggregator` ( GstBase.Aggregator ) –

The GstBase.Aggregator

`bufferlist` ( Gst.BufferList ) –

the Gst.BufferList to push.

Returns ( Gst.FlowReturn ) –
No description available

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` –

a GstAggregator

`allocator` ( [out] [allow-none] [transfer: full] ) –

the GstAllocator used

`params` ( [out] [allow-none] [transfer: full] ) –

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:

`self` ( GstBase.Aggregator ) –

a GstBase.Aggregator

#### 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:

`self` ( GstBase.Aggregator ) –

a GstBase.Aggregator

#### gst_aggregator_get_buffer_pool

    GstBufferPool *
    gst_aggregator_get_buffer_pool (GstAggregator * self)

Parameters:

`self` –

a GstAggregator

Returns ( [transfer: full] ) –

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:

`self` ( GstBase.Aggregator ) –

a GstBase.Aggregator

Returns ( Gst.BufferPool ) –

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:

`self` ( GstBase.Aggregator ) –

a GstBase.Aggregator

Returns ( Gst.BufferPool ) –

the instance of the Gst.BufferPool used by trans; free it after use it

#### 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` –

a GstAggregator

Returns –

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:

`self` ( GstBase.Aggregator ) –

a GstBase.Aggregator

Returns ( Number ) –

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:

`self` ( GstBase.Aggregator ) –

a GstBase.Aggregator

Returns ( int ) –

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` –

a GstAggregator

Returns –

TRUE if the negotiation succeeded, else FALSE.

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 negotiate() fails.

Parameters:

`self` ( GstBase.Aggregator ) –

a GstBase.Aggregator

Returns ( Number ) –

true if the negotiation succeeded, else false.

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 negotiate() fails.

Parameters:

`self` ( GstBase.Aggregator ) –

a GstBase.Aggregator

Returns ( bool ) –

True if the negotiation succeeded, else False.

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` –
No description available
`pad` –
No description available
Returns –

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:

`self` ( GstBase.Aggregator ) –
No description available
`pad` ( GstBase.AggregatorPad ) –
No description available
Returns ( Gst.Sample ) –

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:

`self` ( GstBase.Aggregator ) –
No description available
`pad` ( GstBase.AggregatorPad ) –
No description available
Returns ( Gst.Sample ) –

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_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.

Parameters:

`self` –
No description available
`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.

Parameters:

`self` ( GstBase.Aggregator ) –
No description available
`pts` ( Number ) –

The presentation timestamp of the next output buffer

`dts` ( Number ) –

The decoding timestamp of the next output buffer

`duration` ( Number ) –

The duration of the next output buffer

`info` ( Gst.Structure ) –

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.

Parameters:

`self` ( GstBase.Aggregator ) –
No description available
`pts` ( int ) –

The presentation timestamp of the next output buffer

`dts` ( int ) –

The decoding timestamp of the next output buffer

`duration` ( int ) –

The duration of the next output buffer

`info` ( Gst.Structure ) –

a Gst.Structure containing additional information

Since : 1.18

#### 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.

Parameters:

`self` –

a GstAggregator

`min_latency` –

minimum latency

`max_latency` –

maximum latency

#### 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.

Parameters:

`self` ( GstBase.Aggregator ) –

a GstBase.Aggregator

`min_latency` ( Number ) –

minimum latency

`max_latency` ( Number ) –

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.

Parameters:

`self` ( GstBase.Aggregator ) –

a GstBase.Aggregator

`min_latency` ( int ) –

minimum latency

`max_latency` ( int ) –

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.

Parameters:

`self` –

The GstAggregator

`caps` –

The GstCaps to set 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:

`self` ( GstBase.Aggregator ) –

The GstBase.Aggregator

`caps` ( Gst.Caps ) –

The Gst.Caps to set on the src pad.

#### 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:

`self` ( GstBase.Aggregator ) –

The GstBase.Aggregator

`caps` ( Gst.Caps ) –

The Gst.Caps to set on the src pad.

#### 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` –

A GstAggregator

Returns –

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 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:

`self` ( GstBase.Aggregator ) –

A GstBase.Aggregator

Returns ( Number ) –

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 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:

`self` ( GstBase.Aggregator ) –

A GstBase.Aggregator

Returns ( int ) –

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` –
No description available
`segment` –
No description available

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:

`self` ( GstBase.Aggregator ) –
No description available
`segment` ( Gst.Segment ) –
No description available

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:

`self` ( GstBase.Aggregator ) –
No description available
`segment` ( Gst.Segment ) –
No description available

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` –
No description available
`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` –
No description available

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:

`self` ( GstBase.Aggregator ) –
No description available
`segment` ( Gst.Segment ) –

The Gst.Segment the next output buffer is part of

`pts` ( Number ) –

The presentation timestamp of the next output buffer

`dts` ( Number ) –

The decoding timestamp of the next output buffer

`duration` ( Number ) –

The duration of the next output buffer

`info` ( Gst.Structure ) –

a Gst.Structure containing additional information

`user_data` ( Object ) –
No description available

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:

`self` ( GstBase.Aggregator ) –
No description available
`segment` ( Gst.Segment ) –

The Gst.Segment the next output buffer is part of

`pts` ( int ) –

The presentation timestamp of the next output buffer

`dts` ( int ) –

The decoding timestamp of the next output buffer

`duration` ( int ) –

The duration of the next output buffer

`info` ( Gst.Structure ) –

a Gst.Structure containing additional information

`user_data` ( variadic ) –
No description available

Flags: Run First

Since : 1.18

### Properties

#### emit-signals

    “emit-signals” gboolean

Enables the emission of signals such as samples-selected

Flags : Read / Write

#### emit-signals

    “emit-signals” Number

Enables the emission of signals such as samples-selected

Flags : Read / Write

#### emit_signals

    “self.props.emit_signals” bool

Enables the emission of signals such as samples-selected

Flags : Read / Write

#### latency

    “latency” guint64

Flags : Read / Write

#### latency

    “latency” Number

Flags : Read / Write

#### latency

    “self.props.latency” int

Flags : Read / Write

#### 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

#### 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

#### 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

#### start-time

    “start-time” guint64

Flags : Read / Write

#### start-time

    “start-time” Number

Flags : Read / Write

#### start_time

    “self.props.start_time” int

Flags : Read / Write

#### start-time-selection

    “start-time-selection” GstAggregatorStartTimeSelection *

Flags : Read / Write

#### 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` –
No description available
`timeout` –
No description available
Returns –
No description available

#### aggregate

    function 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 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` ( GstBase.Aggregator ) –
No description available
`timeout` ( Number ) –
No description available
Returns ( Gst.FlowReturn ) –
No description available

#### aggregate

    def 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 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` ( GstBase.Aggregator ) –
No description available
`timeout` ( bool ) –
No description available
Returns ( Gst.FlowReturn ) –
No description available

#### 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` –
No description available
`aggregator_pad` –
No description available
`buf` –
No description available
Returns –
No description available

#### clip

    function 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:

`aggregator` ( GstBase.Aggregator ) –
No description available
`aggregator_pad` ( GstBase.AggregatorPad ) –
No description available
`buf` ( Gst.Buffer ) –
No description available
Returns ( Gst.Buffer ) –
No description available

#### clip

    def 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:

`aggregator` ( GstBase.Aggregator ) –
No description available
`aggregator_pad` ( GstBase.AggregatorPad ) –
No description available
`buf` ( Gst.Buffer ) –
No description available
Returns ( Gst.Buffer ) –
No description available

#### 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` –
No description available
`templ` –
No description available
`req_name` –
No description available
`caps` –
No description available
Returns –
No description available

#### 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` –
No description available
`query` –
No description available
Returns –
No description available

#### decide_allocation

    function 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:

`self` ( GstBase.Aggregator ) –
No description available
`query` ( Gst.Query ) –
No description available
Returns ( Number ) –
No description available

#### decide_allocation

    def 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:

`self` ( GstBase.Aggregator ) –
No description available
`query` ( Gst.Query ) –
No description available
Returns ( bool ) –
No description available

#### 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` –
No description available
`buffer` –
No description available
Returns –
No description available

#### finish_buffer

    function finish_buffer(aggregator: GstBase.Aggregator, buffer: Gst.Buffer): {
        // javascript implementation of the 'finish_buffer' virtual method
    }

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` ( GstBase.Aggregator ) –
No description available
`buffer` ( Gst.Buffer ) –
No description available
Returns ( Gst.FlowReturn ) –
No description available

#### finish_buffer

    def finish_buffer (aggregator, buffer):
        #python implementation of the 'finish_buffer' virtual method

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` ( GstBase.Aggregator ) –
No description available
`buffer` ( Gst.Buffer ) –
No description available
Returns ( Gst.FlowReturn ) –
No description available

#### finish_buffer_list

    GstFlowReturn
    finish_buffer_list (GstAggregator * aggregator,
                        GstBufferList * bufferlist)

Optional. Equivalent of finish_buffer for buffer lists.

Parameters:

`aggregator` –
No description available
`bufferlist` –
No description available
Returns –
No description available

Since : 1.18

#### finish_buffer_list

    function finish_buffer_list(aggregator: GstBase.Aggregator, bufferlist: Gst.BufferList): {
        // javascript implementation of the 'finish_buffer_list' virtual method
    }

Optional. Equivalent of finish_buffer for buffer lists.

Parameters:

`aggregator` ( GstBase.Aggregator ) –
No description available
`bufferlist` ( Gst.BufferList ) –
No description available
Returns ( Gst.FlowReturn ) –
No description available

Since : 1.18

#### finish_buffer_list

    def finish_buffer_list (aggregator, bufferlist):
        #python implementation of the 'finish_buffer_list' virtual method

Optional. Equivalent of finish_buffer for buffer lists.

Parameters:

`aggregator` ( GstBase.Aggregator ) –
No description available
`bufferlist` ( Gst.BufferList ) –
No description available
Returns ( Gst.FlowReturn ) –
No description available

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` –
No description available
`caps` –
No description available
Returns –
No description available

#### fixate_src_caps

    function 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:

`self` ( GstBase.Aggregator ) –
No description available
`caps` ( Gst.Caps ) –
No description available
Returns ( Gst.Caps ) –
No description available

#### fixate_src_caps

    def 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:

`self` ( GstBase.Aggregator ) –
No description available
`caps` ( Gst.Caps ) –
No description available
Returns ( Gst.Caps ) –
No description available

#### 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` –
No description available
Returns –
No description available

#### flush

    function 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 GstAggregatorPad->flush.

Parameters:

`aggregator` ( GstBase.Aggregator ) –
No description available
Returns ( Gst.FlowReturn ) –
No description available

#### flush

    def 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 GstAggregatorPad->flush.

Parameters:

`aggregator` ( GstBase.Aggregator ) –
No description available
Returns ( Gst.FlowReturn ) –
No description available

#### 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` –
No description available
Returns –
No description available

#### get_next_time

    function 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:

`aggregator` ( GstBase.Aggregator ) –
No description available
Returns ( Number ) –
No description available

#### get_next_time

    def 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:

`aggregator` ( GstBase.Aggregator ) –
No description available
Returns ( int ) –
No description available

#### negotiate

    gboolean
    negotiate (GstAggregator * self)

Optional. Negotiate the caps with the peer (Since: 1.18).

Parameters:

`self` –
No description available
Returns –
No description available

#### negotiate

    function negotiate(self: GstBase.Aggregator): {
        // javascript implementation of the 'negotiate' virtual method
    }

Optional. Negotiate the caps with the peer (Since: 1.18).

Parameters:

`self` ( GstBase.Aggregator ) –
No description available
Returns ( Number ) –
No description available

#### negotiate

    def negotiate (self):
        #python implementation of the 'negotiate' virtual method

Optional. Negotiate the caps with the peer (Since: 1.18).

Parameters:

`self` ( GstBase.Aggregator ) –
No description available
Returns ( bool ) –
No description available

#### negotiated_src_caps

    gboolean
    negotiated_src_caps (GstAggregator * self,
                         GstCaps * caps)

Optional. Notifies subclasses what caps format has been negotiated

Parameters:

`self` –
No description available
`caps` –
No description available
Returns –
No description available

#### negotiated_src_caps

    function 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:

`self` ( GstBase.Aggregator ) –
No description available
`caps` ( Gst.Caps ) –
No description available
Returns ( Number ) –
No description available

#### negotiated_src_caps

    def negotiated_src_caps (self, caps):
        #python implementation of the 'negotiated_src_caps' virtual method

Optional. Notifies subclasses what caps format has been negotiated

Parameters:

`self` ( GstBase.Aggregator ) –
No description available
`caps` ( Gst.Caps ) –
No description available
Returns ( bool ) –
No description available

#### peek_next_sample

    GstSample *
    peek_next_sample (GstAggregator * aggregator,
                      GstAggregatorPad * aggregator_pad)

See gst_aggregator_peek_next_sample.

Parameters:

`aggregator` –
No description available
`aggregator_pad` –
No description available
Returns –
No description available

Since : 1.18

#### peek_next_sample

    function peek_next_sample(aggregator: GstBase.Aggregator, aggregator_pad: GstBase.AggregatorPad): {
        // javascript implementation of the 'peek_next_sample' virtual method
    }

See gst_aggregator_peek_next_sample.

Parameters:

`aggregator` ( GstBase.Aggregator ) –
No description available
`aggregator_pad` ( GstBase.AggregatorPad ) –
No description available
Returns ( Gst.Sample ) –
No description available

Since : 1.18

#### peek_next_sample

    def peek_next_sample (aggregator, aggregator_pad):
        #python implementation of the 'peek_next_sample' virtual method

See gst_aggregator_peek_next_sample.

Parameters:

`aggregator` ( GstBase.Aggregator ) –
No description available
`aggregator_pad` ( GstBase.AggregatorPad ) –
No description available
Returns ( Gst.Sample ) –
No description available

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` –
No description available
`pad` –
No description available
`decide_query` –
No description available
`query` –
No description available
Returns –
No description available

#### propose_allocation

    function 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:

`self` ( GstBase.Aggregator ) –
No description available
`pad` ( GstBase.AggregatorPad ) –
No description available
`decide_query` ( Gst.Query ) –
No description available
`query` ( Gst.Query ) –
No description available
Returns ( Number ) –
No description available

#### propose_allocation

    def 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:

`self` ( GstBase.Aggregator ) –
No description available
`pad` ( GstBase.AggregatorPad ) –
No description available
`decide_query` ( Gst.Query ) –
No description available
`query` ( Gst.Query ) –
No description available
Returns ( bool ) –
No description available

#### 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` –
No description available
`aggregator_pad` –
No description available
`event` –
No description available
Returns –
No description available

#### sink_event

    function 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:

`aggregator` ( GstBase.Aggregator ) –
No description available
`aggregator_pad` ( GstBase.AggregatorPad ) –
No description available
`event` ( Gst.Event ) –
No description available
Returns ( Number ) –
No description available

#### sink_event

    def 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:

`aggregator` ( GstBase.Aggregator ) –
No description available
`aggregator_pad` ( GstBase.AggregatorPad ) –
No description available
`event` ( Gst.Event ) –
No description available
Returns ( bool ) –
No description available

#### 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` –
No description available
`aggregator_pad` –
No description available
`event` –
No description available
Returns –
No description available

#### sink_event_pre_queue

    function 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:

`aggregator` ( GstBase.Aggregator ) –
No description available
`aggregator_pad` ( GstBase.AggregatorPad ) –
No description available
`event` ( Gst.Event ) –
No description available
Returns ( Gst.FlowReturn ) –
No description available

#### sink_event_pre_queue

    def 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:

`aggregator` ( GstBase.Aggregator ) –
No description available
`aggregator_pad` ( GstBase.AggregatorPad ) –
No description available
`event` ( Gst.Event ) –
No description available
Returns ( Gst.FlowReturn ) –
No description available

#### 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` –
No description available
`aggregator_pad` –
No description available
`query` –
No description available
Returns –
No description available

#### sink_query

    function 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:

`aggregator` ( GstBase.Aggregator ) –
No description available
`aggregator_pad` ( GstBase.AggregatorPad ) –
No description available
`query` ( Gst.Query ) –
No description available
Returns ( Number ) –
No description available

#### sink_query

    def 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:

`aggregator` ( GstBase.Aggregator ) –
No description available
`aggregator_pad` ( GstBase.AggregatorPad ) –
No description available
`query` ( Gst.Query ) –
No description available
Returns ( bool ) –
No description available

#### 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` –
No description available
`aggregator_pad` –
No description available
`query` –
No description available
Returns –
No description available

#### sink_query_pre_queue

    function 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:

`aggregator` ( GstBase.Aggregator ) –
No description available
`aggregator_pad` ( GstBase.AggregatorPad ) –
No description available
`query` ( Gst.Query ) –
No description available
Returns ( Number ) –
No description available

#### sink_query_pre_queue

    def 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:

`aggregator` ( GstBase.Aggregator ) –
No description available
`aggregator_pad` ( GstBase.AggregatorPad ) –
No description available
`query` ( Gst.Query ) –
No description available
Returns ( bool ) –
No description available

#### 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` –
No description available
`mode` –
No description available
`active` –
No description available
Returns –
No description available

#### src_activate

    function 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:

`aggregator` ( GstBase.Aggregator ) –
No description available
`mode` ( Gst.PadMode ) –
No description available
`active` ( Number ) –
No description available
Returns ( Number ) –
No description available

#### src_activate

    def 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:

`aggregator` ( GstBase.Aggregator ) –
No description available
`mode` ( Gst.PadMode ) –
No description available
`active` ( bool ) –
No description available
Returns ( bool ) –
No description available

#### 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` –
No description available
`event` –
No description available
Returns –
No description available

#### src_event

    function 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:

`aggregator` ( GstBase.Aggregator ) –
No description available
`event` ( Gst.Event ) –
No description available
Returns ( Number ) –
No description available

#### src_event

    def 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:

`aggregator` ( GstBase.Aggregator ) –
No description available
`event` ( Gst.Event ) –
No description available
Returns ( bool ) –
No description available

#### 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` –
No description available
`query` –
No description available
Returns –
No description available

#### src_query

    function 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:

`aggregator` ( GstBase.Aggregator ) –
No description available
`query` ( Gst.Query ) –
No description available
Returns ( Number ) –
No description available

#### src_query

    def 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:

`aggregator` ( GstBase.Aggregator ) –
No description available
`query` ( Gst.Query ) –
No description available
Returns ( bool ) –
No description available

#### 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` –
No description available
Returns –
No description available

#### start

    function 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:

`aggregator` ( GstBase.Aggregator ) –
No description available
Returns ( Number ) –
No description available

#### start

    def 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:

`aggregator` ( GstBase.Aggregator ) –
No description available
Returns ( bool ) –
No description available

#### 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` –
No description available
Returns –
No description available

#### stop

    function 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:

`aggregator` ( GstBase.Aggregator ) –
No description available
Returns ( Number ) –
No description available

#### stop

    def 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:

`aggregator` ( GstBase.Aggregator ) –
No description available
Returns ( bool ) –
No description available

#### 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` –
No description available
`caps` –
No description available
`ret` –
No description available
Returns –
No description available

#### update_src_caps

    function update_src_caps(self: GstBase.Aggregator, caps: Gst.Caps): {
        // javascript implementation of the 'update_src_caps' virtual method
    }

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` ( GstBase.Aggregator ) –
No description available
`caps` ( Gst.Caps ) –
No description available

Returns a tuple made of:

( Gst.FlowReturn ) –
No description available
`ret` ( Gst.Caps ) –
No description available

#### update_src_caps

    def update_src_caps (self, caps):
        #python implementation of the 'update_src_caps' virtual method

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` ( GstBase.Aggregator ) –
No description available
`caps` ( Gst.Caps ) –
No description available

Returns a tuple made of:

( Gst.FlowReturn ) –
No description available
`ret` ( Gst.Caps ) –
No description available

## GstAggregatorPad

    GObject
        ╰──GInitiallyUnowned
            ╰──GstObject
                ╰──GstPad
                    ╰──GstAggregatorPad

The implementation the GstPad to use with GstAggregator

### Members

`parent` (GstPad) –
No description available
`segment` (GstSegment) –

last segment received.

### Class structure

#### GstAggregatorPadClass

##### Fields

`parent_class` (GstPadClass) –
No description available

### GstBase.AggregatorPadClass

##### Attributes

`parent_class` (Gst.PadClass) –
No description available

### GstBase.AggregatorPadClass

##### Attributes

`parent_class` (Gst.PadClass) –
No description available

## GstAggregatorPad

    GObject
        ╰──GInitiallyUnowned
            ╰──GstObject
                ╰──GstPad
                    ╰──GstAggregatorPad

The implementation the GstPad to use with GstAggregator

### Members

`parent` (GstPad) –
No description available
`segment` (GstSegment) –

last segment received.

## GstAggregatorPad

    GObject
        ╰──GInitiallyUnowned
            ╰──GstObject
                ╰──GstPad
                    ╰──GstAggregatorPad

The implementation the GstPad to use with GstAggregator

### Members

`parent` (GstPad) –
No description available
`segment` (GstSegment) –

last segment received.

### 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

Returns –

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:

`pad` ( GstBase.AggregatorPad ) –

the pad where to drop any pending buffer

Returns ( Number ) –

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:

`pad` ( GstBase.AggregatorPad ) –

the pad where to drop any pending buffer

Returns ( bool ) –

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

Returns –

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:

`pad` ( GstBase.AggregatorPad ) –

the pad to check the buffer on

Returns ( Number ) –

true if the pad has a buffer available as the next thing.

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:

`pad` ( GstBase.AggregatorPad ) –

the pad to check the buffer on

Returns ( bool ) –

True if the pad has a buffer available as the next thing.

Since : 1.14.1

#### gst_aggregator_pad_is_eos

    gboolean
    gst_aggregator_pad_is_eos (GstAggregatorPad * pad)

Parameters:

`pad` –

an aggregator pad

Returns –

TRUE if the pad is EOS, otherwise FALSE.

#### GstBase.AggregatorPad.prototype.is_eos

    function GstBase.AggregatorPad.prototype.is_eos(): {
        // javascript wrapper for 'gst_aggregator_pad_is_eos'
    }

Parameters:

`pad` ( GstBase.AggregatorPad ) –

an aggregator pad

Returns ( Number ) –

true if the pad is EOS, otherwise false.

#### GstBase.AggregatorPad.is_eos

    def GstBase.AggregatorPad.is_eos (self):
        #python wrapper for 'gst_aggregator_pad_is_eos'

Parameters:

`pad` ( GstBase.AggregatorPad ) –

an aggregator pad

Returns ( bool ) –

True if the pad is EOS, otherwise False.

#### gst_aggregator_pad_peek_buffer

    GstBuffer *
    gst_aggregator_pad_peek_buffer (GstAggregatorPad * pad)

Parameters:

`pad` –

the pad to get buffer from

Returns ( [transfer: full] ) –

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:

`pad` ( GstBase.AggregatorPad ) –

the pad to get buffer from

Returns ( Gst.Buffer ) –

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:

`pad` ( GstBase.AggregatorPad ) –

the pad to get buffer from

Returns ( Gst.Buffer ) –

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

Returns ( [transfer: full] ) –

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:

`pad` ( GstBase.AggregatorPad ) –

the pad to get buffer from

Returns ( Gst.Buffer ) –

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:

`pad` ( GstBase.AggregatorPad ) –

the pad to get buffer from

Returns ( Gst.Buffer ) –

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` –
No description available
`object` –
No description available
`user_data` –
No description available

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:

`self` ( GstBase.AggregatorPad ) –
No description available
`object` ( Gst.Buffer ) –
No description available
`user_data` ( Object ) –
No description available

Flags: Run First

#### buffer-consumed

    def buffer_consumed_callback (self, object, *user_data):
        #python callback for the 'buffer-consumed' signal

Parameters:

`self` ( GstBase.AggregatorPad ) –
No description available
`object` ( Gst.Buffer ) –
No description available
`user_data` ( variadic ) –
No description available

Flags: Run First

### Properties

#### emit-signals

    “emit-signals” gboolean

Enables the emission of signals such as buffer-consumed

Flags : Read / Write

#### emit-signals

    “emit-signals” Number

Enables the emission of signals such as buffer-consumed

Flags : Read / Write

#### emit_signals

    “self.props.emit_signals” bool

Enables the emission of signals such as buffer-consumed

Flags : Read / Write

### 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` –
No description available
`aggregator` –
No description available
Returns –
No description available

#### flush

    function 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:

`aggpad` ( GstBase.AggregatorPad ) –
No description available
`aggregator` ( GstBase.Aggregator ) –
No description available
Returns ( Gst.FlowReturn ) –
No description available

#### flush

    def 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:

`aggpad` ( GstBase.AggregatorPad ) –
No description available
`aggregator` ( GstBase.Aggregator ) –
No description available
Returns ( Gst.FlowReturn ) –
No description available

#### 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` –
No description available
`aggregator` –
No description available
`buffer` –
No description available
Returns –
No description available

#### skip_buffer

    function 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:

`aggpad` ( GstBase.AggregatorPad ) –
No description available
`aggregator` ( GstBase.Aggregator ) –
No description available
`buffer` ( Gst.Buffer ) –
No description available
Returns ( Number ) –
No description available

#### skip_buffer

    def 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:

`aggpad` ( GstBase.AggregatorPad ) –
No description available
`aggregator` ( GstBase.Aggregator ) –
No description available
`buffer` ( Gst.Buffer ) –
No description available
Returns ( bool ) –
No description available

## 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` –

a GstAggregator

## 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.

### 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.

### 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.

## Constants

### GST_AGGREGATOR_FLOW_NEED_DATA

    #define GST_AGGREGATOR_FLOW_NEED_DATA             GST_FLOW_CUSTOM_ERROR

The results of the search are