Package org.freedesktop.gstreamer.audio
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
Modifier and TypeClassDescriptionstatic class
static class
AudioSink.Builder<B extends AudioSink.Builder<B>>
Inner class implementing a builder pattern to construct a GObject with properties.Nested classes/interfaces inherited from class org.freedesktop.gstreamer.audio.AudioBaseSink
AudioBaseSink.AudioBaseSinkClass
Nested classes/interfaces inherited from class org.freedesktop.gstreamer.base.BaseSink
BaseSink.BaseSinkClass, BaseSink.BaseSinkImpl
Nested classes/interfaces inherited from class org.freedesktop.gstreamer.gst.Element
Element.ElementClass, Element.ElementImpl, Element.NoMorePadsCallback, Element.PadAddedCallback, Element.PadRemovedCallback
Nested classes/interfaces inherited from class org.freedesktop.gstreamer.gst.GstObject
GstObject.DeepNotifyCallback, GstObject.ObjectClass, GstObject.ObjectImpl
Nested classes/interfaces inherited from class org.gnome.gobject.InitiallyUnowned
InitiallyUnowned.InitiallyUnownedClass
Nested classes/interfaces inherited from class org.gnome.gobject.GObject
GObject.NotifyCallback
-
Constructor Summary
ConstructorDescriptionAudioSink
(MemorySegment address) Create a AudioSink proxy instance for the provided memory address. -
Method Summary
Modifier and TypeMethodDescriptionprotected AudioSink
asParent()
Returns this instance as if it were its parent type.static AudioSink.Builder
<? extends AudioSink.Builder> builder()
AAudioSink.Builder
object constructs aAudioSink
with the specified properties.protected boolean
close()
Close the device.protected int
delay()
Return how many frames are still in the device.static MemoryLayout
The memory layout of the native struct.static Type
getType()
Get the GType of the AudioSink classprotected boolean
open()
Open the device.protected void
pause()
Pause the device and unblock write as fast as possible.protected boolean
prepare
(AudioRingBufferSpec spec) Prepare the device to operate with the specified parameters.protected void
reset()
Returns as quickly as possible from a write and flush any pending samples from the device.protected void
resume()
Resume the device.protected boolean
Undo operations done in prepare.protected int
write
(byte[] data) Write samples to the device.Methods inherited from class org.freedesktop.gstreamer.audio.AudioBaseSink
createRingbuffer, getAlignmentThreshold, getDiscontWait, getDriftTolerance, getProvideClock, getSlaveMethod, payload, reportDeviceFailure, setAlignmentThreshold, setCustomSlavingCallback, setDiscontWait, setDriftTolerance, setProvideClock, setSlaveMethod
Methods inherited from class org.freedesktop.gstreamer.base.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, waitPreroll
Methods inherited from class org.freedesktop.gstreamer.gst.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, unlinkPads
Methods inherited from class org.freedesktop.gstreamer.gst.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, unref
Methods inherited from class org.gnome.gobject.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, 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, withProperties
Methods inherited from class org.gnome.gobject.TypeInstance
callParent, callParent, getPrivate, readGClass, writeGClass
Methods inherited from class io.github.jwharm.javagi.base.ProxyInstance
equals, handle, hashCode
-
Constructor Details
-
AudioSink
Create a AudioSink proxy instance for the provided memory address.- Parameters:
address
- the memory address of the native object
-
-
Method Details
-
getType
-
getMemoryLayout
The memory layout of the native struct.- Returns:
- the memory layout
-
asParent
Returns this instance as if it were its parent type. This is mostly synonymous to the Javasuper
keyword, but will set the native typeclass function pointers to the parent type. When overriding a native virtual method in Java, "chaining up" withsuper.methodName()
doesn't work, because it invokes the overridden function pointer again. To chain up, callasParent().methodName()
. This will call the native function pointer of this virtual method in the typeclass of the parent type.- Overrides:
asParent
in classAudioBaseSink
-
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(byte[] data) Write samples to the device.- Parameters:
data
- the sample data
-
builder
AAudioSink.Builder
object constructs aAudioSink
with the specified properties. Use the variousset...()
methods to set properties, and finish construction withAudioSink.Builder.build()
.
-