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 |
- Exported types
- Methods
- capsAppend
- capsAppendStructure
- capsAppendStructureFull
- capsCanIntersect
- capsCopyNth
- capsFilterAndMapInPlace
- capsFixate
- capsForeach
- capsFromString
- capsGetFeatures
- capsGetSize
- capsGetStructure
- capsIntersect
- capsIntersectFull
- capsIsAlwaysCompatible
- capsIsAny
- capsIsEmpty
- capsIsEqual
- capsIsEqualFixed
- capsIsFixed
- capsIsStrictlyEqual
- capsIsSubset
- capsIsSubsetStructure
- capsIsSubsetStructureFull
- capsMapInPlace
- capsMerge
- capsMergeStructure
- capsMergeStructureFull
- capsNewAny
- capsNewEmpty
- capsNewEmptySimple
- capsNormalize
- capsRemoveStructure
- capsSetFeatures
- capsSetValue
- capsSimplify
- capsStealStructure
- capsSubtract
- capsToString
- capsTruncate
- Properties
Caps (capabilities) are lightweight refcounted objects describing media types. They are composed of an array of #GstStructure.
Caps are exposed on #GstPadTemplate to describe all possible types a given pad can handle. They are also stored in the #GstRegistry along with a description of the #GstElement.
Caps are exposed on the element pads using the gst_pad_query_caps() pad function. This function describes the possible types that the pad can handle or produce at runtime.
A #GstCaps can be constructed with the following code fragment: |[ GstCaps *caps = gst_caps_new_simple ("video/x-raw", "format", G_TYPE_STRING, I420, "framerate", GST_TYPE_FRACTION, 25, 1, "pixel-aspect-ratio", GST_TYPE_FRACTION, 1, 1, "width", G_TYPE_INT, 320, "height", G_TYPE_INT, 240, NULL); ]|
A #GstCaps is fixed when it has no properties with ranges or lists. Use gst_caps_is_fixed() to test for fixed caps. Fixed caps can be used in a caps event to notify downstream elements of the current media type.
Various methods exist to work with the media types such as subtracting or intersecting.
Be aware that the current GstStructure serialization into string has limited support for nested GstStructure fields. It can only support one level of nesting. Using more levels will lead to unexpected behavior when using serialization features, such as gst_caps_to_string() or gst_value_serialize() and their counterparts.
- newtype Caps = Caps (ForeignPtr Caps)
- newZeroCaps :: MonadIO m => m Caps
- noCaps :: Maybe Caps
- data CapsAppendMethodInfo
- capsAppend :: MonadIO m => Caps -> Caps -> m ()
- data CapsAppendStructureMethodInfo
- capsAppendStructure :: MonadIO m => Caps -> Structure -> m ()
- data CapsAppendStructureFullMethodInfo
- capsAppendStructureFull :: MonadIO m => Caps -> Structure -> Maybe CapsFeatures -> m ()
- data CapsCanIntersectMethodInfo
- capsCanIntersect :: MonadIO m => Caps -> Caps -> m Bool
- data CapsCopyNthMethodInfo
- capsCopyNth :: MonadIO m => Caps -> Word32 -> m Caps
- data CapsFilterAndMapInPlaceMethodInfo
- capsFilterAndMapInPlace :: MonadIO m => Caps -> CapsFilterMapFunc -> m ()
- data CapsFixateMethodInfo
- capsFixate :: MonadIO m => Caps -> m Caps
- data CapsForeachMethodInfo
- capsForeach :: MonadIO m => Caps -> CapsForeachFunc -> m Bool
- capsFromString :: MonadIO m => Text -> m Caps
- data CapsGetFeaturesMethodInfo
- capsGetFeatures :: MonadIO m => Caps -> Word32 -> m CapsFeatures
- data CapsGetSizeMethodInfo
- capsGetSize :: MonadIO m => Caps -> m Word32
- data CapsGetStructureMethodInfo
- capsGetStructure :: MonadIO m => Caps -> Word32 -> m Structure
- data CapsIntersectMethodInfo
- capsIntersect :: MonadIO m => Caps -> Caps -> m Caps
- data CapsIntersectFullMethodInfo
- capsIntersectFull :: MonadIO m => Caps -> Caps -> CapsIntersectMode -> m Caps
- data CapsIsAlwaysCompatibleMethodInfo
- capsIsAlwaysCompatible :: MonadIO m => Caps -> Caps -> m Bool
- data CapsIsAnyMethodInfo
- capsIsAny :: MonadIO m => Caps -> m Bool
- data CapsIsEmptyMethodInfo
- capsIsEmpty :: MonadIO m => Caps -> m Bool
- data CapsIsEqualMethodInfo
- capsIsEqual :: MonadIO m => Caps -> Caps -> m Bool
- data CapsIsEqualFixedMethodInfo
- capsIsEqualFixed :: MonadIO m => Caps -> Caps -> m Bool
- data CapsIsFixedMethodInfo
- capsIsFixed :: MonadIO m => Caps -> m Bool
- data CapsIsStrictlyEqualMethodInfo
- capsIsStrictlyEqual :: MonadIO m => Caps -> Caps -> m Bool
- data CapsIsSubsetMethodInfo
- capsIsSubset :: MonadIO m => Caps -> Caps -> m Bool
- data CapsIsSubsetStructureMethodInfo
- capsIsSubsetStructure :: MonadIO m => Caps -> Structure -> m Bool
- data CapsIsSubsetStructureFullMethodInfo
- capsIsSubsetStructureFull :: MonadIO m => Caps -> Structure -> Maybe CapsFeatures -> m Bool
- data CapsMapInPlaceMethodInfo
- capsMapInPlace :: MonadIO m => Caps -> CapsMapFunc -> m Bool
- data CapsMergeMethodInfo
- capsMerge :: MonadIO m => Caps -> Caps -> m Caps
- data CapsMergeStructureMethodInfo
- capsMergeStructure :: MonadIO m => Caps -> Structure -> m Caps
- data CapsMergeStructureFullMethodInfo
- capsMergeStructureFull :: MonadIO m => Caps -> Structure -> Maybe CapsFeatures -> m Caps
- capsNewAny :: MonadIO m => m Caps
- capsNewEmpty :: MonadIO m => m Caps
- capsNewEmptySimple :: MonadIO m => Text -> m Caps
- data CapsNormalizeMethodInfo
- capsNormalize :: MonadIO m => Caps -> m Caps
- data CapsRemoveStructureMethodInfo
- capsRemoveStructure :: MonadIO m => Caps -> Word32 -> m ()
- data CapsSetFeaturesMethodInfo
- capsSetFeatures :: MonadIO m => Caps -> Word32 -> Maybe CapsFeatures -> m ()
- data CapsSetValueMethodInfo
- capsSetValue :: MonadIO m => Caps -> Text -> GValue -> m ()
- data CapsSimplifyMethodInfo
- capsSimplify :: MonadIO m => Caps -> m Caps
- data CapsStealStructureMethodInfo
- capsStealStructure :: MonadIO m => Caps -> Word32 -> m Structure
- data CapsSubtractMethodInfo
- capsSubtract :: MonadIO m => Caps -> Caps -> m Caps
- data CapsToStringMethodInfo
- capsToString :: MonadIO m => Caps -> m Text
- data CapsTruncateMethodInfo
- capsTruncate :: MonadIO m => Caps -> m Caps
- capsReadMiniObject :: Caps -> IO MiniObject
Exported types
newZeroCaps :: MonadIO m => m Caps Source
Construct a Caps
struct initialized to zero.
Methods
capsAppend
data CapsAppendMethodInfo Source
((~) (TYPE Lifted) signature (Caps -> m ()), MonadIO m) => MethodInfo (TYPE Lifted) CapsAppendMethodInfo Caps signature Source | |
capsAppend :: MonadIO m => Caps -> Caps -> m () Source
capsAppendStructure
data CapsAppendStructureMethodInfo Source
((~) (TYPE Lifted) signature (Structure -> m ()), MonadIO m) => MethodInfo (TYPE Lifted) CapsAppendStructureMethodInfo Caps signature Source | |
capsAppendStructure :: MonadIO m => Caps -> Structure -> m () Source
capsAppendStructureFull
data CapsAppendStructureFullMethodInfo Source
((~) (TYPE Lifted) signature (Structure -> Maybe CapsFeatures -> m ()), MonadIO m) => MethodInfo (TYPE Lifted) CapsAppendStructureFullMethodInfo Caps signature Source | |
capsAppendStructureFull :: MonadIO m => Caps -> Structure -> Maybe CapsFeatures -> m () Source
capsCanIntersect
capsCopyNth
capsFilterAndMapInPlace
data CapsFilterAndMapInPlaceMethodInfo Source
((~) (TYPE Lifted) signature (CapsFilterMapFunc -> m ()), MonadIO m) => MethodInfo (TYPE Lifted) CapsFilterAndMapInPlaceMethodInfo Caps signature Source | |
capsFilterAndMapInPlace :: MonadIO m => Caps -> CapsFilterMapFunc -> m () Source
capsFixate
data CapsFixateMethodInfo Source
((~) (TYPE Lifted) signature (m Caps), MonadIO m) => MethodInfo (TYPE Lifted) CapsFixateMethodInfo Caps signature Source | |
capsFixate :: MonadIO m => Caps -> m Caps Source
capsForeach
data CapsForeachMethodInfo Source
((~) (TYPE Lifted) signature (CapsForeachFunc -> m Bool), MonadIO m) => MethodInfo (TYPE Lifted) CapsForeachMethodInfo Caps signature Source | |
capsForeach :: MonadIO m => Caps -> CapsForeachFunc -> m Bool Source
capsFromString
capsFromString :: MonadIO m => Text -> m Caps Source
capsGetFeatures
data CapsGetFeaturesMethodInfo Source
((~) (TYPE Lifted) signature (Word32 -> m CapsFeatures), MonadIO m) => MethodInfo (TYPE Lifted) CapsGetFeaturesMethodInfo Caps signature Source | |
capsGetFeatures :: MonadIO m => Caps -> Word32 -> m CapsFeatures Source
capsGetSize
data CapsGetSizeMethodInfo Source
((~) (TYPE Lifted) signature (m Word32), MonadIO m) => MethodInfo (TYPE Lifted) CapsGetSizeMethodInfo Caps signature Source | |
capsGetSize :: MonadIO m => Caps -> m Word32 Source
capsGetStructure
capsIntersect
capsIntersectFull
data CapsIntersectFullMethodInfo Source
((~) (TYPE Lifted) signature (Caps -> CapsIntersectMode -> m Caps), MonadIO m) => MethodInfo (TYPE Lifted) CapsIntersectFullMethodInfo Caps signature Source | |
capsIntersectFull :: MonadIO m => Caps -> Caps -> CapsIntersectMode -> m Caps Source
capsIsAlwaysCompatible
capsIsAny
data CapsIsAnyMethodInfo Source
((~) (TYPE Lifted) signature (m Bool), MonadIO m) => MethodInfo (TYPE Lifted) CapsIsAnyMethodInfo Caps signature Source | |
capsIsEmpty
data CapsIsEmptyMethodInfo Source
((~) (TYPE Lifted) signature (m Bool), MonadIO m) => MethodInfo (TYPE Lifted) CapsIsEmptyMethodInfo Caps signature Source | |
capsIsEmpty :: MonadIO m => Caps -> m Bool Source
capsIsEqual
capsIsEqualFixed
capsIsFixed
data CapsIsFixedMethodInfo Source
((~) (TYPE Lifted) signature (m Bool), MonadIO m) => MethodInfo (TYPE Lifted) CapsIsFixedMethodInfo Caps signature Source | |
capsIsFixed :: MonadIO m => Caps -> m Bool Source
capsIsStrictlyEqual
capsIsSubset
capsIsSubsetStructure
capsIsSubsetStructureFull
data CapsIsSubsetStructureFullMethodInfo Source
((~) (TYPE Lifted) signature (Structure -> Maybe CapsFeatures -> m Bool), MonadIO m) => MethodInfo (TYPE Lifted) CapsIsSubsetStructureFullMethodInfo Caps signature Source | |
capsIsSubsetStructureFull :: MonadIO m => Caps -> Structure -> Maybe CapsFeatures -> m Bool Source
capsMapInPlace
data CapsMapInPlaceMethodInfo Source
((~) (TYPE Lifted) signature (CapsMapFunc -> m Bool), MonadIO m) => MethodInfo (TYPE Lifted) CapsMapInPlaceMethodInfo Caps signature Source | |
capsMapInPlace :: MonadIO m => Caps -> CapsMapFunc -> m Bool Source
capsMerge
capsMergeStructure
capsMergeStructureFull
data CapsMergeStructureFullMethodInfo Source
((~) (TYPE Lifted) signature (Structure -> Maybe CapsFeatures -> m Caps), MonadIO m) => MethodInfo (TYPE Lifted) CapsMergeStructureFullMethodInfo Caps signature Source | |
capsMergeStructureFull :: MonadIO m => Caps -> Structure -> Maybe CapsFeatures -> m Caps Source
capsNewAny
capsNewAny :: MonadIO m => m Caps Source
capsNewEmpty
capsNewEmpty :: MonadIO m => m Caps Source
capsNewEmptySimple
capsNewEmptySimple :: MonadIO m => Text -> m Caps Source
capsNormalize
data CapsNormalizeMethodInfo Source
((~) (TYPE Lifted) signature (m Caps), MonadIO m) => MethodInfo (TYPE Lifted) CapsNormalizeMethodInfo Caps signature Source | |
capsNormalize :: MonadIO m => Caps -> m Caps Source
capsRemoveStructure
data CapsRemoveStructureMethodInfo Source
((~) (TYPE Lifted) signature (Word32 -> m ()), MonadIO m) => MethodInfo (TYPE Lifted) CapsRemoveStructureMethodInfo Caps signature Source | |
capsRemoveStructure :: MonadIO m => Caps -> Word32 -> m () Source
capsSetFeatures
data CapsSetFeaturesMethodInfo Source
((~) (TYPE Lifted) signature (Word32 -> Maybe CapsFeatures -> m ()), MonadIO m) => MethodInfo (TYPE Lifted) CapsSetFeaturesMethodInfo Caps signature Source | |
capsSetFeatures :: MonadIO m => Caps -> Word32 -> Maybe CapsFeatures -> m () Source
capsSetValue
capsSimplify
data CapsSimplifyMethodInfo Source
((~) (TYPE Lifted) signature (m Caps), MonadIO m) => MethodInfo (TYPE Lifted) CapsSimplifyMethodInfo Caps signature Source | |
capsSimplify :: MonadIO m => Caps -> m Caps Source
capsStealStructure
capsSubtract
capsToString
data CapsToStringMethodInfo Source
((~) (TYPE Lifted) signature (m Text), MonadIO m) => MethodInfo (TYPE Lifted) CapsToStringMethodInfo Caps signature Source | |
capsToString :: MonadIO m => Caps -> m Text Source
capsTruncate
data CapsTruncateMethodInfo Source
((~) (TYPE Lifted) signature (m Caps), MonadIO m) => MethodInfo (TYPE Lifted) CapsTruncateMethodInfo Caps signature Source | |
capsTruncate :: MonadIO m => Caps -> m Caps Source
Properties
MiniObject
capsReadMiniObject :: Caps -> IO MiniObject Source