![]() | ![]() | ![]() | GStreamer 0.9 Core Reference Manual | ![]() |
---|
GstCaps — Structure describing sets of media formats
#include <gst/gst.h> #define GST_CAPS_FLAGS_ANY #define GST_CAPS_ANY #define GST_CAPS_NONE #define GST_STATIC_CAPS_ANY #define GST_STATIC_CAPS_NONE #define GST_CAPS_IS_SIMPLE (caps) #define gst_caps_is_simple (caps) #define GST_DEBUG_CAPS (string, caps) #define GST_STATIC_CAPS (string) struct GstCaps; struct GstStaticCaps; GstCaps* gst_caps_new_empty (void); GstCaps* gst_caps_new_any (void); GstCaps* gst_caps_new_simple (const char *media_type, const char *fieldname, ...); GstCaps* gst_caps_new_full (GstStructure *struct1, ...); GstCaps* gst_caps_new_full_valist (GstStructure *structure, va_list var_args); GstCaps* gst_caps_copy (const GstCaps *caps); G_CONST_RETURN GstCaps* gst_static_caps_get (GstStaticCaps *static_caps); void gst_caps_append (GstCaps *caps1, GstCaps *caps2); void gst_caps_append_structure (GstCaps *caps, GstStructure *structure); int gst_caps_get_size (const GstCaps *caps); GstStructure* gst_caps_get_structure (const GstCaps *caps, int index); void gst_caps_set_simple (GstCaps *caps, char *field, ...); void gst_caps_set_simple_valist (GstCaps *caps, char *field, va_list varargs); gboolean gst_caps_is_any (const GstCaps *caps); gboolean gst_caps_is_empty (const GstCaps *caps); gboolean gst_caps_is_fixed (const GstCaps *caps); gboolean gst_caps_is_equal (const GstCaps *caps1, const GstCaps *caps2); gboolean gst_caps_is_always_compatible (const GstCaps *caps1, const GstCaps *caps2); gboolean gst_caps_is_subset (const GstCaps *subset, const GstCaps *superset); GstCaps* gst_caps_intersect (const GstCaps *caps1, const GstCaps *caps2); GstCaps* gst_caps_union (const GstCaps *caps1, const GstCaps *caps2); GstCaps* gst_caps_normalize (const GstCaps *caps); gboolean gst_caps_do_simplify (GstCaps *caps); xmlNodePtr gst_caps_save_thyself (const GstCaps *caps, xmlNodePtr parent); GstCaps* gst_caps_load_thyself (xmlNodePtr parent); void gst_caps_replace (GstCaps **caps, GstCaps *newcaps); gchar* gst_caps_to_string (const GstCaps *caps); GstCaps* gst_caps_from_string (const gchar *string); gboolean gst_caps_structure_fixate_field_nearest_int (GstStructure *structure, const char *field_name, int target); gboolean gst_caps_structure_fixate_field_nearest_double (GstStructure *structure, const char *field_name, double target); GstCaps* gst_caps_subtract (const GstCaps *minuend, const GstCaps *subtrahend);
#define GST_CAPS_FLAGS_ANY (1 << 0)
Flags that this caps has no specific content, but can contain anything.
#define GST_CAPS_ANY gst_caps_new_any()
Means that the element/pad can output 'anything'. Useful for elements that output unknown media, such as filesrc.
#define GST_CAPS_NONE gst_caps_new_empty()
The opposite of GST_CAPS_ANY: it means that the pad/element outputs an undefined media type that can not be detected.
#define GST_STATIC_CAPS_ANY GST_STATIC_CAPS("ANY")
Creates a static caps that matches anything. This can be used in pad templates.
Returns : | a new GstCaps instance |
#define GST_STATIC_CAPS_NONE GST_STATIC_CAPS("NONE")
Creates a static caps that matches nothing. This can be used in pad templates.
Returns : | a new GstCaps instance |
#define GST_CAPS_IS_SIMPLE(caps) (gst_caps_get_size(caps) == 1)
Convinience macro that checks if the number of structures in the gives caps is exactly one.
caps : | the GstCaps instance to check |
#define GST_DEBUG_CAPS(string, caps)
GST_DEBUG_CAPS is deprecated and should not be used in newly-written code.
Convinience macro for prining out the contents of caps with GST_DEBUG().
string : | a string the should be prepend to the caps data. |
caps : | the caps to print |
#define GST_STATIC_CAPS(string)
Creates a static caps from an input string. This can be used in pad templates.
string : | the string describing the caps. |
Returns : | a new GstCaps instance |
struct GstCaps { GType type; /* refcounting */ gint refcount; guint16 flags; GPtrArray *structs; };
GstCaps* gst_caps_new_empty (void);
Creates a new GstCaps that is empty. That is, the returned GstCaps contains no media formats.
Returns : | the new GstCaps |
GstCaps* gst_caps_new_any (void);
Creates a new GstCaps that indicates that it is compatible with any media format.
Returns : | the new GstCaps |
GstCaps* gst_caps_new_simple (const char *media_type, const char *fieldname, ...);
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 : | the media type of the structure |
fieldname : | first field to set |
... : | additional arguments |
Returns : | the new GstCaps |
GstCaps* gst_caps_new_full (GstStructure *struct1, ...);
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.
struct1 : | the first structure to add |
... : | additional structures to add |
Returns : | the new GstCaps |
GstCaps* gst_caps_new_full_valist (GstStructure *structure, va_list var_args);
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.
structure : | the first structure to add |
var_args : | additional structures to add |
Returns : | the new GstCaps |
GstCaps* gst_caps_copy (const GstCaps *caps);
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().
When you are finished with the caps, call gst_caps_unref() on it.
G_CONST_RETURN GstCaps* gst_static_caps_get (GstStaticCaps *static_caps);
Converts a GstStaticCaps to a GstCaps.
static_caps : | the GstStaticCaps to convert |
Returns : | the new GstCaps |
void gst_caps_append (GstCaps *caps1, GstCaps *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.
void gst_caps_append_structure (GstCaps *caps, GstStructure *structure);
Appends structure to caps. The structure is not copied; caps becomes the owner of structure.
caps : | the GstCaps that will be appended to |
structure : | the GstStructure to append |
int gst_caps_get_size (const GstCaps *caps);
Gets the number of structures contained in caps.
caps : | a GstCaps |
Returns : | the number of structures that caps contains |
GstStructure* gst_caps_get_structure (const GstCaps *caps, int index);
Finds the structure in caps that has the index 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.
caps : | a GstCaps |
index : | the index of the structure |
Returns : | a pointer to the GstStructure corresponding to index |
void gst_caps_set_simple (GstCaps *caps, char *field, ...);
Sets fields in a simple GstCaps. A simple GstCaps is one that only has one structure. The arguments must be passed in the same manner as @gst_structure_set(), and be NULL-terminated.
caps : | the GstCaps to set |
field : | first field to set |
... : | additional parameters |
void gst_caps_set_simple_valist (GstCaps *caps, char *field, va_list varargs);
Sets fields in a simple GstCaps. A simple GstCaps is one that only has one structure. The arguments must be passed in the same manner as @gst_structure_set(), and be NULL-terminated.
caps : | the GstCaps to copy |
field : | first field to set |
varargs : | additional parameters |
gboolean gst_caps_is_any (const GstCaps *caps);
Determines if caps represents any media format.
caps : | the GstCaps to test |
Returns : | TRUE if caps represents any format. |
gboolean gst_caps_is_empty (const GstCaps *caps);
Determines if caps represents no media formats.
caps : | the GstCaps to test |
Returns : | TRUE if caps represents no formats. |
gboolean gst_caps_is_fixed (const GstCaps *caps);
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.
caps : | the GstCaps to test |
Returns : | TRUE if caps is fixed |
gboolean gst_caps_is_equal (const GstCaps *caps1, const GstCaps *caps2);
Checks if the given caps represent the same set of caps.
gboolean gst_caps_is_always_compatible (const GstCaps *caps1, const GstCaps *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.
gboolean gst_caps_is_subset (const GstCaps *subset, const GstCaps *superset);
Checks if all caps represented by subset are also represented by superset
GstCaps* gst_caps_intersect (const GstCaps *caps1, const GstCaps *caps2);
Creates a new GstCaps that contains all the formats that are common to both caps1 and caps2.
GstCaps* gst_caps_union (const GstCaps *caps1, const GstCaps *caps2);
Creates a new GstCaps that contains all the formats that are in either caps1 and caps2.
GstCaps* gst_caps_normalize (const GstCaps *caps);
Creates a new GstCaps that represents the same set of formats as caps, but contains no lists. Each list is expanded into separate GstStructures.
gboolean gst_caps_do_simplify (GstCaps *caps);
Modifies the given caps inplace 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.
caps : | a GstCaps to simplify |
Returns : | TRUE, if the caps could be simplified |
xmlNodePtr gst_caps_save_thyself (const GstCaps *caps, xmlNodePtr parent);
Serializes a GstCaps to XML and adds it as a child node of parent.
caps : | a GstCaps structure |
parent : | a XML parent node |
Returns : | a XML node pointer |
GstCaps* gst_caps_load_thyself (xmlNodePtr parent);
Creates a GstCaps from its XML serialization.
parent : | a XML node |
Returns : | a new GstCaps structure |
void gst_caps_replace (GstCaps **caps, GstCaps *newcaps);
Replaces *caps with newcaps. Frees the GstCaps in the location pointed to by caps, if applicable, then modifies caps to point to newcaps.
gchar* gst_caps_to_string (const GstCaps *caps);
Converts caps to a string representation. This string representation can be converted back to a GstCaps by gst_caps_from_string.
caps : | a GstCaps |
Returns : | a newly allocated string representing caps. |
GstCaps* gst_caps_from_string (const gchar *string);
Converts caps from a string representation.
gboolean gst_caps_structure_fixate_field_nearest_int (GstStructure *structure, const char *field_name, int target);
Fixates a GstStructure by changing the given field to the nearest integer to target that is a subset of the existing field.
structure : | a GstStructure |
field_name : | a field in structure |
target : | the target value of the fixation |
Returns : | TRUE if the structure could be fixated |
gboolean gst_caps_structure_fixate_field_nearest_double (GstStructure *structure, const char *field_name, double target);
Fixates a GstStructure by changing the given field to the nearest double to target that is a subset of the existing field.
structure : | a GstStructure |
field_name : | a field in structure |
target : | the target value of the fixation |
Returns : | TRUE if the structure could be fixated |
<< GstBuffer | GstClock >> |