Ask the subclass to allocate a buffer with for offset and size. The default implementation will create a new buffer from the negotiated allocator.
Ask the subclass to create a buffer with offset and size. When the subclass returns GST_FLOW_OK, it MUST return a buffer of the requested size unless fewer bytes are available because an EOS condition is near. No buffer should be returned when the return value is different from GST_FLOW_OK. A return value of GST_FLOW_EOS signifies that the end of stream is reached. The default implementation will call #GstBaseSrcClass::alloc and then call #GstBaseSrcClass::fill.
configure the allocation query
Perform seeking on the resource to the indicated segment.
Override this to implement custom event handling.
Ask the subclass to fill the buffer with data for offset and size. The passed buffer is guaranteed to hold the requested amount of bytes.
Called during negotiation if caps need fixating. Implement instead of setting a fixate function on the source pad.
Called to get the caps to report
Return the total size of the resource, in the format set by gstbase.base_src.BaseSrc.setFormat.
Given a buffer, return the start and stop time when it should be pushed out. The base class will sync on the clock using these times.
Check if the source can seek
Negotiated the caps with the peer.
Element parent class
Prepare the #GstSegment that will be passed to the #GstBaseSrcClass::do_seek vmethod for executing a seek request. Sub-classes should override this if they support seeking in formats other than the configured native format. By default, it tries to convert the seek arguments to the configured native format and prepare a segment in that format.
Handle a requested query.
Notify subclass of changed output caps
Start processing. Subclasses should open resources and prepare to produce data. Implementation should call gstbase.base_src.BaseSrc.startComplete when the operation completes, either from the current thread or any other thread that finishes the start operation asynchronously.
Stop processing. Subclasses should use this to close resources.
Unlock any pending access to the resource. Subclasses should unblock any blocked function ASAP. In particular, any create() function in progress should be unblocked and should return GST_FLOW_FLUSHING. Any future #GstBaseSrcClass::create function call should also return GST_FLOW_FLUSHING until the #GstBaseSrcClass::unlock_stop function has been called.
Clear the previous unlock request. Subclasses should clear any state they set during #GstBaseSrcClass::unlock, such as clearing command queues.
Subclasses can override any of the available virtual methods or not, as needed. At the minimum, the @create method should be overridden to produce buffers.