tag_table: convert to a struct

The struct is smaller because it is sparse.  Its traversal is also
more efficient.
This commit is contained in:
Max Kellermann
2012-02-11 10:34:21 +01:00
parent 6e05071a47
commit 767ade02f4
3 changed files with 22 additions and 14 deletions

View File

@@ -356,16 +356,17 @@ mp4_decode(struct decoder *mpd_decoder, struct input_stream *input_stream)
mp4ff_close(mp4fh);
}
static const char *const mp4ff_tag_names[TAG_NUM_OF_ITEM_TYPES] = {
[TAG_ALBUM_ARTIST] = "album artist",
[TAG_COMPOSER] = "writer",
[TAG_PERFORMER] = "band",
static const struct tag_table mp4ff_tags[] = {
{ "album artist", TAG_ALBUM_ARTIST },
{ "writer", TAG_COMPOSER },
{ "band", TAG_PERFORMER },
{ NULL, TAG_NUM_OF_ITEM_TYPES }
};
static enum tag_type
mp4ff_tag_name_parse(const char *name)
{
enum tag_type type = tag_table_lookup(mp4ff_tag_names, name);
enum tag_type type = tag_table_lookup_i(mp4ff_tags, name);
if (type == TAG_NUM_OF_ITEM_TYPES)
type = tag_name_parse_i(name);