Copyright | Will Thompson and Iñaki García Etxebarria |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
- Exported types
- Methods
- allocateOutputBuffer
- finishFrame
- getAllocator
- getAudioInfo
- getDrainable
- getFrameMax
- getFrameSamplesMax
- getFrameSamplesMin
- getHardMin
- getHardResync
- getLatency
- getLookahead
- getMarkGranule
- getPerfectTimestamp
- getTolerance
- mergeTags
- negotiate
- proxyGetcaps
- setAllocationCaps
- setDrainable
- setFrameMax
- setFrameSamplesMax
- setFrameSamplesMin
- setHardMin
- setHardResync
- setHeaders
- setLatency
- setLookahead
- setMarkGranule
- setOutputFormat
- setPerfectTimestamp
- setTolerance
- Properties
This base class is for audio encoders turning raw audio samples into encoded audio data.
GstAudioEncoder and subclass should cooperate as follows.
Configuration
- Initially, GstAudioEncoder calls
start
when the encoder element is activated, which allows subclass to perform any global setup.
- GstAudioEncoder calls
setFormat
to inform subclass of the format of input audio data that it is about to receive. Subclass should setup for encoding and configure various base class parameters appropriately, notably those directing desired input data handling. While unlikely, it might be called more than once, if changing input parameters require reconfiguration. - GstAudioEncoder calls
stop
at end of all processing.
As of configuration stage, and throughout processing, GstAudioEncoder maintains various parameters that provide required context, e.g. describing the format of input audio data. Conversely, subclass can and should configure these context parameters to inform base class of its expectation w.r.t. buffer handling.
Data processing
- Base class gathers input sample data (as directed by the context's
frame_samples and frame_max) and provides this to subclass'
handleFrame
. - If codec processing results in encoded data, subclass should call
audioEncoderFinishFrame
to have encoded data pushed downstream. Alternatively, it might also callaudioEncoderFinishFrame
(with a NULL buffer and some number of dropped samples) to indicate dropped (non-encoded) samples. - Just prior to actually pushing a buffer downstream,
it is passed to
prePush
. - During the parsing process GstAudioEncoderClass will handle both
srcpad and sinkpad events. Sink events will be passed to subclass
if
event
callback has been provided.
Shutdown phase
- GstAudioEncoder class calls
stop
to inform the subclass that data parsing will be stopped.
Subclass is responsible for providing pad template caps for
source and sink pads. The pads need to be named "sink" and "src". It also
needs to set the fixed caps on srcpad, when the format is ensured. This
is typically when base class calls subclass' setFormat
function, though
it might be delayed until calling gstAudioEncoderFinishFrame
.
In summary, above process should have subclass concentrating on
codec data processing while leaving other matters to base class,
such as most notably timestamp handling. While it may exert more control
in this area (see e.g. prePush
), it is very much not recommended.
In particular, base class will either favor tracking upstream timestamps (at the possible expense of jitter) or aim to arrange for a perfect stream of output timestamps, depending on AudioEncoder:perfectTimestamp. However, in the latter case, the input may not be so perfect or ideal, which is handled as follows. An input timestamp is compared with the expected timestamp as dictated by input sample stream and if the deviation is less than AudioEncoder:tolerance, the deviation is discarded. Otherwise, it is considered a discontuinity and subsequent output timestamp is resynced to the new position after performing configured discontinuity processing. In the non-perfect-timestamp case, an upstream variation exceeding tolerance only leads to marking DISCONT on subsequent outgoing (while timestamps are adjusted to upstream regardless of variation). While DISCONT is also marked in the perfect-timestamp case, this one optionally (see AudioEncoder:hardResync) performs some additional steps, such as clipping of (early) input samples or draining all currently remaining input data, depending on the direction of the discontuinity.
If perfect timestamps are arranged, it is also possible to request baseclass (usually set by subclass) to provide additional buffer metadata (in OFFSET and OFFSET_END) fields according to granule defined semantics currently needed by oggmux. Specifically, OFFSET is set to granulepos (= sample count including buffer) and OFFSET_END to corresponding timestamp (as determined by same sample count and sample rate).
Things that subclass need to take care of:
- Provide pad templates
- Set source pad caps when appropriate
- Inform base class of buffer processing needs using context's frame_samples and frame_bytes.
- Set user-configurable properties to sane defaults for format and implementing codec at hand, e.g. those controlling timestamp behaviour and discontinuity processing.
- Accept data in
handleFrame
and provide encoded results toaudioEncoderFinishFrame
.
Synopsis
- newtype AudioEncoder = AudioEncoder (ManagedPtr AudioEncoder)
- class (GObject o, IsDescendantOf AudioEncoder o) => IsAudioEncoder o
- toAudioEncoder :: (MonadIO m, IsAudioEncoder o) => o -> m AudioEncoder
- audioEncoderAllocateOutputBuffer :: (HasCallStack, MonadIO m, IsAudioEncoder a) => a -> Word64 -> m Buffer
- audioEncoderFinishFrame :: (HasCallStack, MonadIO m, IsAudioEncoder a) => a -> Maybe Buffer -> Int32 -> m FlowReturn
- audioEncoderGetAllocator :: (HasCallStack, MonadIO m, IsAudioEncoder a) => a -> m (Maybe Allocator, AllocationParams)
- audioEncoderGetAudioInfo :: (HasCallStack, MonadIO m, IsAudioEncoder a) => a -> m AudioInfo
- audioEncoderGetDrainable :: (HasCallStack, MonadIO m, IsAudioEncoder a) => a -> m Bool
- audioEncoderGetFrameMax :: (HasCallStack, MonadIO m, IsAudioEncoder a) => a -> m Int32
- audioEncoderGetFrameSamplesMax :: (HasCallStack, MonadIO m, IsAudioEncoder a) => a -> m Int32
- audioEncoderGetFrameSamplesMin :: (HasCallStack, MonadIO m, IsAudioEncoder a) => a -> m Int32
- audioEncoderGetHardMin :: (HasCallStack, MonadIO m, IsAudioEncoder a) => a -> m Bool
- audioEncoderGetHardResync :: (HasCallStack, MonadIO m, IsAudioEncoder a) => a -> m Bool
- audioEncoderGetLatency :: (HasCallStack, MonadIO m, IsAudioEncoder a) => a -> m (Word64, Word64)
- audioEncoderGetLookahead :: (HasCallStack, MonadIO m, IsAudioEncoder a) => a -> m Int32
- audioEncoderGetMarkGranule :: (HasCallStack, MonadIO m, IsAudioEncoder a) => a -> m Bool
- audioEncoderGetPerfectTimestamp :: (HasCallStack, MonadIO m, IsAudioEncoder a) => a -> m Bool
- audioEncoderGetTolerance :: (HasCallStack, MonadIO m, IsAudioEncoder a) => a -> m Word64
- audioEncoderMergeTags :: (HasCallStack, MonadIO m, IsAudioEncoder a) => a -> Maybe TagList -> TagMergeMode -> m ()
- audioEncoderNegotiate :: (HasCallStack, MonadIO m, IsAudioEncoder a) => a -> m Bool
- audioEncoderProxyGetcaps :: (HasCallStack, MonadIO m, IsAudioEncoder a) => a -> Maybe Caps -> Maybe Caps -> m Caps
- audioEncoderSetAllocationCaps :: (HasCallStack, MonadIO m, IsAudioEncoder a) => a -> Maybe Caps -> m ()
- audioEncoderSetDrainable :: (HasCallStack, MonadIO m, IsAudioEncoder a) => a -> Bool -> m ()
- audioEncoderSetFrameMax :: (HasCallStack, MonadIO m, IsAudioEncoder a) => a -> Int32 -> m ()
- audioEncoderSetFrameSamplesMax :: (HasCallStack, MonadIO m, IsAudioEncoder a) => a -> Int32 -> m ()
- audioEncoderSetFrameSamplesMin :: (HasCallStack, MonadIO m, IsAudioEncoder a) => a -> Int32 -> m ()
- audioEncoderSetHardMin :: (HasCallStack, MonadIO m, IsAudioEncoder a) => a -> Bool -> m ()
- audioEncoderSetHardResync :: (HasCallStack, MonadIO m, IsAudioEncoder a) => a -> Bool -> m ()
- audioEncoderSetHeaders :: (HasCallStack, MonadIO m, IsAudioEncoder a) => a -> [Buffer] -> m ()
- audioEncoderSetLatency :: (HasCallStack, MonadIO m, IsAudioEncoder a) => a -> Word64 -> Word64 -> m ()
- audioEncoderSetLookahead :: (HasCallStack, MonadIO m, IsAudioEncoder a) => a -> Int32 -> m ()
- audioEncoderSetMarkGranule :: (HasCallStack, MonadIO m, IsAudioEncoder a) => a -> Bool -> m ()
- audioEncoderSetOutputFormat :: (HasCallStack, MonadIO m, IsAudioEncoder a) => a -> Caps -> m Bool
- audioEncoderSetPerfectTimestamp :: (HasCallStack, MonadIO m, IsAudioEncoder a) => a -> Bool -> m ()
- audioEncoderSetTolerance :: (HasCallStack, MonadIO m, IsAudioEncoder a) => a -> Word64 -> m ()
- constructAudioEncoderHardResync :: (IsAudioEncoder o, MonadIO m) => Bool -> m (GValueConstruct o)
- getAudioEncoderHardResync :: (MonadIO m, IsAudioEncoder o) => o -> m Bool
- setAudioEncoderHardResync :: (MonadIO m, IsAudioEncoder o) => o -> Bool -> m ()
- getAudioEncoderMarkGranule :: (MonadIO m, IsAudioEncoder o) => o -> m Bool
- constructAudioEncoderPerfectTimestamp :: (IsAudioEncoder o, MonadIO m) => Bool -> m (GValueConstruct o)
- getAudioEncoderPerfectTimestamp :: (MonadIO m, IsAudioEncoder o) => o -> m Bool
- setAudioEncoderPerfectTimestamp :: (MonadIO m, IsAudioEncoder o) => o -> Bool -> m ()
- constructAudioEncoderTolerance :: (IsAudioEncoder o, MonadIO m) => Int64 -> m (GValueConstruct o)
- getAudioEncoderTolerance :: (MonadIO m, IsAudioEncoder o) => o -> m Int64
- setAudioEncoderTolerance :: (MonadIO m, IsAudioEncoder o) => o -> Int64 -> m ()
Exported types
newtype AudioEncoder Source #
Memory-managed wrapper type.
AudioEncoder (ManagedPtr AudioEncoder) |
Instances
Eq AudioEncoder Source # | |
Defined in GI.GstAudio.Objects.AudioEncoder (==) :: AudioEncoder -> AudioEncoder -> Bool # (/=) :: AudioEncoder -> AudioEncoder -> Bool # | |
GObject AudioEncoder Source # | |
Defined in GI.GstAudio.Objects.AudioEncoder | |
ManagedPtrNewtype AudioEncoder Source # | |
Defined in GI.GstAudio.Objects.AudioEncoder toManagedPtr :: AudioEncoder -> ManagedPtr AudioEncoder | |
TypedObject AudioEncoder Source # | |
Defined in GI.GstAudio.Objects.AudioEncoder | |
HasParentTypes AudioEncoder Source # | |
Defined in GI.GstAudio.Objects.AudioEncoder | |
IsGValue (Maybe AudioEncoder) Source # | Convert |
Defined in GI.GstAudio.Objects.AudioEncoder gvalueGType_ :: IO GType gvalueSet_ :: Ptr GValue -> Maybe AudioEncoder -> IO () gvalueGet_ :: Ptr GValue -> IO (Maybe AudioEncoder) | |
type ParentTypes AudioEncoder Source # | |
Defined in GI.GstAudio.Objects.AudioEncoder type ParentTypes AudioEncoder = '[Element, Object, Object, Preset] |
class (GObject o, IsDescendantOf AudioEncoder o) => IsAudioEncoder o Source #
Type class for types which can be safely cast to AudioEncoder
, for instance with toAudioEncoder
.
Instances
(GObject o, IsDescendantOf AudioEncoder o) => IsAudioEncoder o Source # | |
Defined in GI.GstAudio.Objects.AudioEncoder |
toAudioEncoder :: (MonadIO m, IsAudioEncoder o) => o -> m AudioEncoder Source #
Cast to AudioEncoder
, for types for which this is known to be safe. For general casts, use castTo
.
Methods
Click to display all available methods, including inherited ones
Methods
abortState, addControlBinding, addPad, addPropertyDeepNotifyWatch, addPropertyNotifyWatch, allocateOutputBuffer, bindProperty, bindPropertyFull, callAsync, changeState, continueState, createAllPads, defaultError, deletePreset, finishFrame, forceFloating, foreachPad, foreachSinkPad, foreachSrcPad, freezeNotify, getv, hasActiveControlBindings, hasAncestor, hasAsAncestor, hasAsParent, isEditable, isFloating, isLockedState, iteratePads, iterateSinkPads, iterateSrcPads, link, linkFiltered, linkPads, linkPadsFiltered, linkPadsFull, loadPreset, lostState, mergeTags, messageFull, messageFullWithDetails, negotiate, noMorePads, notify, notifyByPspec, postMessage, provideClock, proxyGetcaps, query, queryConvert, queryDuration, queryPosition, ref, refSink, releaseRequestPad, removeControlBinding, removePad, removePropertyNotifyWatch, renamePreset, requestPad, requestPadSimple, runDispose, savePreset, seek, seekSimple, sendEvent, stealData, stealQdata, suggestNextSync, syncStateWithParent, syncValues, thawNotify, unlink, unlinkPads, unparent, unref, watchClosure.
Getters
getAllocator, getAudioInfo, getBaseTime, getBus, getClock, getCompatiblePad, getCompatiblePadTemplate, getContext, getContextUnlocked, getContexts, getControlBinding, getControlRate, getCurrentClockTime, getCurrentRunningTime, getData, getDrainable, getFactory, getFrameMax, getFrameSamplesMax, getFrameSamplesMin, getGValueArray, getHardMin, getHardResync, getLatency, getLookahead, getMarkGranule, getMeta, getMetadata, getName, getPadTemplate, getPadTemplateList, getParent, getPathString, getPerfectTimestamp, getPresetNames, getProperty, getPropertyNames, getQdata, getRequestPad, getStartTime, getState, getStaticPad, getTolerance, getValue.
Setters
setAllocationCaps, setBaseTime, setBus, setClock, setContext, setControlBindingDisabled, setControlBindingsDisabled, setControlRate, setData, setDataFull, setDrainable, setFrameMax, setFrameSamplesMax, setFrameSamplesMin, setHardMin, setHardResync, setHeaders, setLatency, setLockedState, setLookahead, setMarkGranule, setMeta, setName, setOutputFormat, setParent, setPerfectTimestamp, setProperty, setStartTime, setState, setTolerance.
allocateOutputBuffer
audioEncoderAllocateOutputBuffer Source #
:: (HasCallStack, MonadIO m, IsAudioEncoder a) | |
=> a |
|
-> Word64 |
|
-> m Buffer | Returns: allocated buffer |
Helper function that allocates a buffer to hold an encoded audio frame
for enc
's current output format.
finishFrame
audioEncoderFinishFrame Source #
:: (HasCallStack, MonadIO m, IsAudioEncoder a) | |
=> a |
|
-> Maybe Buffer |
|
-> Int32 |
|
-> m FlowReturn | Returns: a |
Collects encoded data and pushes encoded data downstream. Source pad caps must be set when this is called.
If samples
< 0, then best estimate is all samples provided to encoder
(subclass) so far. buf
may be NULL, in which case next number of samples
are considered discarded, e.g. as a result of discontinuous transmission,
and a discontinuity is marked.
Note that samples received in AudioEncoderClass
.handle_frame
()
may be invalidated by a call to this function.
getAllocator
audioEncoderGetAllocator Source #
:: (HasCallStack, MonadIO m, IsAudioEncoder a) | |
=> a |
|
-> m (Maybe Allocator, AllocationParams) |
Lets AudioEncoder
sub-classes to know the memory allocator
used by the base class and its params
.
Unref the allocator
after use it.
getAudioInfo
audioEncoderGetAudioInfo Source #
:: (HasCallStack, MonadIO m, IsAudioEncoder a) | |
=> a |
|
-> m AudioInfo | Returns: a |
No description available in the introspection data.
getDrainable
audioEncoderGetDrainable Source #
:: (HasCallStack, MonadIO m, IsAudioEncoder a) | |
=> a |
|
-> m Bool | Returns: TRUE if drainable handling is enabled. MT safe. |
Queries encoder drain handling.
getFrameMax
audioEncoderGetFrameMax Source #
:: (HasCallStack, MonadIO m, IsAudioEncoder a) | |
=> a |
|
-> m Int32 | Returns: currently configured maximum handled frames |
No description available in the introspection data.
getFrameSamplesMax
audioEncoderGetFrameSamplesMax Source #
:: (HasCallStack, MonadIO m, IsAudioEncoder a) | |
=> a |
|
-> m Int32 | Returns: currently maximum requested samples per frame |
No description available in the introspection data.
getFrameSamplesMin
audioEncoderGetFrameSamplesMin Source #
:: (HasCallStack, MonadIO m, IsAudioEncoder a) | |
=> a |
|
-> m Int32 | Returns: currently minimum requested samples per frame |
No description available in the introspection data.
getHardMin
audioEncoderGetHardMin Source #
:: (HasCallStack, MonadIO m, IsAudioEncoder a) | |
=> a |
|
-> m Bool | Returns: TRUE if hard minimum handling is enabled. MT safe. |
Queries encoder hard minimum handling.
getHardResync
audioEncoderGetHardResync :: (HasCallStack, MonadIO m, IsAudioEncoder a) => a -> m Bool Source #
No description available in the introspection data.
getLatency
audioEncoderGetLatency Source #
:: (HasCallStack, MonadIO m, IsAudioEncoder a) | |
=> a |
|
-> m (Word64, Word64) |
Sets the variables pointed to by min
and max
to the currently configured
latency.
getLookahead
audioEncoderGetLookahead Source #
:: (HasCallStack, MonadIO m, IsAudioEncoder a) | |
=> a |
|
-> m Int32 | Returns: currently configured encoder lookahead |
No description available in the introspection data.
getMarkGranule
audioEncoderGetMarkGranule Source #
:: (HasCallStack, MonadIO m, IsAudioEncoder a) | |
=> a |
|
-> m Bool | Returns: TRUE if granule marking is enabled. MT safe. |
Queries if the encoder will handle granule marking.
getPerfectTimestamp
audioEncoderGetPerfectTimestamp Source #
:: (HasCallStack, MonadIO m, IsAudioEncoder a) | |
=> a |
|
-> m Bool | Returns: TRUE if perfect timestamp setting enabled. MT safe. |
Queries encoder perfect timestamp behaviour.
getTolerance
audioEncoderGetTolerance Source #
:: (HasCallStack, MonadIO m, IsAudioEncoder a) | |
=> a |
|
-> m Word64 | Returns: encoder audio jitter tolerance threshold. MT safe. |
Queries current audio jitter tolerance threshold.
mergeTags
audioEncoderMergeTags Source #
:: (HasCallStack, MonadIO m, IsAudioEncoder a) | |
=> a |
|
-> Maybe TagList |
|
-> TagMergeMode |
|
-> m () |
Sets the audio encoder tags and how they should be merged with any
upstream stream tags. This will override any tags previously-set
with audioEncoderMergeTags
.
Note that this is provided for convenience, and the subclass is not required to use this and can still do tag handling on its own.
MT safe.
negotiate
audioEncoderNegotiate Source #
:: (HasCallStack, MonadIO m, IsAudioEncoder a) | |
=> a |
|
-> m Bool |
Negotiate with downstream elements to currently configured Caps
.
Unmark GST_PAD_FLAG_NEED_RECONFIGURE in any case. But mark it again if
negotiate fails.
proxyGetcaps
audioEncoderProxyGetcaps Source #
:: (HasCallStack, MonadIO m, IsAudioEncoder a) | |
=> a |
|
-> Maybe Caps |
|
-> Maybe Caps |
|
-> m Caps | Returns: a |
Returns caps that express caps
(or sink template caps if caps
== NULL)
restricted to channel/rate combinations supported by downstream elements
(e.g. muxers).
setAllocationCaps
audioEncoderSetAllocationCaps Source #
:: (HasCallStack, MonadIO m, IsAudioEncoder a) | |
=> a |
|
-> Maybe Caps | |
-> m () |
Sets a caps in allocation query which are different from the set
pad's caps. Use this function before calling
audioEncoderNegotiate
. Setting to Nothing
the allocation
query will use the caps from the pad.
Since: 1.10
setDrainable
audioEncoderSetDrainable Source #
:: (HasCallStack, MonadIO m, IsAudioEncoder a) | |
=> a |
|
-> Bool |
|
-> m () |
Configures encoder drain handling. If drainable, subclass might be handed a NULL buffer to have it return any leftover encoded data. Otherwise, it is not considered so capable and will only ever be passed real data.
MT safe.
setFrameMax
audioEncoderSetFrameMax Source #
:: (HasCallStack, MonadIO m, IsAudioEncoder a) | |
=> a |
|
-> Int32 |
|
-> m () |
Sets max number of frames accepted at once (assumed minimally 1).
Requires frameSamplesMin
and frameSamplesMax
to be the equal.
Note: This value will be reset to 0 every time before
AudioEncoderClass
.set_format
() is called.
setFrameSamplesMax
audioEncoderSetFrameSamplesMax Source #
:: (HasCallStack, MonadIO m, IsAudioEncoder a) | |
=> a |
|
-> Int32 |
|
-> m () |
Sets number of samples (per channel) subclass needs to be handed, at most or will be handed all available if 0.
If an exact number of samples is required, audioEncoderSetFrameSamplesMin
must be called with the same number.
Note: This value will be reset to 0 every time before
AudioEncoderClass
.set_format
() is called.
setFrameSamplesMin
audioEncoderSetFrameSamplesMin Source #
:: (HasCallStack, MonadIO m, IsAudioEncoder a) | |
=> a |
|
-> Int32 |
|
-> m () |
Sets number of samples (per channel) subclass needs to be handed, at least or will be handed all available if 0.
If an exact number of samples is required, audioEncoderSetFrameSamplesMax
must be called with the same number.
Note: This value will be reset to 0 every time before
AudioEncoderClass
.set_format
() is called.
setHardMin
audioEncoderSetHardMin Source #
:: (HasCallStack, MonadIO m, IsAudioEncoder a) | |
=> a |
|
-> Bool |
|
-> m () |
Configures encoder hard minimum handling. If enabled, subclass will never be handed less samples than it configured, which otherwise might occur near end-of-data handling. Instead, the leftover samples will simply be discarded.
MT safe.
setHardResync
audioEncoderSetHardResync :: (HasCallStack, MonadIO m, IsAudioEncoder a) => a -> Bool -> m () Source #
No description available in the introspection data.
setHeaders
audioEncoderSetHeaders Source #
:: (HasCallStack, MonadIO m, IsAudioEncoder a) | |
=> a |
|
-> [Buffer] |
|
-> m () |
Set the codec headers to be sent downstream whenever requested.
setLatency
audioEncoderSetLatency Source #
:: (HasCallStack, MonadIO m, IsAudioEncoder a) | |
=> a |
|
-> Word64 |
|
-> Word64 |
|
-> m () |
Sets encoder latency. If the provided values changed from previously provided ones, this will also post a LATENCY message on the bus so the pipeline can reconfigure its global latency.
setLookahead
audioEncoderSetLookahead Source #
:: (HasCallStack, MonadIO m, IsAudioEncoder a) | |
=> a |
|
-> Int32 |
|
-> m () |
Sets encoder lookahead (in units of input rate samples)
Note: This value will be reset to 0 every time before
AudioEncoderClass
.set_format
() is called.
setMarkGranule
audioEncoderSetMarkGranule Source #
:: (HasCallStack, MonadIO m, IsAudioEncoder a) | |
=> a |
|
-> Bool |
|
-> m () |
Enable or disable encoder granule handling.
MT safe.
setOutputFormat
audioEncoderSetOutputFormat Source #
:: (HasCallStack, MonadIO m, IsAudioEncoder a) | |
=> a |
|
-> Caps |
|
-> m Bool | Returns: |
Configure output caps on the srcpad of enc
.
setPerfectTimestamp
audioEncoderSetPerfectTimestamp Source #
:: (HasCallStack, MonadIO m, IsAudioEncoder a) | |
=> a |
|
-> Bool |
|
-> m () |
Enable or disable encoder perfect output timestamp preference.
MT safe.
setTolerance
audioEncoderSetTolerance Source #
:: (HasCallStack, MonadIO m, IsAudioEncoder a) | |
=> a |
|
-> Word64 |
|
-> m () |
Configures encoder audio jitter tolerance threshold.
MT safe.
Properties
hardResync
No description available in the introspection data.
constructAudioEncoderHardResync :: (IsAudioEncoder o, MonadIO m) => Bool -> m (GValueConstruct o) Source #
Construct a GValueConstruct
with valid value for the “hard-resync
” property. This is rarely needed directly, but it is used by new
.
getAudioEncoderHardResync :: (MonadIO m, IsAudioEncoder o) => o -> m Bool Source #
Get the value of the “hard-resync
” property.
When overloading is enabled, this is equivalent to
get
audioEncoder #hardResync
setAudioEncoderHardResync :: (MonadIO m, IsAudioEncoder o) => o -> Bool -> m () Source #
Set the value of the “hard-resync
” property.
When overloading is enabled, this is equivalent to
set
audioEncoder [ #hardResync:=
value ]
markGranule
No description available in the introspection data.
getAudioEncoderMarkGranule :: (MonadIO m, IsAudioEncoder o) => o -> m Bool Source #
Get the value of the “mark-granule
” property.
When overloading is enabled, this is equivalent to
get
audioEncoder #markGranule
perfectTimestamp
No description available in the introspection data.
constructAudioEncoderPerfectTimestamp :: (IsAudioEncoder o, MonadIO m) => Bool -> m (GValueConstruct o) Source #
Construct a GValueConstruct
with valid value for the “perfect-timestamp
” property. This is rarely needed directly, but it is used by new
.
getAudioEncoderPerfectTimestamp :: (MonadIO m, IsAudioEncoder o) => o -> m Bool Source #
Get the value of the “perfect-timestamp
” property.
When overloading is enabled, this is equivalent to
get
audioEncoder #perfectTimestamp
setAudioEncoderPerfectTimestamp :: (MonadIO m, IsAudioEncoder o) => o -> Bool -> m () Source #
Set the value of the “perfect-timestamp
” property.
When overloading is enabled, this is equivalent to
set
audioEncoder [ #perfectTimestamp:=
value ]
tolerance
No description available in the introspection data.
constructAudioEncoderTolerance :: (IsAudioEncoder o, MonadIO m) => Int64 -> m (GValueConstruct o) Source #
Construct a GValueConstruct
with valid value for the “tolerance
” property. This is rarely needed directly, but it is used by new
.
getAudioEncoderTolerance :: (MonadIO m, IsAudioEncoder o) => o -> m Int64 Source #
Get the value of the “tolerance
” property.
When overloading is enabled, this is equivalent to
get
audioEncoder #tolerance
setAudioEncoderTolerance :: (MonadIO m, IsAudioEncoder o) => o -> Int64 -> m () Source #
Set the value of the “tolerance
” property.
When overloading is enabled, this is equivalent to
set
audioEncoder [ #tolerance:=
value ]