|
Media.Streaming.GStreamer.Core.Buffer |
|
|
|
|
|
Synopsis |
|
data Buffer | | class MiniObjectClass o => BufferClass o | | castToBuffer :: MiniObjectClass obj => obj -> Buffer | | gTypeBuffer :: GType | | | | bufferOffsetNone :: BufferOffset | | bufferGetFlags :: BufferClass bufferT => bufferT -> [BufferFlags] | | bufferGetFlagsM :: (BufferClass bufferT, MonadIO m) => MiniObjectT bufferT m [BufferFlags] | | bufferSetFlagsM :: (BufferClass bufferT, MonadIO m) => [BufferFlags] -> MiniObjectT bufferT m () | | bufferUnsetFlagsM :: (BufferClass bufferT, MonadIO m) => [BufferFlags] -> MiniObjectT bufferT m () | | bufferGetSize :: BufferClass bufferT => bufferT -> Word | | bufferGetSizeM :: (BufferClass bufferT, MonadIO m) => MiniObjectT bufferT m Word | | bufferGetData :: BufferClass bufferT => bufferT -> ByteString | | bufferGetDataM :: (BufferClass bufferT, MonadIO m) => MiniObjectT bufferT m ByteString | | bufferSetDataM :: (BufferClass bufferT, MonadIO m) => ByteString -> MiniObjectT bufferT m () | | unsafeBufferGetPtrM :: (BufferClass bufferT, MonadIO m) => MiniObjectT bufferT m (Ptr Word8) | | bufferGetTimestamp :: BufferClass bufferT => bufferT -> Maybe ClockTime | | bufferGetTimestampM :: (BufferClass bufferT, MonadIO m) => MiniObjectT bufferT m (Maybe ClockTime) | | bufferSetTimestampM :: (BufferClass bufferT, MonadIO m) => Maybe ClockTime -> MiniObjectT bufferT m () | | bufferGetDuration :: BufferClass bufferT => bufferT -> Maybe ClockTime | | bufferGetDurationM :: (BufferClass bufferT, MonadIO m) => MiniObjectT bufferT m (Maybe ClockTime) | | bufferSetDurationM :: (BufferClass bufferT, MonadIO m) => Maybe ClockTime -> MiniObjectT bufferT m () | | bufferGetCaps :: BufferClass bufferT => bufferT -> Maybe Caps | | bufferGetCapsM :: (BufferClass bufferT, MonadIO m) => MiniObjectT bufferT m (Maybe Caps) | | bufferSetCapsM :: (BufferClass bufferT, MonadIO m) => Maybe Caps -> MiniObjectT bufferT m () | | bufferGetOffset :: BufferClass bufferT => bufferT -> Maybe Word64 | | bufferGetOffsetM :: (BufferClass bufferT, MonadIO m) => MiniObjectT bufferT m (Maybe Word64) | | bufferSetOffsetM :: (BufferClass bufferT, MonadIO m) => Maybe Word64 -> MiniObjectT bufferT m () | | bufferGetOffsetEnd :: BufferClass bufferT => bufferT -> Maybe Word64 | | bufferGetOffsetEndM :: (BufferClass bufferT, MonadIO m) => MiniObjectT bufferT m (Maybe Word64) | | bufferSetOffsetEndM :: (BufferClass bufferT, MonadIO m) => Maybe Word64 -> MiniObjectT bufferT m () | | bufferIsDiscont :: BufferClass bufferT => bufferT -> Bool | | bufferIsDiscontM :: (BufferClass bufferT, MonadIO m) => MiniObjectT bufferT m Bool | | bufferCreateEmpty :: MonadIO m => MiniObjectT Buffer m a -> m (Buffer, a) | | bufferCreate :: MonadIO m => Word -> MiniObjectT Buffer m a -> m (Buffer, a) | | bufferCreateSub :: BufferClass bufferT => bufferT -> Word -> Word -> Maybe Buffer | | bufferIsSpanFast :: (BufferClass bufferT1, BufferClass bufferT2) => bufferT1 -> bufferT2 -> Bool | | bufferSpan :: (BufferClass bufferT1, BufferClass bufferT2) => bufferT1 -> Word32 -> bufferT2 -> Word32 -> Maybe Buffer | | bufferMerge :: (BufferClass bufferT1, BufferClass bufferT2) => bufferT1 -> bufferT2 -> Buffer |
|
|
|
Types
|
|
Buffers are the basic unit of data transfer in GStreamer. The
Buffer type provides all the state necessary to define a
region of memory as part of a stream. Sub-buffers are also
supported, allowing a smaller region of a Buffer to become its
own Buffer, with mechansims in place to ensure that neither
memory space goes away prematurely.
|
|
data Buffer |
Instances | |
|
|
class MiniObjectClass o => BufferClass o |
| Instances | |
|
|
castToBuffer :: MiniObjectClass obj => obj -> Buffer |
|
gTypeBuffer :: GType |
|
data BufferFlags |
The flags a Buffer may have.
| Constructors | BufferPreroll | the buffer is part of a preroll and should not be displayed
| BufferDiscont | the buffer marks a discontinuity in the stream
| BufferInCaps | the buffer has been added as a field in a Caps
| BufferGap | the buffer has been created to fill a gap in the stream
| BufferDeltaUnit | the buffer cannot be decoded independently
|
| Instances | |
|
|
Buffer Operations
|
|
bufferOffsetNone :: BufferOffset |
The undefined BufferOffset value.
|
|
bufferGetFlags |
|
|
bufferGetFlagsM |
|
|
bufferSetFlagsM |
|
|
bufferUnsetFlagsM |
|
|
bufferGetSize |
:: BufferClass bufferT | | => bufferT | the size of buffer in bytes
| -> Word | | Get buffer's size in bytes.
|
|
|
bufferGetSizeM |
|
|
bufferGetData |
:: BufferClass bufferT | | => bufferT | the data stored in buffer
| -> ByteString | | Make an O(n) copy of the data stored in buffer.
|
|
|
bufferGetDataM |
|
|
bufferSetDataM |
|
|
unsafeBufferGetPtrM |
:: (BufferClass bufferT, MonadIO m) | | => MiniObjectT bufferT m (Ptr Word8) | | Get a raw pointer to the internal data area for the current
buffer. The pointer may be used to write into the data area if
desired. This function is unsafe in that the pointer should not
be used once the Buffer is returned.
|
|
|
bufferGetTimestamp |
|
|
bufferGetTimestampM |
|
|
bufferSetTimestampM |
|
|
bufferGetDuration |
|
|
bufferGetDurationM |
|
|
bufferSetDurationM |
|
|
bufferGetCaps |
|
|
bufferGetCapsM |
|
|
bufferSetCapsM |
|
|
bufferGetOffset |
|
|
bufferGetOffsetM |
|
|
bufferSetOffsetM |
|
|
bufferGetOffsetEnd |
|
|
bufferGetOffsetEndM |
|
|
bufferSetOffsetEndM |
|
|
bufferIsDiscont |
:: BufferClass bufferT | | => bufferT | True if buffer marks a discontinuity in a stream
| -> Bool | | Return True if the Buffer marks a discontinuity in a stream, or
False otherwise. This typically occurs after a seek or a
dropped buffer from a live or network source.
|
|
|
bufferIsDiscontM |
|
|
bufferCreateEmpty |
:: MonadIO m | | => MiniObjectT Buffer m a | the new buffer and the action's result
| -> m (Buffer, a) | | Create an empty Buffer and mutate it according to the given
action. Once this function returns, the Buffer is immutable.
|
|
|
bufferCreate |
|
|
bufferCreateSub |
:: BufferClass bufferT | | => bufferT | offset - the offset
| -> Word | size - the size
| -> Word | the new sub-buffer
| -> Maybe Buffer | | Create a sub-buffer from an existing Buffer with the given offset
and size. This sub-buffer uses the actual memory space of the
parent buffer. Thus function will copy the offset and timestamp
fields when the offset is 0. Otherwise, they will both be set to
Nothing. If the offset is 0 and the size is the total size of
the parent, the duration and offset end fields are also
copied. Otherwise they will be set to Nothing.
|
|
|
bufferIsSpanFast |
|
|
bufferSpan |
:: (BufferClass bufferT1, BufferClass bufferT2) | | => bufferT1 | offset - the offset into the concatenated buffer
| -> Word32 | buffer2 - the second buffer
| -> bufferT2 | len - the length of the final buffer
| -> Word32 | the spanning buffer, or Nothing if
the arguments are invalid
| -> Maybe Buffer | | Create a new Buffer that consists of a span across the given
buffers. Logically, the buffers are concatenated to make a larger
buffer, and a new buffer is created at the given offset and with
the given size.
If the two buffers are children of the same larger buffer, and
are contiguous, no copying is necessary. You can use
bufferIsSpanFast to determine if copying is needed.
|
|
|
bufferMerge |
:: (BufferClass bufferT1, BufferClass bufferT2) | | => bufferT1 | buffer2 - a buffer
| -> bufferT2 | the concatenation of the buffers
| -> Buffer | | Concatenate two buffers. If the buffers point to contiguous memory
areas, no copying will occur.
|
|
|
Produced by Haddock version 2.6.0 |