Copyright | Will Thompson, Iñaki García Etxebarria and Jonas Platte |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria (garetxe@gmail.com) |
Safe Haskell | None |
Language | Haskell2010 |
- newtype AudioConverter = AudioConverter (ManagedPtr AudioConverter)
- noAudioConverter :: Maybe AudioConverter
- data AudioConverterFreeMethodInfo
- audioConverterFree :: (HasCallStack, MonadIO m) => AudioConverter -> m ()
- data AudioConverterGetConfigMethodInfo
- audioConverterGetConfig :: (HasCallStack, MonadIO m) => AudioConverter -> Int32 -> Int32 -> m Structure
- data AudioConverterGetInFramesMethodInfo
- audioConverterGetInFrames :: (HasCallStack, MonadIO m) => AudioConverter -> Word64 -> m Word64
- data AudioConverterGetMaxLatencyMethodInfo
- audioConverterGetMaxLatency :: (HasCallStack, MonadIO m) => AudioConverter -> m Word64
- data AudioConverterGetOutFramesMethodInfo
- audioConverterGetOutFrames :: (HasCallStack, MonadIO m) => AudioConverter -> Word64 -> m Word64
- data AudioConverterResetMethodInfo
- audioConverterReset :: (HasCallStack, MonadIO m) => AudioConverter -> m ()
- data AudioConverterSamplesMethodInfo
- audioConverterSamples :: (HasCallStack, MonadIO m) => AudioConverter -> [AudioConverterFlags] -> Ptr () -> Word64 -> Ptr () -> Word64 -> m Bool
- data AudioConverterUpdateConfigMethodInfo
- audioConverterUpdateConfig :: (HasCallStack, MonadIO m) => AudioConverter -> Int32 -> Int32 -> Maybe Structure -> m Bool
Exported types
newtype AudioConverter Source #
Methods
free
data AudioConverterFreeMethodInfo Source #
((~) * signature (m ()), MonadIO m) => MethodInfo * AudioConverterFreeMethodInfo AudioConverter signature Source # | |
:: (HasCallStack, MonadIO m) | |
=> AudioConverter |
|
-> m () |
Free a previously allocated convert
instance.
getConfig
data AudioConverterGetConfigMethodInfo Source #
((~) * signature (Int32 -> Int32 -> m Structure), MonadIO m) => MethodInfo * AudioConverterGetConfigMethodInfo AudioConverter signature Source # | |
audioConverterGetConfig Source #
:: (HasCallStack, MonadIO m) | |
=> AudioConverter |
|
-> Int32 |
|
-> Int32 |
|
-> m Structure | Returns: a |
Get the current configuration of convert
.
getInFrames
data AudioConverterGetInFramesMethodInfo Source #
((~) * signature (Word64 -> m Word64), MonadIO m) => MethodInfo * AudioConverterGetInFramesMethodInfo AudioConverter signature Source # | |
audioConverterGetInFrames Source #
:: (HasCallStack, MonadIO m) | |
=> AudioConverter |
|
-> Word64 |
|
-> m Word64 | Returns: the number of input frames |
Calculate how many input frames are currently needed by convert
to produce
outFrames
of output frames.
getMaxLatency
data AudioConverterGetMaxLatencyMethodInfo Source #
((~) * signature (m Word64), MonadIO m) => MethodInfo * AudioConverterGetMaxLatencyMethodInfo AudioConverter signature Source # | |
audioConverterGetMaxLatency Source #
:: (HasCallStack, MonadIO m) | |
=> AudioConverter |
|
-> m Word64 | Returns: the latency of |
Get the maximum number of input frames that the converter would need before producing output.
getOutFrames
data AudioConverterGetOutFramesMethodInfo Source #
((~) * signature (Word64 -> m Word64), MonadIO m) => MethodInfo * AudioConverterGetOutFramesMethodInfo AudioConverter signature Source # | |
audioConverterGetOutFrames Source #
:: (HasCallStack, MonadIO m) | |
=> AudioConverter |
|
-> Word64 |
|
-> m Word64 | Returns: the number of output frames |
Calculate how many output frames can be produced when inFrames
input
frames are given to convert
.
reset
data AudioConverterResetMethodInfo Source #
((~) * signature (m ()), MonadIO m) => MethodInfo * AudioConverterResetMethodInfo AudioConverter signature Source # | |
:: (HasCallStack, MonadIO m) | |
=> AudioConverter |
|
-> m () |
Reset convert
to the state it was when it was first created, clearing
any history it might currently have.
samples
data AudioConverterSamplesMethodInfo Source #
((~) * signature ([AudioConverterFlags] -> Ptr () -> Word64 -> Ptr () -> Word64 -> m Bool), MonadIO m) => MethodInfo * AudioConverterSamplesMethodInfo AudioConverter signature Source # | |
audioConverterSamples Source #
:: (HasCallStack, MonadIO m) | |
=> AudioConverter |
|
-> [AudioConverterFlags] |
|
-> Ptr () |
|
-> Word64 |
|
-> Ptr () |
|
-> Word64 |
|
-> m Bool | Returns: |
Perform the conversion with inFrames
in in
to outFrames
in out
using convert
.
In case the samples are interleaved, in
and out
must point to an
array with a single element pointing to a block of interleaved samples.
If non-interleaved samples are used, in
and out
must point to an
array with pointers to memory blocks, one for each channel.
in
may be Nothing
, in which case inFrames
of silence samples are processed
by the converter.
This function always produces outFrames
of output and consumes inFrames
of
input. Use audioConverterGetOutFrames
and
audioConverterGetInFrames
to make sure inFrames
and outFrames
are matching and in
and out
point to enough memory.
updateConfig
data AudioConverterUpdateConfigMethodInfo Source #
((~) * signature (Int32 -> Int32 -> Maybe Structure -> m Bool), MonadIO m) => MethodInfo * AudioConverterUpdateConfigMethodInfo AudioConverter signature Source # | |
audioConverterUpdateConfig Source #
:: (HasCallStack, MonadIO m) | |
=> AudioConverter |
|
-> Int32 |
|
-> Int32 |
|
-> Maybe Structure | |
-> m Bool | Returns: |
Set inRate
, outRate
and config
as extra configuration for convert
.
inRate
and outRate
specify the new sample rates of input and output
formats. A value of 0 leaves the sample rate unchanged.
config
can be Nothing
, in which case, the current configuration is not
changed.
If the parameters in config
can not be set exactly, this function returns
False
and will try to update as much state as possible. The new state can
then be retrieved and refined with audioConverterGetConfig
.
Look at the GST_AUDIO_CONVERTER_OPT_
* fields to check valid configuration
option and values.