1 <!-- ##### SECTION Title ##### -->
4 <!-- ##### SECTION Short_Description ##### -->
5 Generate indexes on objects
7 <!-- ##### SECTION Long_Description ##### -->
9 GstIndex is used to generate a stream index of one or more elements
13 <!-- ##### SECTION See_Also ##### -->
18 <!-- ##### STRUCT GstIndexEntry ##### -->
20 The basic element of an index.
26 <!-- ##### STRUCT GstIndexGroup ##### -->
28 A group of related entries in an index.
36 <!-- ##### ENUM GstIndexCertainty ##### -->
38 The certainty of a group in the index.
41 @GST_INDEX_UNKNOWN: accuracy is not known
42 @GST_INDEX_CERTAIN: accuracy is perfect
43 @GST_INDEX_FUZZY: accuracy is fuzzy
45 <!-- ##### ENUM GstIndexEntryType ##### -->
47 The different types of entries in the index.
50 @GST_INDEX_ENTRY_ID: This entry is an id that maps an index id to its owner object
51 @GST_INDEX_ENTRY_ASSOCIATION: This entry is an association between formats
52 @GST_INDEX_ENTRY_OBJECT: An object
53 @GST_INDEX_ENTRY_FORMAT: A format definition
55 <!-- ##### ENUM GstIndexLookupMethod ##### -->
57 Specify the method to find an index entry in the index.
60 @GST_INDEX_LOOKUP_EXACT: There has to be an exact indexentry with the given format/value
61 @GST_INDEX_LOOKUP_BEFORE: The exact entry or the one before it
62 @GST_INDEX_LOOKUP_AFTER: The exact entry or the one after it
64 <!-- ##### ENUM GstIndexFlags ##### -->
69 @GST_INDEX_WRITABLE: The index is writable
70 @GST_INDEX_READABLE: The index is readable
71 @GST_INDEX_FLAG_LAST: First flag that can be used by subclasses
73 <!-- ##### MACRO GST_INDEX_ID_INVALID ##### -->
80 <!-- ##### MACRO GST_INDEX_IS_READABLE ##### -->
82 Check if the index can be read from
85 @obj: The index to check
88 <!-- ##### MACRO GST_INDEX_IS_WRITABLE ##### -->
90 Check if the index can be written to
93 @obj: The index to check
96 <!-- ##### MACRO GST_INDEX_NASSOCS ##### -->
98 Get the number of associations in the entry.
101 @entry: The entry to query
104 <!-- ##### MACRO GST_INDEX_ASSOC_FLAGS ##### -->
106 Get the flags for this entry
109 @entry: The entry to query
112 <!-- ##### MACRO GST_INDEX_ASSOC_FORMAT ##### -->
114 Get the i-th format of the entry.
117 @entry: The entry to query
121 <!-- ##### MACRO GST_INDEX_ASSOC_VALUE ##### -->
123 Get the i-th value of the entry.
126 @entry: The entry to query
130 <!-- ##### STRUCT GstIndexAssociation ##### -->
132 An association in an entry.
135 @format: the format of the association
136 @value: the value of the association
138 <!-- ##### ENUM GstAssocFlags ##### -->
140 flags for an association entry
143 @GST_ASSOCIATION_FLAG_NONE: no extra flags
144 @GST_ASSOCIATION_FLAG_KEY_UNIT: the entry marks a key unit, a key unit is one
145 that marks a place where one can randomly seek to.
146 @GST_ASSOCIATION_FLAG_LAST: extra user defined flags should start here.
148 <!-- ##### MACRO GST_INDEX_FORMAT_FORMAT ##### -->
150 Get the format of the format entry
153 @entry: The entry to query
156 <!-- ##### MACRO GST_INDEX_FORMAT_KEY ##### -->
158 Get the key of the format entry
161 @entry: The entry to query
164 <!-- ##### MACRO GST_INDEX_ID_DESCRIPTION ##### -->
166 Get the description of the id entry
169 @entry: The entry to query
172 <!-- ##### USER_FUNCTION GstIndexFilter ##### -->
174 Function to filter out entries in the index.
177 @index: The index being queried
178 @entry: The entry to be added.
179 @Returns: This function should return TRUE if the entry is to be added
180 to the index, FALSE otherwise.
183 <!-- ##### USER_FUNCTION GstIndexResolver ##### -->
185 Function to resolve ids to writer descriptions.
188 @index: the index being queried.
189 @writer: The object that wants to write
190 @writer_string: A description of the writer.
191 @user_data: user_data as registered
192 @Returns: TRUE if an id could be assigned to the writer.
193 <!-- # Unused Parameters # -->
194 @writer_id: A pointer to the id that has to be assigned to this writer
197 <!-- ##### ENUM GstIndexResolverMethod ##### -->
199 The method used to resolve index writers
202 @GST_INDEX_RESOLVER_CUSTOM: Use a custom resolver
203 @GST_INDEX_RESOLVER_GTYPE: Resolve based on the GType of the object
204 @GST_INDEX_RESOLVER_PATH: Resolve on the path in graph
206 <!-- ##### STRUCT GstIndex ##### -->
212 <!-- ##### FUNCTION gst_index_new ##### -->
220 <!-- ##### FUNCTION gst_index_get_group ##### -->
229 <!-- ##### FUNCTION gst_index_new_group ##### -->
238 <!-- ##### FUNCTION gst_index_set_group ##### -->
248 <!-- ##### FUNCTION gst_index_set_certainty ##### -->
257 <!-- ##### FUNCTION gst_index_get_certainty ##### -->
266 <!-- ##### FUNCTION gst_index_set_filter ##### -->
276 <!-- ##### FUNCTION gst_index_set_resolver ##### -->
286 <!-- ##### FUNCTION gst_index_get_writer_id ##### -->
297 <!-- ##### FUNCTION gst_index_add_format ##### -->
308 <!-- ##### FUNCTION gst_index_add_association ##### -->
322 <!-- ##### FUNCTION gst_index_add_object ##### -->
335 <!-- ##### FUNCTION gst_index_add_id ##### -->
346 <!-- ##### FUNCTION gst_index_get_assoc_entry ##### -->
360 <!-- ##### FUNCTION gst_index_get_assoc_entry_full ##### -->
376 <!-- ##### FUNCTION gst_index_entry_free ##### -->
384 <!-- ##### FUNCTION gst_index_entry_assoc_map ##### -->
395 <!-- ##### FUNCTION gst_index_commit ##### -->
404 <!-- ##### SIGNAL GstIndex::entry-added ##### -->
406 Is emited when a new entry is added to the index.
409 @gstindex: the object which received the signal.
410 @arg1: The entry added to the index.
412 <!-- ##### ARG GstIndex:resolver ##### -->