Class Aggregator.AggregatorClass

All Implemented Interfaces:
Proxy
Direct Known Subclasses:
AudioAggregator.AudioAggregatorClass, VideoAggregator.VideoAggregatorClass
Enclosing class:
Aggregator

public static class Aggregator.AggregatorClass extends Element.ElementClass

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.

Since:
1.14
  • Constructor Details

    • AggregatorClass

      public AggregatorClass(MemorySegment address)
      Create a AggregatorClass proxy instance for the provided memory address.
      Parameters:
      address - the memory address of the native object
  • Method Details

    • getMemoryLayout

      public static MemoryLayout getMemoryLayout()
      The memory layout of the native struct.
      Returns:
      the memory layout
    • overrideFlush

      public void overrideFlush(Arena arena, @Nullable Method method)
      Override virtual method flush.
      Parameters:
      method - the method to invoke
    • overrideClip

      public void overrideClip(Arena arena, @Nullable Method method)
      Override virtual method clip.
      Parameters:
      method - the method to invoke
    • overrideFinishBuffer

      public void overrideFinishBuffer(Arena arena, @Nullable Method method)
      Override virtual method finish_buffer.
      Parameters:
      method - the method to invoke
    • overrideSinkEvent

      public void overrideSinkEvent(Arena arena, @Nullable Method method)
      Override virtual method sink_event.
      Parameters:
      method - the method to invoke
    • overrideSinkQuery

      public void overrideSinkQuery(Arena arena, @Nullable Method method)
      Override virtual method sink_query.
      Parameters:
      method - the method to invoke
    • overrideSrcEvent

      public void overrideSrcEvent(Arena arena, @Nullable Method method)
      Override virtual method src_event.
      Parameters:
      method - the method to invoke
    • overrideSrcQuery

      public void overrideSrcQuery(Arena arena, @Nullable Method method)
      Override virtual method src_query.
      Parameters:
      method - the method to invoke
    • overrideSrcActivate

      public void overrideSrcActivate(Arena arena, @Nullable Method method)
      Override virtual method src_activate.
      Parameters:
      method - the method to invoke
    • overrideAggregate

      public void overrideAggregate(Arena arena, @Nullable Method method)
      Override virtual method aggregate.
      Parameters:
      method - the method to invoke
    • overrideStop

      public void overrideStop(Arena arena, @Nullable Method method)
      Override virtual method stop.
      Parameters:
      method - the method to invoke
    • overrideStart

      public void overrideStart(Arena arena, @Nullable Method method)
      Override virtual method start.
      Parameters:
      method - the method to invoke
    • overrideGetNextTime

      public void overrideGetNextTime(Arena arena, @Nullable Method method)
      Override virtual method get_next_time.
      Parameters:
      method - the method to invoke
    • overrideCreateNewPad

      public void overrideCreateNewPad(Arena arena, @Nullable Method method)
      Override virtual method create_new_pad.
      Parameters:
      method - the method to invoke
    • overrideUpdateSrcCaps

      public void overrideUpdateSrcCaps(Arena arena, @Nullable Method method)
      Override virtual method update_src_caps.
      Parameters:
      method - the method to invoke
    • overrideFixateSrcCaps

      public void overrideFixateSrcCaps(Arena arena, @Nullable Method method)
      Override virtual method fixate_src_caps.
      Parameters:
      method - the method to invoke
    • overrideNegotiatedSrcCaps

      public void overrideNegotiatedSrcCaps(Arena arena, @Nullable Method method)
      Override virtual method negotiated_src_caps.
      Parameters:
      method - the method to invoke
    • overrideDecideAllocation

      public void overrideDecideAllocation(Arena arena, @Nullable Method method)
      Override virtual method decide_allocation.
      Parameters:
      method - the method to invoke
    • overrideProposeAllocation

      public void overrideProposeAllocation(Arena arena, @Nullable Method method)
      Override virtual method propose_allocation.
      Parameters:
      method - the method to invoke
    • overrideNegotiate

      public void overrideNegotiate(Arena arena, @Nullable Method method)
      Override virtual method negotiate.
      Parameters:
      method - the method to invoke
    • overrideSinkEventPreQueue

      public void overrideSinkEventPreQueue(Arena arena, @Nullable Method method)
      Override virtual method sink_event_pre_queue.
      Parameters:
      method - the method to invoke
    • overrideSinkQueryPreQueue

      public void overrideSinkQueryPreQueue(Arena arena, @Nullable Method method)
      Override virtual method sink_query_pre_queue.
      Parameters:
      method - the method to invoke
    • overrideFinishBufferList

      public void overrideFinishBufferList(Arena arena, @Nullable Method method)
      Override virtual method finish_buffer_list.
      Parameters:
      method - the method to invoke
    • overridePeekNextSample

      public void overridePeekNextSample(Arena arena, @Nullable Method method)
      Override virtual method peek_next_sample.
      Parameters:
      method - the method to invoke