1 | /* GStreamer |
2 | * Copyright (C) 2013 Collabora Ltd. |
3 | * Author: Sebastian Dröge <sebastian.droege@collabora.co.uk> |
4 | * |
5 | * This library is free software; you can redistribute it and/or |
6 | * modify it under the terms of the GNU Library General Public |
7 | * License as published by the Free Software Foundation; either |
8 | * version 2 of the License, or (at your option) any later version. |
9 | * |
10 | * This library is distributed in the hope that it will be useful, |
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
13 | * Library General Public License for more details. |
14 | * |
15 | * You should have received a copy of the GNU Library General Public |
16 | * License along with this library; if not, write to the |
17 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, |
18 | * Boston, MA 02110-1301, USA. |
19 | */ |
20 | |
21 | #ifndef __GST_CAPS_FEATURES_H__ |
22 | #define __GST_CAPS_FEATURES_H__ |
23 | |
24 | #include <gst/gstconfig.h> |
25 | #include <gst/glib-compat.h> |
26 | #include <glib-object.h> |
27 | #include <glib.h> |
28 | |
29 | G_BEGIN_DECLS |
30 | |
31 | typedef struct _GstCapsFeatures GstCapsFeatures; |
32 | |
33 | GST_API GType _gst_caps_features_type; |
34 | |
35 | #define GST_TYPE_CAPS_FEATURES (_gst_caps_features_type) |
36 | #define GST_IS_CAPS_FEATURES(object) (gst_is_caps_features(object)) |
37 | #define GST_CAPS_FEATURES_CAST(object) ((GstCapsFeatures *)(object)) |
38 | #define GST_CAPS_FEATURES(object) (GST_CAPS_FEATURES_CAST(object)) |
39 | |
40 | #define GST_CAPS_FEATURE_MEMORY_SYSTEM_MEMORY "memory:SystemMemory" |
41 | |
42 | GST_API GstCapsFeatures *_gst_caps_features_any; |
43 | #define GST_CAPS_FEATURES_ANY (_gst_caps_features_any) |
44 | |
45 | GST_API GstCapsFeatures *_gst_caps_features_memory_system_memory; |
46 | #define GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY (_gst_caps_features_memory_system_memory) |
47 | |
48 | GST_API |
49 | GType gst_caps_features_get_type (void); |
50 | |
51 | GST_API |
52 | gboolean gst_is_caps_features (gconstpointer obj); |
53 | |
54 | GST_API |
55 | GstCapsFeatures * gst_caps_features_new_empty (void); |
56 | |
57 | GST_API |
58 | GstCapsFeatures * gst_caps_features_new_any (void); |
59 | |
60 | GST_API |
61 | GstCapsFeatures * gst_caps_features_new_single (const gchar *feature) G_GNUC_MALLOC; |
62 | |
63 | GST_API |
64 | GstCapsFeatures * gst_caps_features_new (const gchar *feature1, ...) G_GNUC_NULL_TERMINATED; |
65 | |
66 | GST_API |
67 | GstCapsFeatures * gst_caps_features_new_valist (const gchar *feature1, va_list varargs); |
68 | |
69 | GST_API |
70 | GstCapsFeatures * gst_caps_features_new_id (GQuark feature1, ...); |
71 | |
72 | GST_API |
73 | GstCapsFeatures * gst_caps_features_new_id_valist (GQuark feature1, va_list varargs); |
74 | |
75 | GST_API |
76 | gboolean gst_caps_features_set_parent_refcount (GstCapsFeatures *features, gint * refcount); |
77 | |
78 | GST_API |
79 | GstCapsFeatures * gst_caps_features_copy (const GstCapsFeatures * features); |
80 | |
81 | GST_API |
82 | void gst_caps_features_free (GstCapsFeatures * features); |
83 | |
84 | GST_API |
85 | gchar * gst_caps_features_to_string (const GstCapsFeatures * features); |
86 | |
87 | GST_API |
88 | GstCapsFeatures * gst_caps_features_from_string (const gchar * features); |
89 | |
90 | GST_API |
91 | guint gst_caps_features_get_size (const GstCapsFeatures * features); |
92 | |
93 | GST_API |
94 | const gchar * gst_caps_features_get_nth (const GstCapsFeatures * features, guint i); |
95 | |
96 | GST_API |
97 | GQuark gst_caps_features_get_nth_id (const GstCapsFeatures * features, guint i); |
98 | |
99 | GST_API |
100 | gboolean gst_caps_features_contains (const GstCapsFeatures * features, const gchar * feature); |
101 | |
102 | GST_API |
103 | gboolean gst_caps_features_contains_id (const GstCapsFeatures * features, GQuark feature); |
104 | |
105 | GST_API |
106 | gboolean gst_caps_features_is_equal (const GstCapsFeatures * features1, const GstCapsFeatures * features2); |
107 | |
108 | GST_API |
109 | gboolean gst_caps_features_is_any (const GstCapsFeatures * features); |
110 | |
111 | GST_API |
112 | void gst_caps_features_add (GstCapsFeatures * features, const gchar * feature); |
113 | |
114 | GST_API |
115 | void gst_caps_features_add_id ( GstCapsFeatures * features, GQuark feature); |
116 | |
117 | GST_API |
118 | void gst_caps_features_remove (GstCapsFeatures * features, const gchar * feature); |
119 | |
120 | GST_API |
121 | void gst_caps_features_remove_id (GstCapsFeatures * features, GQuark feature); |
122 | |
123 | G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstCapsFeatures, gst_caps_features_free) |
124 | |
125 | G_END_DECLS |
126 | |
127 | #endif /* __GST_CAPS_FEATURES_H__ */ |
128 | |