- aggregate
GstFlowReturn function(GstAggregator* aggregator, int timeout) aggregate;
- clip
GstBuffer* function(GstAggregator* aggregator, GstAggregatorPad* aggregatorPad, GstBuffer* buf) clip;
- createNewPad
GstAggregatorPad* function(GstAggregator* self, GstPadTemplate* templ, const(char)* reqName, GstCaps* caps) createNewPad;
- decideAllocation
int function(GstAggregator* self, GstQuery* query) decideAllocation;
- finishBuffer
GstFlowReturn function(GstAggregator* aggregator, GstBuffer* buffer) finishBuffer;
- fixateSrcCaps
GstCaps* function(GstAggregator* self, GstCaps* caps) fixateSrcCaps;
- flush
GstFlowReturn function(GstAggregator* aggregator) flush;
- getNextTime
GstClockTime function(GstAggregator* aggregator) getNextTime;
- negotiatedSrcCaps
int function(GstAggregator* self, GstCaps* caps) negotiatedSrcCaps;
- proposeAllocation
int function(GstAggregator* self, GstAggregatorPad* pad, GstQuery* decideQuery, GstQuery* query) proposeAllocation;
- sinkEvent
int function(GstAggregator* aggregator, GstAggregatorPad* aggregatorPad, GstEvent* event) sinkEvent;
- sinkQuery
int function(GstAggregator* aggregator, GstAggregatorPad* aggregatorPad, GstQuery* query) sinkQuery;
- srcActivate
int function(GstAggregator* aggregator, GstPadMode mode, int active) srcActivate;
- srcEvent
int function(GstAggregator* aggregator, GstEvent* event) srcEvent;
- srcQuery
int function(GstAggregator* aggregator, GstQuery* query) srcQuery;
- start
int function(GstAggregator* aggregator) start;
- stop
int function(GstAggregator* aggregator) stop;
- updateSrcCaps
GstFlowReturn function(GstAggregator* self, GstCaps* caps, GstCaps** ret) updateSrcCaps;
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.