Class AudioBaseSink
- All Implemented Interfaces:
Proxy
- Direct Known Subclasses:
AudioSink
This is the base class for audio sinks. Subclasses need to implement the
::create_ringbuffer vmethod. This base class will then take care of
writing samples to the ringbuffer, synchronisation, clipping and flushing.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classGstAudioBaseSinkclass.static classAudioBaseSink.Builder<B extends AudioBaseSink.Builder<B>>Inner class implementing a builder pattern to construct a GObject with properties.Nested classes/interfaces inherited from class BaseSink
BaseSink.BaseSink$Impl, BaseSink.BaseSinkClassNested classes/interfaces inherited from class Element
Element.Element$Impl, Element.ElementClass, Element.NoMorePadsCallback, Element.PadAddedCallback, Element.PadRemovedCallbackNested classes/interfaces inherited from class GstObject
GstObject.DeepNotifyCallback, GstObject.Object$Impl, GstObject.ObjectClassNested classes/interfaces inherited from class InitiallyUnowned
InitiallyUnowned.InitiallyUnownedClassNested classes/interfaces inherited from class GObject
GObject.NotifyCallback -
Constructor Summary
ConstructorsConstructorDescriptionCreate a new AudioBaseSink.AudioBaseSink(MemorySegment address) Create a AudioBaseSink instance for the provided memory address. -
Method Summary
Modifier and TypeMethodDescriptionprotected AudioBaseSinkasParent()Return this instance as if it were its parent type.static AudioBaseSink.Builder<? extends AudioBaseSink.Builder> builder()AAudioBaseSink.Builderobject constructs aAudioBaseSinkwith the specified properties.@Nullable AudioRingBufferCreate and return theGstAudioRingBufferforsink.This function will call the ::create_ringbuffer vmethod and will set this AudioBaseSink as the parent of the returned buffer (see gst_object_set_parent()).Get the current alignment threshold, in nanoseconds, used bysink.Get the current discont wait, in nanoseconds, used bysink.longGet the current drift tolerance, in microseconds, used bysink.static MemoryLayoutThe memory layout of the native struct.booleanQueries whether this AudioBaseSink will provide a clock or not.Get the current slave method used bysink.static @Nullable TypegetType()Get the GType of the AudioBaseSink class.protected Bufferpayload data in a format suitable to write to the sink.voidInforms this base class that the audio output device has failed for some reason, causing a discontinuity (for example, because the device recovered from the error, but lost all contents of its ring buffer).voidsetAlignmentThreshold(ClockTime alignmentThreshold) Controls the sink's alignment threshold.voidsetCustomSlavingCallback(@Nullable AudioBaseSinkCustomSlavingCallback callback) Sets the custom slaving callback.voidsetDiscontWait(ClockTime discontWait) Controls how long the sink will wait before creating a discontinuity.voidsetDriftTolerance(long driftTolerance) Controls the sink's drift tolerance.voidsetProvideClock(boolean provide) Controls whether this AudioBaseSink will provide a clock or not.voidControls how clock slaving will be performed insink.Methods inherited from class BaseSink
activatePull, doPreroll, event, fixate, getBlocksize, getCaps, getDropOutOfSegment, getLastSample, getLatency, getMaxBitrate, getMaxLateness, getProcessingDeadline, getRenderDelay, getStats, getSync, getThrottleTime, getTimes, getTsOffset, isAsyncEnabled, isLastSampleEnabled, isQosEnabled, prepare, prepareList, preroll, proposeAllocation, query, queryLatency, render, renderList, setAsyncEnabled, setBlocksize, setCaps, setDropOutOfSegment, setLastSampleEnabled, setMaxBitrate, setMaxLateness, setProcessingDeadline, setQosEnabled, setRenderDelay, setSync, setThrottleTime, setTsOffset, start, stop, unlock, unlockStop, wait_, waitClock, waitEvent, waitPrerollMethods inherited from class Element
abortState, addPad, addPropertyDeepNotifyWatch, addPropertyNotifyWatch, callAsync, changeState, continueState, createAllPads, decorateStreamId, decorateStreamIdPrintf, emitNoMorePads, emitPadAdded, emitPadRemoved, foreachPad, foreachSinkPad, foreachSrcPad, getBaseTime, getBus, getClock, getCompatiblePad, getCompatiblePadTemplate, getContext, getContexts, getContextUnlocked, getCurrentClockTime, getCurrentRunningTime, getFactory, getMetadata, getPadTemplate, getPadTemplateList, getRequestPad, getStartTime, getState, getStaticPad, isLockedState, iteratePads, iterateSinkPads, iterateSrcPads, link, linkFiltered, linkMany, linkPads, linkPadsFiltered, linkPadsFull, linkPadsFull, lostState, makeFromUri, messageFull, messageFull, messageFullWithDetails, messageFullWithDetails, noMorePads, onNoMorePads, onPadAdded, onPadRemoved, padAdded, padRemoved, postMessage, provideClock, queryConvert, queryDuration, queryPosition, register, releasePad, releaseRequestPad, removePad, removePropertyNotifyWatch, requestPad, requestPadSimple, seek, seek, seekSimple, seekSimple, sendEvent, setBaseTime, setBus, setClock, setContext, setLockedState, setStartTime, setState, stateChanged, stateChangeReturnGetName, stateGetName, syncStateWithParent, typeSetSkipDocumentation, unlink, unlinkMany, unlinkPadsMethods inherited from class GstObject
addControlBinding, checkUniqueness, deepNotify, defaultDeepNotify, defaultError, emitDeepNotify, getControlBinding, getControlRate, getGValueArray, getName, getParent, getPathString, getValue, getValueArray, hasActiveControlBindings, hasAncestor, hasAsAncestor, hasAsParent, onDeepNotify, ref, refSink, removeControlBinding, replace, setControlBindingDisabled, setControlBindingsDisabled, setControlRate, setName, setParent, suggestNextSync, syncValues, unparent, unrefMethods inherited from class GObject
addToggleRef, addWeakPointer, bindProperty, bindProperty, bindProperty, bindPropertyFull, bindPropertyFull, bindPropertyWithClosures, bindPropertyWithClosures, compatControl, connect, connect, connect, constructed, disconnect, dispatchPropertiesChanged, dispose, dupData, dupQdata, emit, emitNotify, finalize_, forceFloating, freezeNotify, get, getData, getProperty, getProperty, getProperty, getQdata, getv, interfaceFindProperty, interfaceInstallProperty, interfaceListProperties, isFloating, newInstance, newInstance, newv, notify, notify, notifyByPspec, onNotify, refSink, removeToggleRef, removeWeakPointer, replaceData, replaceQdata, runDispose, set, setData, setDataFull, setProperty, setProperty, setProperty, setQdata, setQdataFull, setv, stealData, stealQdata, takeRef, thawNotify, watchClosure, weakRef, weakUnref, withPropertiesMethods inherited from class TypeInstance
callParent, callParent, cast, getPrivate, readGClass, writeGClassMethods inherited from class ProxyInstance
equals, handle, hashCode
-
Constructor Details
-
AudioBaseSink
Create a AudioBaseSink instance for the provided memory address.- Parameters:
address- the memory address of the native object
-
AudioBaseSink
public AudioBaseSink()Create a new AudioBaseSink.
-
-
Method Details
-
getType
-
getMemoryLayout
The memory layout of the native struct.- Returns:
- the memory layout
-
asParent
Return this instance as if it were its parent type. Comparable to the Javasuperkeyword, but ensures the parent typeclass is also used in native code. -
createRingbuffer
Create and return theGstAudioRingBufferforsink.This function will call the ::create_ringbuffer vmethod and will set this AudioBaseSink as the parent of the returned buffer (see gst_object_set_parent()).- Returns:
- The new ringbuffer of
sink.
-
getAlignmentThreshold
Get the current alignment threshold, in nanoseconds, used bysink.- Returns:
- The current alignment threshold used by
sink.
-
getDiscontWait
Get the current discont wait, in nanoseconds, used bysink.- Returns:
- The current discont wait used by
sink.
-
getDriftTolerance
public long getDriftTolerance()Get the current drift tolerance, in microseconds, used bysink.- Returns:
- The current drift tolerance used by
sink.
-
getProvideClock
public boolean getProvideClock()Queries whether this AudioBaseSink will provide a clock or not. See also gst_audio_base_sink_set_provide_clock.- Returns:
trueif this AudioBaseSink will provide a clock.
-
getSlaveMethod
Get the current slave method used bysink.- Returns:
- The current slave method used by
sink.
-
reportDeviceFailure
public void reportDeviceFailure()Informs this base class that the audio output device has failed for some reason, causing a discontinuity (for example, because the device recovered from the error, but lost all contents of its ring buffer). This function is typically called by derived classes, and is useful for the custom slave method.- Since:
- 1.6
-
setAlignmentThreshold
Controls the sink's alignment threshold.- Parameters:
alignmentThreshold- the new alignment threshold in nanoseconds
-
setCustomSlavingCallback
Sets the custom slaving callback. This callback will be invoked if the slave-method property is set to GST_AUDIO_BASE_SINK_SLAVE_CUSTOM and the audio sink receives and plays samples.
Setting the callback to NULL causes the sink to behave as if the GST_AUDIO_BASE_SINK_SLAVE_NONE method were used.
- Parameters:
callback- aGstAudioBaseSinkCustomSlavingCallback- Since:
- 1.6
-
setDiscontWait
Controls how long the sink will wait before creating a discontinuity.- Parameters:
discontWait- the new discont wait in nanoseconds
-
setDriftTolerance
public void setDriftTolerance(long driftTolerance) Controls the sink's drift tolerance.- Parameters:
driftTolerance- the new drift tolerance in microseconds
-
setProvideClock
public void setProvideClock(boolean provide) Controls whether this AudioBaseSink will provide a clock or not. Ifprovideistrue, gst_element_provide_clock() will return a clock that reflects the datarate ofsink.Ifprovideisfalse, gst_element_provide_clock() will return NULL.- Parameters:
provide- new state
-
setSlaveMethod
Controls how clock slaving will be performed insink.- Parameters:
method- the new slave method
-
payload
-
builder
AAudioBaseSink.Builderobject constructs aAudioBaseSinkwith the specified properties. Use the variousset...()methods to set properties, and finish construction withAudioBaseSink.Builder.build().- Returns:
- the builder object
-