diff options
Diffstat (limited to 'src/decoder/libav_metadata.c')
-rw-r--r-- | src/decoder/libav_metadata.c | 77 |
1 files changed, 0 insertions, 77 deletions
diff --git a/src/decoder/libav_metadata.c b/src/decoder/libav_metadata.c deleted file mode 100644 index 76f9652a..00000000 --- a/src/decoder/libav_metadata.c +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright (C) 2003-2012 The Music Player Daemon Project - * http://www.musicpd.org - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -#include "config.h" -#include "libav_metadata.h" -#include "tag_table.h" -#include "tag_handler.h" - -#undef G_LOG_DOMAIN -#define G_LOG_DOMAIN "libav" - -static const struct tag_table libav_tags[] = { - { "year", TAG_DATE }, - { "author-sort", TAG_ARTIST_SORT }, - { "album_artist", TAG_ALBUM_ARTIST }, - { "album_artist-sort", TAG_ALBUM_ARTIST_SORT }, - - /* sentinel */ - { NULL, TAG_NUM_OF_ITEM_TYPES } -}; - -static void -libav_copy_metadata(enum tag_type type, - AVDictionary *m, const char *name, - const struct tag_handler *handler, void *handler_ctx) -{ - AVDictionaryEntry *mt = NULL; - - while ((mt = av_dict_get(m, name, mt, 0)) != NULL) - tag_handler_invoke_tag(handler, handler_ctx, - type, mt->value); -} - - -static void -libav_scan_pairs(AVDictionary *dict, - const struct tag_handler *handler, void *handler_ctx) -{ - AVDictionaryEntry *i = NULL; - - while ((i = av_dict_get(dict, "", i, AV_DICT_IGNORE_SUFFIX)) != NULL) - tag_handler_invoke_pair(handler, handler_ctx, - i->key, i->value); -} - -void -libav_scan_dictionary(AVDictionary *dict, - const struct tag_handler *handler, void *handler_ctx) -{ - for (unsigned i = 0; i < TAG_NUM_OF_ITEM_TYPES; ++i) - libav_copy_metadata(i, dict, tag_item_names[i], - handler, handler_ctx); - - for (const struct tag_table *i = libav_tags; - i->name != NULL; ++i) - libav_copy_metadata(i->type, dict, i->name, - handler, handler_ctx); - - if (handler->pair != NULL) - libav_scan_pairs(dict, handler, handler_ctx); -} |