|
Media.Streaming.GStreamer.Core.Buffer |
|
|
|
|
|
Synopsis |
|
data Buffer | | class MiniObjectClass o => BufferClass o | | | | castToBuffer :: MiniObjectClass obj => obj -> Buffer | | toBuffer :: BufferClass o => o -> Buffer | | isBuffer :: BufferClass o => o -> Bool | | 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 | |
|
|
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 | |
|
|
castToBuffer :: MiniObjectClass obj => obj -> Buffer |
|
toBuffer :: BufferClass o => o -> Buffer |
|
isBuffer :: BufferClass o => o -> Bool |
|
Buffer Operations
|
|
bufferOffsetNone :: BufferOffset |
The undefined BufferOffset value.
|
|
bufferGetFlags |
|
|
bufferGetFlagsM |
|
|
bufferSetFlagsM |
|
|
bufferUnsetFlagsM |
|
|
bufferGetSize |
:: BufferClass bufferT | | => bufferT | buffer - a Buffer
| -> Word | the size of buffer in bytes
| Get buffer's size in bytes.
|
|
|
bufferGetSizeM |
|
|
bufferGetData |
:: BufferClass bufferT | | => bufferT | buffer - a Buffer
| -> ByteString | the data stored in buffer
| Make an O(n) copy of the data stored in buffer.
|
|
|
bufferGetDataM |
|
|
bufferSetDataM |
|
|
unsafeBufferGetPtrM |
:: (BufferClass bufferT, MonadIO m) | | => MiniObjectT bufferT m (Ptr Word8) | a pointer to the data stored in the current Buffer
| 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 | buffer - a buffer
| -> Bool | True if buffer marks a discontinuity in a stream
| 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 |
:: (BufferClass bufferT, MonadIO m) | | => MiniObjectT bufferT m Bool | True if the current buffer marks a
discontinuity in a stream
| Return True if the current Buffer marks a discontinuity in a
stream, or False otherwise.
|
|
|
bufferCreateEmpty |
:: MonadIO m | | => MiniObjectT Buffer m a | mutate - the mutating action
| -> m (Buffer, a) | the new buffer and the action's result
| 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 | parent - the parent buffer
| -> Word | offset - the offset
| -> Word | size - the size
| -> Maybe Buffer | the new sub-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 |
:: (BufferClass bufferT1, BufferClass bufferT2) | | => bufferT1 | buffer1 - the first buffer
| -> bufferT2 | buffer2 - the second buffer
| -> Bool | True if the buffers are contiguous,
or False if copying would be
required
| Return True if bufferSpan can be done without copying the
data, or False otherwise.
|
|
|
bufferSpan |
:: (BufferClass bufferT1, BufferClass bufferT2) | | => bufferT1 | buffer1 - the first buffer
| -> Word32 | offset - the offset into the concatenated buffer
| -> bufferT2 | buffer2 - the second buffer
| -> Word32 | len - the length of the final buffer
| -> Maybe Buffer | the spanning buffer, or Nothing if
the arguments are invalid
| 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 | buffer1 - a buffer
| -> bufferT2 | buffer2 - a buffer
| -> Buffer | the concatenation of the buffers
| Concatenate two buffers. If the buffers point to contiguous memory
areas, no copying will occur.
|
|
|
Produced by Haddock version 2.4.2 |