Copy entries from one AVDictionary struct into another. @param dst pointer to a pointer to a AVDictionary struct. If *dst is NULL, this function will allocate a struct for you and put it in *dst @param src pointer to source AVDictionary struct @param flags flags to use when setting entries in *dst @note metadata is read using the AV_DICT_IGNORE_SUFFIX flag @return 0 on success, negative AVERROR code on failure. If dst was allocated by this function, callers should free the associated memory.
Get number of entries in dictionary.
Free all the memory allocated for an AVDictionary struct and all keys and values.
Get a dictionary entry with matching key.
Get dictionary entries as a string.
Parse the key/value pairs list and add the parsed entries to a dictionary.
Set the given entry in *pm, overwriting an existing entry.
Convenience wrapper for av_dict_set that converts the value to a string and stores it.
< If the entry already exists, append to it. Note that no delimiter is added, the strings are simply concatenated.
< Don't overwrite existing entries.
< Take ownership of a key that's been allocated with av_malloc() and children.
< Take ownership of a value that's been allocated with av_malloc() and chilren.
< Return first entry in a dictionary whose first part corresponds to the search key, ignoring the suffix of the found key string. Only relevant in av_dict_get().
* @addtogroup lavu_dict AVDictionary * @ingroup lavu_data * * @brief Simple key:value store * * @{ * Dictionaries are used for storing key:value pairs. To create * an AVDictionary, simply pass an address of a NULL pointer to * av_dict_set(). NULL can be used as an empty dictionary wherever * a pointer to an AVDictionary is required. * Use av_dict_get() to retrieve an entry or iterate over all * entries and finally av_dict_free() to free the dictionary * and all its contents. * @code AVDictionary *d = NULL; // "create" an empty dictionary AVDictionaryEntry *t = NULL;
@file Public dictionary API. @deprecated AVDictionary is provided for compatibility with libav. It is both in implementation as well as API inefficient. It does not scale and is extremely slow with large dictionaries. It is recommended that new code uses our tree container from tree.c/h where applicable, which uses AVL trees to achieve O(log n) performance.