Class AudioSink
- All Implemented Interfaces:
Proxy
This is the most simple base class for audio sinks that only requires subclasses to implement a set of simple functions:
-
open():Open the device. -
prepare():Configure the device with the specified format. -
write():Write samples to the device. -
reset():Unblock writes and flush the device. -
delay():Get the number of samples written but not yet played by the device. -
unprepare():Undo operations done by prepare. -
close():Close the device.
All scheduling of samples and timestamps is done in this base class
together with GstAudioBaseSink using a default implementation of a
GstAudioRingBuffer that uses threads.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classstatic classAudioSink.Builder<B extends AudioSink.Builder<B>>Inner class implementing a builder pattern to construct a GObject with properties.Nested classes/interfaces inherited from class AudioBaseSink
AudioBaseSink.AudioBaseSinkClassNested 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 AudioSink.AudioSink(MemorySegment address) Create a AudioSink instance for the provided memory address. -
Method Summary
Modifier and TypeMethodDescriptionprotected AudioSinkasParent()Return this instance as if it were its parent type.static AudioSink.Builder<? extends AudioSink.Builder> builder()AAudioSink.Builderobject constructs aAudioSinkwith the specified properties.protected booleanclose()Close the device.protected intdelay()Return how many frames are still in the device.static MemoryLayoutThe memory layout of the native struct.static @Nullable TypegetType()Get the GType of the AudioSink class.protected booleanopen()Open the device.protected voidpause()Pause the device and unblock write as fast as possible.protected booleanprepare(AudioRingBufferSpec spec) Prepare the device to operate with the specified parameters.protected voidreset()Returns as quickly as possible from a write and flush any pending samples from the device.protected voidresume()Resume the device.protected booleanUndo operations done in prepare.protected intwrite(@Nullable byte @Nullable [] data) Write samples to the device.Methods inherited from class AudioBaseSink
createRingbuffer, getAlignmentThreshold, getDiscontWait, getDriftTolerance, getProvideClock, getSlaveMethod, payload, reportDeviceFailure, setAlignmentThreshold, setCustomSlavingCallback, setDiscontWait, setDriftTolerance, setProvideClock, setSlaveMethodMethods 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
-
AudioSink
Create a AudioSink instance for the provided memory address.- Parameters:
address- the memory address of the native object
-
AudioSink
public AudioSink()Create a new AudioSink.
-
-
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.- Overrides:
asParentin classAudioBaseSink- Returns:
- the instance as if it were its parent type
-
close
protected boolean close()Close the device. -
delay
protected int delay()Return how many frames are still in the device. Participates in computing the time for audio clocks and drives the synchronisation. -
open
protected boolean open()Open the device. No configuration needs to be done at this point. This function is also used to check if the device is available. -
pause
protected void pause()Pause the device and unblock write as fast as possible. For retro compatibility, the audio sink will fallback to calling reset if this vmethod is not provided. Since: 1.18 -
prepare
Prepare the device to operate with the specified parameters. -
reset
protected void reset()Returns as quickly as possible from a write and flush any pending samples from the device. This vmethod is deprecated. Please provide pause and stop instead. -
resume
protected void resume()Resume the device. Since: 1.18 -
unprepare
protected boolean unprepare()Undo operations done in prepare. -
write
protected int write(@Nullable byte @Nullable [] data) Write samples to the device.- Parameters:
data- the sample data
-
builder
AAudioSink.Builderobject constructs aAudioSinkwith the specified properties. Use the variousset...()methods to set properties, and finish construction withAudioSink.Builder.build().- Returns:
- the builder object
-