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

- 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

## GstBase.Aggregator

    GObject.Object
        ╰──GObject.InitiallyUnowned
            ╰──Gst.Object
                ╰──Gst.Element
                    ╰──GstBase.Aggregator

Aggregator base class object structure.

### Members

`parent` (Gst.Element) –
No description available
`srcpad` (Gst.Pad) –

the aggregator's source pad

## GstBase.Aggregator

    GObject.Object
        ╰──GObject.InitiallyUnowned
            ╰──Gst.Object
                ╰──Gst.Element
                    ╰──GstBase.Aggregator

Aggregator base class object structure.

### Members

`parent` (Gst.Element) –
No description available
`srcpad` (Gst.Pad) –

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

`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][nullable]) –

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_ignore_inactive_pads

    gboolean
    gst_aggregator_get_ignore_inactive_pads (GstAggregator * self)

Parameters:

`self` –
No description available
Returns –

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:

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

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:

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

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

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 vfunc_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 do_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 ( [nullable][transfer: full]) –

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.

This function MUST only be called from the aggregate() function.

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.

This function MUST only be called from the vfunc_aggregate() function.

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.

This function MUST only be called from the do_aggregate() function.

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

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

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:

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

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.

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

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

`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

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

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

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

`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

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

`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

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

`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

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

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

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

`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

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

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

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

`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

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

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

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:

`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

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

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

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

`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

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

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

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

`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

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

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

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

`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

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

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

#### do_negotiate

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

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

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

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

`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

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

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

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:

`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

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

`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

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

`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

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

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

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

`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

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

`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

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

`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

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

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

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

`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

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

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

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

`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

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

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

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

`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

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

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

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

`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

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

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

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

`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

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

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

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

`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

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

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

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

`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

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

`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

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

`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

## GstBase.AggregatorPad

    GObject.Object
        ╰──GObject.InitiallyUnowned
            ╰──Gst.Object
                ╰──Gst.Pad
                    ╰──GstBase.AggregatorPad

The implementation the GstPad to use with GstBase.Aggregator

### Members

`parent` (Gst.Pad) –
No description available
`segment` (Gst.Segment) –

last segment received.

## GstBase.AggregatorPad

    GObject.Object
        ╰──GObject.InitiallyUnowned
            ╰──Gst.Object
                ╰──Gst.Pad
                    ╰──GstBase.AggregatorPad

The implementation the GstPad to use with GstBase.Aggregator

### Members

`parent` (Gst.Pad) –
No description available
`segment` (Gst.Segment) –

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

Returns –

TRUE if the pad is inactive, FALSE otherwise. See gst_aggregator_ignore_inactive_pads for more info.

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:

`pad` (GstBase.AggregatorPad) –

an aggregator pad

Returns (Number) –

true if the pad is inactive, false otherwise. See gst_aggregator_ignore_inactive_pads for more info.

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:

`pad` (GstBase.AggregatorPad) –

an aggregator pad

Returns (bool) –

True if the pad is inactive, False otherwise. See gst_aggregator_ignore_inactive_pads for more info.

Since : 1.20

#### gst_aggregator_pad_peek_buffer

    GstBuffer *
    gst_aggregator_pad_peek_buffer (GstAggregatorPad * pad)

Parameters:

`pad` –

the pad to get buffer from

Returns ( [nullable][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 ( [nullable][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

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

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

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

`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

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

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

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

`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