[Data Structures]

Simple key:value store. More...

Data Structures

struct  AVDictionaryEntry


#define AV_DICT_MATCH_CASE   1
 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.
 Don't overwrite existing entries.
#define AV_DICT_APPEND   32
 If the entry already exists, append to it.


typedef struct AVDictionary AVDictionary


AVDictionaryEntryav_dict_get (AVDictionary *m, const char *key, const AVDictionaryEntry *prev, int flags)
 Get a dictionary entry with matching key.
int av_dict_set (AVDictionary **pm, const char *key, const char *value, int flags)
 Set the given entry in *pm, overwriting an existing entry.
void av_dict_copy (AVDictionary **dst, AVDictionary *src, int flags)
 Copy entries from one AVDictionary struct into another.
void av_dict_free (AVDictionary **m)
 Free all the memory allocated for an AVDictionary struct and all keys and values.

Detailed Description

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.

 AVDictionary *d = NULL;                // "create" an empty dictionary
 av_dict_set(&d, "foo", "bar", 0);      // add an entry

 char *k = av_strdup("key");            // if your strings are already allocated,
 char *v = av_strdup("value");          // you can avoid copying them like this

 AVDictionaryEntry *t = NULL;
 while (t = av_dict_get(d, "", t, AV_DICT_IGNORE_SUFFIX)) {
     <....>                             // iterate over all entries in d


Define Documentation

#define AV_DICT_APPEND   32

If the entry already exists, append to it.

Note that no delimiter is added, the strings are simply concatenated.

Definition at line 74 of file dict.h.

Referenced by av_dict_set().


Don't overwrite existing entries.

Definition at line 73 of file dict.h.

Referenced by av_dict_set(), copy_metadata(), new_output_stream(), opt_output_file(), read_ttag(), and transcode_init().


Take ownership of a key that's been allocated with av_malloc() and children.

Definition at line 69 of file dict.h.

Referenced by av_dict_set(), ff_vorbis_comment(), read_tag(), and read_ttag().



#define AV_DICT_MATCH_CASE   1

Definition at line 67 of file dict.h.

Referenced by av_dict_get(), and get_date_tag().

Typedef Documentation

typedef struct AVDictionary AVDictionary

Definition at line 82 of file dict.h.

Function Documentation

void av_dict_copy ( AVDictionary **  dst,
AVDictionary src,
int  flags 

Copy entries from one AVDictionary struct into another.

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
src pointer to source AVDictionary struct
flags flags to use when setting entries in *dst
metadata is read using the AV_DICT_IGNORE_SUFFIX flag

Definition at line 114 of file dict.c.

Referenced by av_metadata_copy(), avcodec_open2(), avformat_open_input(), avformat_write_header(), copy_chapters(), copy_metadata(), ff_wms_parse_sdp_a_line(), and opt_output_file().

void av_dict_free ( AVDictionary **  m  ) 

AVDictionaryEntry* av_dict_get ( AVDictionary m,
const char *  key,
const AVDictionaryEntry prev,
int  flags 

Get a dictionary entry with matching key.

prev Set to the previous matching element to find the next. If set to NULL the first matching element is returned.
flags Allows case as well as suffix-insensitive comparisons.
Found entry or NULL, changing key or value leads to undefined behavior.

Definition at line 27 of file dict.c.

Referenced by asf_write_header1(), assert_avoptions(), av_dict_copy(), av_dict_set(), av_dump_format(), av_metadata_get(), av_opt_set_dict(), avi_write_header(), compact_show_tags(), default_show_tags(), dump_attachment(), dump_metadata(), dump_stream_format(), dv_init_mux(), ff_id3v2_write(), ff_metadata_conv(), ff_vorbiscomment_length(), ff_vorbiscomment_write(), filter_codec_opts(), flv_write_header(), get_date_tag(), gxf_write_umf_material_description(), id3v1_create_tag(), id3v1_set_string(), id3v2_3_metadata_split_date(), init_input_stream(), json_show_tags(), main(), mkv_write_attachments(), mkv_write_chapters(), mkv_write_header(), mkv_write_tag(), mkv_write_tags(), mkv_write_tracks(), mov_write_3gp_udta_tag(), mov_write_chpl_tag(), mov_write_header(), mov_write_string_metadata(), mov_write_trkn_tag(), mov_write_uuidusmt_tag(), mp3_read_header(), mpc_read_header(), mpegts_write_header(), mpegts_write_pmt(), mxf_write_header(), open_input_file(), read_thread(), rv10_write_header(), smjpeg_write_header(), sox_write_header(), stream_component_open(), transcode_init(), tta_read_header(), write_chapter(), write_globalinfo(), write_table_entries_attrib(), write_table_redirector_legacy_attrib(), write_tags(), wv_read_header(), and xml_show_tags().

int av_dict_set ( AVDictionary **  pm,
const char *  key,
const char *  value,
int  flags 

Set the given entry in *pm, overwriting an existing entry.

pm pointer to a pointer to a dictionary struct. If *pm is NULL a dictionary struct is allocated and put in *pm.
key entry key to add to *pm (will be av_strduped depending on flags)
value entry value to add to *pm (will be av_strduped depending on flags). Passing a NULL value will cause an existing tag to be deleted.
>= 0 on success otherwise an error code <0

Definition at line 50 of file dict.c.

Referenced by add_metadata(), add_timecode_metadata(), amf_parse_object(), ape_tag_read_field(), applehttp_read_header(), asf_read_header(), av_dict_copy(), av_metadata_set2(), av_opt_set_dict(), avformat_find_stream_info(), avformat_write_header(), avi_metadata_creation_time(), avi_read_nikon(), avi_read_tag(), avpriv_new_chapter(), build_file_streams(), convert_format_parameters(), decode_info_header(), dv_read_timecode(), ff_metadata_conv(), ff_parse_mpeg2_descriptor(), ff_read_riff_info(), ff_rtp_chain_mux_open(), ff_sauce_read(), ff_vorbis_comment(), filter_codec_opts(), get_attachment(), get_meta(), get_metadata(), get_string(), get_tag(), http_prepare_data(), id3v2_3_metadata_split_date(), init_input_stream(), main(), matroska_convert_tag(), matroska_read_header(), merge_date(), modplug_load_metadata(), mov_metadata_creation_time(), mov_metadata_gnre(), mov_metadata_int8_bypass_padding(), mov_metadata_int8_no_padding(), mov_metadata_track_or_disc_number(), mov_read_ftyp(), mov_read_hdlr(), mov_read_mdhd(), mov_read_tkhd(), mov_read_udta_string(), new_output_stream(), nsv_parse_NSVf_header(), ogm_chapter(), opt_default(), opt_input_file(), opt_output_file(), parse_chunks(), parse_tag(), parse_timecode_in_framenum_format(), prepare_sdp_description(), r3d_read_red1(), read_gab2_sub(), read_info_chunk(), read_tag(), read_ttag(), rm_read_metadata(), rpl_read_header(), sdt_cb(), smjpeg_read_header(), sox_read_header(), stream_component_open(), transcode_init(), try_decode_frame(), vqf_read_header(), and wc3_read_header().

Generated on Fri Oct 26 02:46:15 2012 for FFmpeg by  doxygen 1.5.8