/** * gst_index_add_associationv: * @index: the index to add the entry to * @id: the id of the index writer * @flags: optinal flags for this entry * @n: number of associations * @list: list of associations * * Associate given format/value pairs with each other. * * Returns: a pointer to the newly added entry in the index. */ GstIndexEntry * gst_index_add_associationv (GstIndex * index, gint id, GstIndexAssociationFlags flags, gint n, const GstIndexAssociation * list) { GstIndexEntry *entry; g_return_val_if_fail (n > 0, NULL); g_return_val_if_fail (list != NULL, NULL); g_return_val_if_fail (GST_IS_INDEX (index), NULL); if (!GST_INDEX_IS_WRITABLE (index) || id == -1) return NULL; entry = g_slice_new (GstIndexEntry); entry->type = GST_INDEX_ENTRY_ASSOCIATION; entry->id = id; entry->data.assoc.flags = flags; entry->data.assoc.assocs = g_memdup (list, sizeof (GstIndexAssociation) * n); entry->data.assoc.nassocs = n; gst_index_add_entry (index, entry); return entry; }
EXPORT_C #endif GstIndexEntry * gst_index_add_format (GstIndex * index, gint id, GstFormat format) { GstIndexEntry *entry; const GstFormatDefinition *def; g_return_val_if_fail (GST_IS_INDEX (index), NULL); g_return_val_if_fail (format != 0, NULL); if (!GST_INDEX_IS_WRITABLE (index) || id == -1) return NULL; entry = g_new0 (GstIndexEntry, 1); entry->type = GST_INDEX_ENTRY_FORMAT; entry->id = id; entry->data.format.format = format; def = gst_format_get_details (format); entry->data.format.key = def->nick; gst_index_add_entry (index, entry); return entry; }
/** * gst_index_add_id: * @index: the index to add the entry to * @id: the id of the index writer * @description: the description of the index writer * * Add an id entry into the index. * * Returns: a pointer to the newly added entry in the index. */ GstIndexEntry * gst_index_add_id (GstIndex * index, gint id, gchar * description) { GstIndexEntry *entry; g_return_val_if_fail (GST_IS_INDEX (index), NULL); g_return_val_if_fail (description != NULL, NULL); if (!GST_INDEX_IS_WRITABLE (index) || id == -1) return NULL; entry = g_slice_new (GstIndexEntry); entry->type = GST_INDEX_ENTRY_ID; entry->id = id; entry->data.id.description = description; gst_index_add_entry (index, entry); return entry; }