gstreamer-0.12.8: Binding to the GStreamer open source multimedia framework.

Maintainergtk2hs-devel@lists.sourceforge.net
Stabilityalpha
Portabilityportable (depends on GHC)
Safe HaskellNone
LanguageHaskell98

Media.Streaming.GStreamer.Core.Buffer

Contents

Description

Data-passing buffer type, supporting sub-buffers.

Synopsis

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 BufferFlags Source #

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

Buffer Operations

bufferOffsetNone :: BufferOffset Source #

The undefined BufferOffset value.

bufferGetFlags Source #

Arguments

:: BufferClass bufferT 
=> bufferT

buffer - a Buffer

-> [BufferFlags]

the flags set on buffer

Get the flags set on buffer.

bufferGetFlagsM Source #

Arguments

:: (BufferClass bufferT, MonadIO m) 
=> MiniObjectT bufferT m [BufferFlags]

the flags set on the current Buffer

Get the flags set on the current Buffer.

bufferSetFlagsM Source #

Arguments

:: (BufferClass bufferT, MonadIO m) 
=> [BufferFlags]

flags - the flags to set on the current Buffer

-> MiniObjectT bufferT m () 

Set flags on the current Buffer.

bufferUnsetFlagsM Source #

Arguments

:: (BufferClass bufferT, MonadIO m) 
=> [BufferFlags]

flags - the flags to unset on the current Buffer

-> MiniObjectT bufferT m () 

Unset flags on the current Buffer.

bufferGetSize Source #

Arguments

:: BufferClass bufferT 
=> bufferT

buffer - a Buffer

-> Word

the size of buffer in bytes

Get buffer's size in bytes.

bufferGetSizeM Source #

Arguments

:: (BufferClass bufferT, MonadIO m) 
=> MiniObjectT bufferT m Word

the size of the current Buffer in bytes

Get the size of the current Buffer in bytes.

bufferGetData Source #

Arguments

:: BufferClass bufferT 
=> bufferT

buffer - a Buffer

-> ByteString

the data stored in buffer

Make an O(n) copy of the data stored in buffer.

bufferGetDataM Source #

Arguments

:: (BufferClass bufferT, MonadIO m) 
=> MiniObjectT bufferT m ByteString

the data stored in the current Buffer

Make an O(n) copy of the current Buffer.

bufferSetDataM Source #

Arguments

:: (BufferClass bufferT, MonadIO m) 
=> ByteString

bs - the data to store in the current Buffer

-> MiniObjectT bufferT m () 

Store an O(n) copy of the provided data in the current Buffer.

unsafeBufferGetPtrM Source #

Arguments

:: (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 Source #

Arguments

:: BufferClass bufferT 
=> bufferT

buffer - a Buffer

-> Maybe ClockTime

the timestamp on buffer

Get the timestamp on buffer.

bufferGetTimestampM Source #

Arguments

:: (BufferClass bufferT, MonadIO m) 
=> MiniObjectT bufferT m (Maybe ClockTime)

the timestamp on the current Buffer

Get the timestamp on the current Buffer.

bufferSetTimestampM Source #

Arguments

:: (BufferClass bufferT, MonadIO m) 
=> Maybe ClockTime

timestamp - the timestamp to set on the current Buffer

-> MiniObjectT bufferT m () 

Set the timestamp on the current Buffer.

bufferGetDuration Source #

Arguments

:: BufferClass bufferT 
=> bufferT

buffer - a Buffer

-> Maybe ClockTime

the duration of buffer

Get the duration of buffer.

bufferGetDurationM Source #

Arguments

:: (BufferClass bufferT, MonadIO m) 
=> MiniObjectT bufferT m (Maybe ClockTime)

the duration of the current Buffer

Get the duration of the current Buffer.

bufferSetDurationM Source #

Arguments

:: (BufferClass bufferT, MonadIO m) 
=> Maybe ClockTime

duration - the duration to set on the current Buffer

-> MiniObjectT bufferT m () 

Set the duration of the current Buffer.

bufferGetCaps Source #

Arguments

:: BufferClass bufferT 
=> bufferT

buffer - a buffer

-> Maybe Caps

the Caps of buffer if set, otherwise Nothing

Get the Caps of buffer.

bufferGetCapsM Source #

Arguments

:: (BufferClass bufferT, MonadIO m) 
=> MiniObjectT bufferT m (Maybe Caps)

the Caps of the current Buffer if set, otherwise Nothing

Get the caps of the current Buffer.

bufferSetCapsM Source #

Arguments

:: (BufferClass bufferT, MonadIO m) 
=> Maybe Caps

caps - the Caps to set on the current Buffer, or Nothing to unset them

-> MiniObjectT bufferT m () 

Set the caps of the current Buffer.

bufferGetOffset Source #

Arguments

:: BufferClass bufferT 
=> bufferT

buffer - a buffer

-> Maybe Word64

the start offset of buffer if set, otherwise Nothing

Get the start offset of the Buffer.

bufferGetOffsetM Source #

Arguments

:: (BufferClass bufferT, MonadIO m) 
=> MiniObjectT bufferT m (Maybe Word64)

the start offset of the current Buffer if set, otherwise Nothing

Get the start offset of the current Buffer.

bufferSetOffsetM Source #

Arguments

:: (BufferClass bufferT, MonadIO m) 
=> Maybe Word64

offset - the start offset to set on the current buffer

-> MiniObjectT bufferT m () 

Set the start offset of the current Buffer.

bufferGetOffsetEnd Source #

Arguments

:: BufferClass bufferT 
=> bufferT

buffer - a buffer

-> Maybe Word64

the end offset of buffer if set, otherwise Nothing

Get the end offset of the Buffer.

bufferGetOffsetEndM Source #

Arguments

:: (BufferClass bufferT, MonadIO m) 
=> MiniObjectT bufferT m (Maybe Word64)

the start offset of the current Buffer if set, otherwise Nothing

Get the end offset of the current Buffer.

bufferSetOffsetEndM Source #

Arguments

:: (BufferClass bufferT, MonadIO m) 
=> Maybe Word64

offset - the end offset to set on the current buffer

-> MiniObjectT bufferT m () 

Set the end offset of the current Buffer.

bufferIsDiscont Source #

Arguments

:: 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 Source #

Arguments

:: (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 Source #

Arguments

:: 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 Source #

Arguments

:: MonadIO m 
=> Word

size - the size of the Buffer to be created

-> MiniObjectT Buffer m a

mutate - the mutating action

-> m (Buffer, a)

the new Buffer and the action's result

Create and mutate a Buffer of the given size.

bufferCreateSub Source #

Arguments

:: 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 Source #

Arguments

:: (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 Source #

Arguments

:: (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 Source #

Arguments

:: (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.