Klasse Caps

Alle implementierten Schnittstellen:
PointerInterface

public class Caps extends Record
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:

``` C
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 fields 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 until 1.20 the #GstCaps / #GstStructure serialization into string
had limited support for nested #GstCaps / #GstStructure fields. It could only
support one level of nesting. Using more levels would lead to unexpected
behavior when using serialization features, such as gst_caps_to_string() or
gst_value_serialize() and their counterparts.

https://gstreamer.freedesktop.org/documentation/gstreamer/gi-index.html

  • Felddetails

    • MINI_OBJECT

      public static final String MINI_OBJECT
      the parent type
      Private field: direct-type
      Siehe auch:
  • Konstruktordetails

  • Methodendetails

    • getClassHandler

      public static ClassHandler getClassHandler()
    • newAnyCaps

      public static Caps newAnyCaps()
      Creates a new #GstCaps that indicates that it is compatible with
      any media format.
      Gibt zurück:
      the new #GstCaps
    • newEmptyCaps

      public static Caps newEmptyCaps()
      Creates a new #GstCaps that is empty. That is, the returned
      #GstCaps contains no media formats.
      The #GstCaps is guaranteed to be writable.
      Gibt zurück:
      the new #GstCaps
    • newEmptySimpleCaps

      public static Caps newEmptySimpleCaps(@Nonnull Str media_type)
      Creates a new #GstCaps that contains one #GstStructure with name
      @media_type.
      Parameter:
      media_type - the media type of the structure
      Gibt zurück:
      the new #GstCaps
    • newEmptySimpleCaps

      public static Caps newEmptySimpleCaps(String media_type)
      Creates a new #GstCaps that contains one #GstStructure with name
      @media_type.
      Parameter:
      media_type - the media type of the structure
      Gibt zurück:
      the new #GstCaps
    • newFullCaps

      public static Caps newFullCaps(@Nonnull Structure struct1, Object... _ellipsis)
      Creates a new #GstCaps and adds all the structures listed as
      arguments. The list must be %NULL-terminated. The structures
      are not copied; the returned #GstCaps owns the structures.
      Parameter:
      struct1 - the first structure to add
      _ellipsis - additional structures to add
      Gibt zurück:
      the new #GstCaps
    • newIdStrEmptySimpleCaps

      public static Caps newIdStrEmptySimpleCaps(@Nonnull IdStr media_type)
      Creates a new #GstCaps that contains one #GstStructure with name
      @media_type.
      Parameter:
      media_type - the media type of the structure
      Gibt zurück:
      the new #GstCaps
    • newIdStrSimpleCaps

      public static Caps newIdStrSimpleCaps(@Nonnull IdStr media_type, @Nonnull IdStr fieldname, Object... _ellipsis)
      Creates a new #GstCaps that contains one #GstStructure. The
      structure is defined by the arguments, which have the same format
      as gst_structure_new().
      Parameter:
      media_type - the media type of the structure
      fieldname - first field to set
      _ellipsis - additional arguments
      Gibt zurück:
      the new #GstCaps
    • newSimpleCaps

      public static Caps newSimpleCaps(@Nonnull Str media_type, @Nonnull Str fieldname, Object... _ellipsis)
      Creates a new #GstCaps that contains one #GstStructure. The
      structure is defined by the arguments, which have the same format
      as gst_structure_new().
      Parameter:
      media_type - the media type of the structure
      fieldname - first field to set
      _ellipsis - additional arguments
      Gibt zurück:
      the new #GstCaps
    • newSimpleCaps

      public static Caps newSimpleCaps(String media_type, String fieldname, Object... _ellipsis)
      Creates a new #GstCaps that contains one #GstStructure. The
      structure is defined by the arguments, which have the same format
      as gst_structure_new().
      Parameter:
      media_type - the media type of the structure
      fieldname - first field to set
      _ellipsis - additional arguments
      Gibt zurück:
      the new #GstCaps
    • newStaticStrEmptySimpleCaps

      public static Caps newStaticStrEmptySimpleCaps(@Nonnull Str media_type)
      Creates a new #GstCaps that contains one #GstStructure with name
      @media_type.

      @media_type needs to be valid for the remaining lifetime of the process, e.g.
      has to be a static string.
      Parameter:
      media_type - the media type of the structure
      Gibt zurück:
      the new #GstCaps
    • newStaticStrEmptySimpleCaps

      public static Caps newStaticStrEmptySimpleCaps(String media_type)
      Creates a new #GstCaps that contains one #GstStructure with name
      @media_type.

      @media_type needs to be valid for the remaining lifetime of the process, e.g.
      has to be a static string.
      Parameter:
      media_type - the media type of the structure
      Gibt zurück:
      the new #GstCaps
    • newStaticStrSimpleCaps

      public static Caps newStaticStrSimpleCaps(@Nonnull Str media_type, @Nonnull Str fieldname, Object... _ellipsis)
      Creates a new #GstCaps that contains one #GstStructure. The
      structure is defined by the arguments, which have the same format
      as gst_structure_new().

      @media_type, @fieldname and all other fieldnames need to be valid for the
      remaining lifetime of the process, e.g. have to be static strings.
      Parameter:
      media_type - the media type of the structure
      fieldname - first field to set
      _ellipsis - additional arguments
      Gibt zurück:
      the new #GstCaps
    • newStaticStrSimpleCaps

      public static Caps newStaticStrSimpleCaps(String media_type, String fieldname, Object... _ellipsis)
      Creates a new #GstCaps that contains one #GstStructure. The
      structure is defined by the arguments, which have the same format
      as gst_structure_new().

      @media_type, @fieldname and all other fieldnames need to be valid for the
      remaining lifetime of the process, e.g. have to be static strings.
      Parameter:
      media_type - the media type of the structure
      fieldname - first field to set
      _ellipsis - additional arguments
      Gibt zurück:
      the new #GstCaps
    • append

      public void append(@Nonnull Caps caps2)
      Appends the structures contained in @caps2 to @caps1. The structures in
      @caps2 are not copied -- they are transferred to @caps1, and then @caps2 is
      freed. If either caps is ANY, the resulting caps will be ANY.
      Parameter:
      caps2 - the #GstCaps to append
    • appendStructure

      public void appendStructure(@Nonnull Structure structure)
      Appends @structure to @caps. The structure is not copied; @caps
      becomes the owner of @structure.
      Parameter:
      structure - the #GstStructure to append
    • appendStructureFull

      public void appendStructureFull(@Nonnull Structure structure, @Nullable CapsFeatures features)
      Appends @structure with @features to @caps. The structure is not copied; @caps
      becomes the owner of @structure.
      Parameter:
      structure - the #GstStructure to append
      features - the #GstCapsFeatures to append
    • canIntersect

      public boolean canIntersect(@Nonnull Caps caps2)
      Tries intersecting @caps1 and @caps2 and reports whether the result would not
      be empty
      Parameter:
      caps2 - a #GstCaps to intersect
      Gibt zurück:
      %TRUE if intersection would be not empty
    • copy

      public Caps copy()
      Creates a new #GstCaps as a copy of the old @caps. The new caps will have a
      refcount of 1, owned by the caller. The structures are copied as well.

      Note that this function is the semantic equivalent of a gst_caps_ref()
      followed by a gst_caps_make_writable(). If you only want to hold on to a
      reference to the data, you should use gst_caps_ref().
      Gibt zurück:
      the new #GstCaps
    • copyNth

      public Caps copyNth(int nth)
      Creates a new #GstCaps and appends a copy of the nth structure
      contained in @caps.
      Parameter:
      nth - the nth structure to copy
      Gibt zurück:
      the new #GstCaps
    • filterAndMapInPlace

      public void filterAndMapInPlace(Caps.OnCapsFilterMapFunc func, @Nullable Pointer user_data)
      Calls the provided function once for each structure and caps feature in the
      #GstCaps. In contrast to gst_caps_foreach(), the function may modify the
      structure and features. In contrast to gst_caps_map_in_place(), the structure
      and features are removed from the caps if %FALSE is returned from the
      function. The caps must be mutable.
      Parameter:
      func - a function to call for each field
      user_data - private data
    • fixate

      public Caps fixate()
      Modifies the given @caps into a representation with only fixed
      values. First the caps will be truncated and then the first structure will be
      fixated with gst_structure_fixate().

      This function takes ownership of @caps and will call gst_caps_make_writable()
      on it so you must not use @caps afterwards unless you keep an additional
      reference to it with gst_caps_ref().

      Note that it is not guaranteed that the returned caps have exactly one
      structure. If @caps are empty caps then the returned caps will be
      the empty too and contain no structure at all.

      Calling this function with ANY caps is not allowed.
      Gibt zurück:
      the fixated caps
    • foreach

      public boolean foreach(Caps.OnCapsForeachFunc func, @Nullable Pointer user_data)
      Calls the provided function once for each structure and caps feature in the
      #GstCaps. The function must not modify the fields.
      Also see gst_caps_map_in_place() and gst_caps_filter_and_map_in_place().
      Parameter:
      func - a function to call for each field
      user_data - private data
      Gibt zurück:
      %TRUE if the supplied function returns %TRUE for each call, %FALSE otherwise.
    • getFeatures

      public CapsFeatures getFeatures(int index)
      Finds the features in @caps at @index, and returns it.

      WARNING: This function takes a `const GstCaps *`, but returns a
      non-const `GstCapsFeatures *`. This is for programming convenience --
      the caller should be aware that features inside a constant
      #GstCaps should not be modified. However, if you know the caps
      are writable, either because you have just copied them or made
      them writable with gst_caps_make_writable(), you may modify the
      features returned in the usual way, e.g. with functions like
      gst_caps_features_add().
      Parameter:
      index - the index of the structure
      Gibt zurück:
      a pointer to the #GstCapsFeatures corresponding to @index
    • getSize

      public int getSize()
      Gets the number of structures contained in @caps.
      Gibt zurück:
      the number of structures that @caps contains
    • getStructure

      public Structure getStructure(int index)
      Finds the structure in @caps at @index, and returns it.

      WARNING: This function takes a `const GstCaps *`, but returns a
      non-const `GstStructure *`. This is for programming convenience --
      the caller should be aware that structures inside a constant
      #GstCaps should not be modified. However, if you know the caps
      are writable, either because you have just copied them or made
      them writable with gst_caps_make_writable(), you may modify the
      structure returned in the usual way, e.g. with functions like
      gst_structure_set().
      Parameter:
      index - the index of the structure
      Gibt zurück:
      a pointer to the #GstStructure corresponding to @index
    • idStrSetSimple

      public void idStrSetSimple(@Nonnull IdStr field, Object... _ellipsis)
      Sets fields in a #GstCaps. The arguments must be passed in the same
      manner as gst_structure_id_str_set(), and be %NULL-terminated.
      Parameter:
      field - first field to set
      _ellipsis - additional parameters
    • idStrSetValue

      public void idStrSetValue(@Nonnull IdStr field, @Nonnull Value value)
      Sets the given @field on all structures of @caps to the given @value.
      This is a convenience function for calling gst_structure_set_value() on
      all structures of @caps.
      Parameter:
      field - name of the field to set
      value - value to set the field to
    • intersect

      public Caps intersect(@Nonnull Caps caps2)
      Creates a new #GstCaps that contains all the formats that are common
      to both @caps1 and @caps2. Defaults to %GST_CAPS_INTERSECT_ZIG_ZAG mode.
      Parameter:
      caps2 - a #GstCaps to intersect
      Gibt zurück:
      the new #GstCaps
    • intersectFull

      public Caps intersectFull(@Nonnull Caps caps2, int mode)
      Creates a new #GstCaps that contains all the formats that are common
      to both @caps1 and @caps2, the order is defined by the #GstCapsIntersectMode
      used.
      Parameter:
      caps2 - a #GstCaps to intersect
      mode - The intersection algorithm/mode to use
      Gibt zurück:
      the new #GstCaps
    • isAlwaysCompatible

      public boolean isAlwaysCompatible(@Nonnull Caps caps2)
      A given #GstCaps structure is always compatible with another if
      every media format that is in the first is also contained in the
      second. That is, @caps1 is a subset of @caps2.
      Parameter:
      caps2 - the #GstCaps to test
      Gibt zurück:
      %TRUE if @caps1 is a subset of @caps2.
    • isAny

      public boolean isAny()
      Determines if @caps represents any media format.
      Gibt zurück:
      %TRUE if @caps represents any format.
    • isEmpty

      public boolean isEmpty()
      Determines if @caps represents no media formats.
      Gibt zurück:
      %TRUE if @caps represents no formats.
    • isEqual

      public boolean isEqual(@Nonnull Caps caps2)
      Checks if the given caps represent the same set of caps.
      Parameter:
      caps2 - another #GstCaps
      Gibt zurück:
      %TRUE if both caps are equal.
    • isEqualFixed

      public boolean isEqualFixed(@Nonnull Caps caps2)
      Tests if two #GstCaps are equal. This function only works on fixed
      #GstCaps.
      Parameter:
      caps2 - the #GstCaps to test
      Gibt zurück:
      %TRUE if the arguments represent the same format
    • isFixed

      public boolean isFixed()
      Fixed #GstCaps describe exactly one format, that is, they have exactly
      one structure, and each field in the structure describes a fixed type.
      Examples of non-fixed types are GST_TYPE_INT_RANGE and GST_TYPE_LIST.
      Gibt zurück:
      %TRUE if @caps is fixed
    • isStrictlyEqual

      public boolean isStrictlyEqual(@Nonnull Caps caps2)
      Checks if the given caps are exactly the same set of caps.
      Parameter:
      caps2 - another #GstCaps
      Gibt zurück:
      %TRUE if both caps are strictly equal.
    • isSubset

      public boolean isSubset(@Nonnull Caps superset)
      Checks if all caps represented by @subset are also represented by @superset.
      Parameter:
      superset - a potentially greater #GstCaps
      Gibt zurück:
      %TRUE if @subset is a subset of @superset
    • isSubsetStructure

      public boolean isSubsetStructure(@Nonnull Structure structure)
      Checks if @structure is a subset of @caps. See gst_caps_is_subset()
      for more information.
      Parameter:
      structure - a potential #GstStructure subset of @caps
      Gibt zurück:
      %TRUE if @structure is a subset of @caps
    • isSubsetStructureFull

      public boolean isSubsetStructureFull(@Nonnull Structure structure, @Nullable CapsFeatures features)
      Checks if @structure is a subset of @caps. See gst_caps_is_subset()
      for more information.
      Parameter:
      structure - a potential #GstStructure subset of @caps
      features - a #GstCapsFeatures for @structure
      Gibt zurück:
      %TRUE if @structure is a subset of @caps
    • mapInPlace

      public boolean mapInPlace(Caps.OnCapsMapFunc func, @Nullable Pointer user_data)
      Calls the provided function once for each structure and caps feature in the
      #GstCaps. In contrast to gst_caps_foreach(), the function may modify but not
      delete the structures and features. The caps must be mutable.
      Parameter:
      func - a function to call for each field
      user_data - private data
      Gibt zurück:
      %TRUE if the supplied function returns %TRUE for each call, %FALSE otherwise.
    • merge

      public Caps merge(@Nonnull Caps caps2)
      Appends the structures contained in @caps2 to @caps1 if they are not yet
      expressed by @caps1. The structures in @caps2 are not copied -- they are
      transferred to a writable copy of @caps1, and then @caps2 is freed.
      If either caps is ANY, the resulting caps will be ANY.
      Parameter:
      caps2 - the #GstCaps to merge in
      Gibt zurück:
      the merged caps.
    • mergeStructure

      public Caps mergeStructure(@Nonnull Structure structure)
      Appends @structure to @caps if it is not already expressed by @caps.
      Parameter:
      structure - the #GstStructure to merge
      Gibt zurück:
      the merged caps.
    • mergeStructureFull

      public Caps mergeStructureFull(@Nonnull Structure structure, @Nullable CapsFeatures features)
      Appends @structure with @features to @caps if its not already expressed by @caps.
      Parameter:
      structure - the #GstStructure to merge
      features - the #GstCapsFeatures to merge
      Gibt zurück:
      the merged caps.
    • normalize

      public Caps normalize()
      Returns a #GstCaps that represents the same set of formats as
      @caps, but contains no lists. Each list is expanded into separate
      #GstStructure.

      This function takes ownership of @caps and will call gst_caps_make_writable()
      on it so you must not use @caps afterwards unless you keep an additional
      reference to it with gst_caps_ref().
      Gibt zurück:
      the normalized #GstCaps
    • removeStructure

      public void removeStructure(int idx)
      Removes the structure with the given index from the list of structures
      contained in @caps.
      Parameter:
      idx - Index of the structure to remove
    • serialize

      public Str serialize(int flags)
      Converts @caps to a string representation. This string representation can be
      converted back to a #GstCaps by gst_caps_from_string().

      This prints the caps in human readable form.

      This version of the caps serialization function introduces support for nested
      structures and caps but the resulting strings won't be parsable with
      GStreamer prior to 1.20 unless #GST_SERIALIZE_FLAG_BACKWARD_COMPAT is passed
      as @flag.
      Parameter:
      flags - a #GstSerializeFlags
      Gibt zurück:
      a newly allocated string representing @caps.
    • setFeatures

      public void setFeatures(int index, @Nullable CapsFeatures features)
      Sets the @features for the structure at @index.
      Parameter:
      index - the index of the structure
      features - the #GstCapsFeatures to set
    • setFeaturesSimple

      public void setFeaturesSimple(@Nullable CapsFeatures features)
      Sets the @features for all the structures of @caps.
      Parameter:
      features - the #GstCapsFeatures to set
    • setSimple

      public void setSimple(@Nonnull Str field, Object... _ellipsis)
      Sets fields in a #GstCaps. The arguments must be passed in the same
      manner as gst_structure_set(), and be %NULL-terminated.
      Parameter:
      field - first field to set
      _ellipsis - additional parameters
    • setSimple

      public void setSimple(String field, Object... _ellipsis)
      Sets fields in a #GstCaps. The arguments must be passed in the same
      manner as gst_structure_set(), and be %NULL-terminated.
      Parameter:
      field - first field to set
      _ellipsis - additional parameters
    • setSimpleStaticStr

      public void setSimpleStaticStr(@Nonnull Str field, Object... _ellipsis)
      Sets fields in a #GstCaps. The arguments must be passed in the same
      manner as gst_structure_set(), and be %NULL-terminated.

      @field and all other field names need to be valid for the remaining lifetime
      of the process, e.g. have to be static strings.
      Parameter:
      field - first field to set
      _ellipsis - additional parameters
    • setSimpleStaticStr

      public void setSimpleStaticStr(String field, Object... _ellipsis)
      Sets fields in a #GstCaps. The arguments must be passed in the same
      manner as gst_structure_set(), and be %NULL-terminated.

      @field and all other field names need to be valid for the remaining lifetime
      of the process, e.g. have to be static strings.
      Parameter:
      field - first field to set
      _ellipsis - additional parameters
    • setValue

      public void setValue(@Nonnull Str field, @Nonnull Value value)
      Sets the given @field on all structures of @caps to the given @value.
      This is a convenience function for calling gst_structure_set_value() on
      all structures of @caps.
      Parameter:
      field - name of the field to set
      value - value to set the field to
    • setValue

      public void setValue(String field, @Nonnull Value value)
      Sets the given @field on all structures of @caps to the given @value.
      This is a convenience function for calling gst_structure_set_value() on
      all structures of @caps.
      Parameter:
      field - name of the field to set
      value - value to set the field to
    • setValueStaticStr

      public void setValueStaticStr(@Nonnull Str field, @Nonnull Value value)
      Sets the given @field on all structures of @caps to the given @value.
      This is a convenience function for calling gst_structure_set_value() on
      all structures of @caps.

      @field needs to be valid for the remaining lifetime of the process, e.g.
      has to be a static string.
      Parameter:
      field - name of the field to set
      value - value to set the field to
    • setValueStaticStr

      public void setValueStaticStr(String field, @Nonnull Value value)
      Sets the given @field on all structures of @caps to the given @value.
      This is a convenience function for calling gst_structure_set_value() on
      all structures of @caps.

      @field needs to be valid for the remaining lifetime of the process, e.g.
      has to be a static string.
      Parameter:
      field - name of the field to set
      value - value to set the field to
    • simplify

      public Caps simplify()
      Converts the given @caps into a representation that represents the
      same set of formats, but in a simpler form. Component structures that are
      identical are merged. Component structures that have values that can be
      merged are also merged.

      This function takes ownership of @caps and will call gst_caps_make_writable()
      on it if necessary, so you must not use @caps afterwards unless you keep an
      additional reference to it with gst_caps_ref().

      This method does not preserve the original order of @caps.
      Gibt zurück:
      The simplified caps.
    • stealStructure

      public Structure stealStructure(int index)
      Retrieves the structure with the given index from the list of structures
      contained in @caps. The caller becomes the owner of the returned structure.
      Parameter:
      index - Index of the structure to retrieve
      Gibt zurück:
      a pointer to the #GstStructure corresponding to @index.
    • subtract

      public Caps subtract(@Nonnull Caps subtrahend)
      Subtracts the @subtrahend from the @minuend.
      > This function does not work reliably if optional properties for caps
      > are included on one caps and omitted on the other.
      Parameter:
      subtrahend - #GstCaps to subtract
      Gibt zurück:
      the resulting caps
    • toStr

      public Str toStr()
      Converts @caps to a string representation. This string representation
      can be converted back to a #GstCaps by gst_caps_from_string().

      For debugging purposes its easier to do something like this:

      ``` C
      GST_LOG ("caps are %" GST_PTR_FORMAT, caps);
      ```

      This prints the caps in human readable form.

      The implementation of serialization up to 1.20 would lead to unexpected results
      when there were nested #GstCaps / #GstStructure deeper than one level.
      Gibt zurück:
      a newly allocated string representing @caps.
    • truncate

      public Caps truncate()
      Discards all but the first structure from @caps. Useful when
      fixating.

      This function takes ownership of @caps and will call gst_caps_make_writable()
      on it if necessary, so you must not use @caps afterwards unless you keep an
      additional reference to it with gst_caps_ref().

      Note that it is not guaranteed that the returned caps have exactly one
      structure. If @caps is any or empty caps then the returned caps will be
      the same and contain no structure at all.
      Gibt zurück:
      truncated caps
    • fromString

      public static Caps fromString(@Nonnull Str string)
      Converts @caps from a string representation.

      The implementation of serialization up to 1.20 would lead to unexpected results
      when there were nested #GstCaps / #GstStructure deeper than one level.
      Parameter:
      string - a string to convert to #GstCaps
      Gibt zurück:
      a newly allocated #GstCaps
    • getTypeID

      public static long getTypeID()
    • getParentTypeID

      public static long getParentTypeID()
    • getTypeSize

      public static TypeSystem.TypeSize getTypeSize()
    • getParentTypeSize

      public static TypeSystem.TypeSize getParentTypeSize()
    • getInstanceSize

      public static int getInstanceSize()