| 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 |
GI.Gst.Structs.Memory
Contents
Description
GstMemory is a lightweight refcounted object that wraps a region of memory. They are typically used to manage the data of a #GstBuffer.
A GstMemory object has an allocated region of memory of maxsize. The maximum size does not change during the lifetime of the memory object. The memory also has an offset and size property that specifies the valid range of memory in the allocated region.
Memory is usually created by allocators with a gst_allocator_alloc() method call. When %NULL is used as the allocator, the default allocator will be used.
New allocators can be registered with gst_allocator_register(). Allocators are identified by name and can be retrieved with gst_allocator_find(). gst_allocator_set_default() can be used to change the default allocator.
New memory can be created with gst_memory_new_wrapped() that wraps the memory allocated elsewhere.
Refcounting of the memory block is performed with gst_memory_ref() and gst_memory_unref().
The size of the memory can be retrieved and changed with gst_memory_get_sizes() and gst_memory_resize() respectively.
Getting access to the data of the memory is performed with gst_memory_map(). The call will return a pointer to offset bytes into the region of memory. After the memory access is completed, gst_memory_unmap() should be called.
Memory can be copied with gst_memory_copy(), which will return a writable copy. gst_memory_share() will create a new memory block that shares the memory with an existing memory block at a custom offset and with a custom size.
Memory can be efficiently merged when gst_memory_is_span() returns %TRUE.
- newtype Memory = Memory (ForeignPtr Memory)
- newZeroMemory :: MonadIO m => m Memory
- noMemory :: Maybe Memory
- data MemoryCopyMethodInfo
- memoryCopy :: MonadIO m => Memory -> Int64 -> Int64 -> m Memory
- data MemoryGetSizesMethodInfo
- memoryGetSizes :: MonadIO m => Memory -> Word64 -> Word64 -> m Word64
- data MemoryIsSpanMethodInfo
- memoryIsSpan :: MonadIO m => Memory -> Memory -> Word64 -> m Bool
- data MemoryIsTypeMethodInfo
- memoryIsType :: MonadIO m => Memory -> Text -> m Bool
- data MemoryMakeMappedMethodInfo
- memoryMakeMapped :: MonadIO m => Memory -> [MapFlags] -> m (Maybe Memory, MapInfo)
- data MemoryMapMethodInfo
- memoryMap :: MonadIO m => Memory -> [MapFlags] -> m (Bool, MapInfo)
- memoryNewWrapped :: MonadIO m => [MemoryFlags] -> ByteString -> Word64 -> Word64 -> Maybe DestroyNotify -> m Memory
- data MemoryResizeMethodInfo
- memoryResize :: MonadIO m => Memory -> Int64 -> Word64 -> m ()
- data MemoryShareMethodInfo
- memoryShare :: MonadIO m => Memory -> Int64 -> Int64 -> m Memory
- data MemoryUnmapMethodInfo
- memoryUnmap :: MonadIO m => Memory -> MapInfo -> m ()
- memoryAlign :: AttrLabelProxy "align"
- memoryReadAlign :: MonadIO m => Memory -> m Word64
- memoryWriteAlign :: MonadIO m => Memory -> Word64 -> m ()
- memoryAllocator :: AttrLabelProxy "allocator"
- memoryClearAllocator :: MonadIO m => Memory -> m ()
- memoryReadAllocator :: MonadIO m => Memory -> m (Maybe Allocator)
- memoryWriteAllocator :: MonadIO m => Memory -> Ptr Allocator -> m ()
- memoryMaxsize :: AttrLabelProxy "maxsize"
- memoryReadMaxsize :: MonadIO m => Memory -> m Word64
- memoryWriteMaxsize :: MonadIO m => Memory -> Word64 -> m ()
- memoryClearMiniObject :: MonadIO m => Memory -> m ()
- memoryMiniObject :: AttrLabelProxy "miniObject"
- memoryReadMiniObject :: MonadIO m => Memory -> m (Maybe MiniObject)
- memoryWriteMiniObject :: MonadIO m => Memory -> Ptr MiniObject -> m ()
- memoryOffset :: AttrLabelProxy "offset"
- memoryReadOffset :: MonadIO m => Memory -> m Word64
- memoryWriteOffset :: MonadIO m => Memory -> Word64 -> m ()
- memoryClearParent :: MonadIO m => Memory -> m ()
- memoryParent :: AttrLabelProxy "parent"
- memoryReadParent :: MonadIO m => Memory -> m (Maybe Memory)
- memoryWriteParent :: MonadIO m => Memory -> Ptr Memory -> m ()
- memoryReadSize :: MonadIO m => Memory -> m Word64
- memorySize :: AttrLabelProxy "size"
- memoryWriteSize :: MonadIO m => Memory -> Word64 -> m ()
Exported types
Constructors
| Memory (ForeignPtr Memory) |
Instances
newZeroMemory :: MonadIO m => m Memory Source
Construct a Memory struct initialized to zero.
Methods
memoryCopy
data MemoryCopyMethodInfo Source
Instances
| ((~) * signature (Int64 -> Int64 -> m Memory), MonadIO m) => MethodInfo * MemoryCopyMethodInfo Memory signature Source |
memoryGetSizes
data MemoryGetSizesMethodInfo Source
Instances
| ((~) * signature (Word64 -> Word64 -> m Word64), MonadIO m) => MethodInfo * MemoryGetSizesMethodInfo Memory signature Source |
memoryIsSpan
data MemoryIsSpanMethodInfo Source
Instances
| ((~) * signature (Memory -> Word64 -> m Bool), MonadIO m) => MethodInfo * MemoryIsSpanMethodInfo Memory signature Source |
memoryIsType
data MemoryIsTypeMethodInfo Source
Instances
| ((~) * signature (Text -> m Bool), MonadIO m) => MethodInfo * MemoryIsTypeMethodInfo Memory signature Source |
memoryMakeMapped
data MemoryMakeMappedMethodInfo Source
Instances
| ((~) * signature ([MapFlags] -> m (Maybe Memory, MapInfo)), MonadIO m) => MethodInfo * MemoryMakeMappedMethodInfo Memory signature Source |
memoryMap
data MemoryMapMethodInfo Source
Instances
| ((~) * signature ([MapFlags] -> m (Bool, MapInfo)), MonadIO m) => MethodInfo * MemoryMapMethodInfo Memory signature Source |
memoryNewWrapped
memoryNewWrapped :: MonadIO m => [MemoryFlags] -> ByteString -> Word64 -> Word64 -> Maybe DestroyNotify -> m Memory Source
memoryResize
data MemoryResizeMethodInfo Source
Instances
| ((~) * signature (Int64 -> Word64 -> m ()), MonadIO m) => MethodInfo * MemoryResizeMethodInfo Memory signature Source |
memoryShare
memoryUnmap
data MemoryUnmapMethodInfo Source
Instances
| ((~) * signature (MapInfo -> m ()), MonadIO m) => MethodInfo * MemoryUnmapMethodInfo Memory signature Source |
memoryUnmap :: MonadIO m => Memory -> MapInfo -> m () Source
Properties
Align
memoryAlign :: AttrLabelProxy "align" Source
memoryReadAlign :: MonadIO m => Memory -> m Word64 Source
memoryWriteAlign :: MonadIO m => Memory -> Word64 -> m () Source
Allocator
memoryAllocator :: AttrLabelProxy "allocator" Source
memoryClearAllocator :: MonadIO m => Memory -> m () Source
Maxsize
memoryMaxsize :: AttrLabelProxy "maxsize" Source
memoryReadMaxsize :: MonadIO m => Memory -> m Word64 Source
memoryWriteMaxsize :: MonadIO m => Memory -> Word64 -> m () Source
MiniObject
memoryClearMiniObject :: MonadIO m => Memory -> m () Source
memoryMiniObject :: AttrLabelProxy "miniObject" Source
memoryReadMiniObject :: MonadIO m => Memory -> m (Maybe MiniObject) Source
memoryWriteMiniObject :: MonadIO m => Memory -> Ptr MiniObject -> m () Source
Offset
memoryOffset :: AttrLabelProxy "offset" Source
memoryReadOffset :: MonadIO m => Memory -> m Word64 Source
memoryWriteOffset :: MonadIO m => Memory -> Word64 -> m () Source
Parent
memoryClearParent :: MonadIO m => Memory -> m () Source
memoryParent :: AttrLabelProxy "parent" Source
Size
memoryReadSize :: MonadIO m => Memory -> m Word64 Source
memorySize :: AttrLabelProxy "size" Source
memoryWriteSize :: MonadIO m => Memory -> Word64 -> m () Source