decoder/ffmpeg: support all MPD tags
Use the tag_item_names table to look up the names of all MPD tags, and remove the duplicate entries from ffmpeg_tag_maps.
This commit is contained in:
parent
4764daf3c2
commit
378fa5ee6a
1
NEWS
1
NEWS
|
@ -3,6 +3,7 @@ ver 0.16.7 (2011/??/??)
|
||||||
- ffmpeg: support libavformat 0.7
|
- ffmpeg: support libavformat 0.7
|
||||||
* decoder:
|
* decoder:
|
||||||
- ffmpeg: support libavformat 0.8, libavcodec 0.8
|
- ffmpeg: support libavformat 0.8, libavcodec 0.8
|
||||||
|
- ffmpeg: support all MPD tags
|
||||||
* output:
|
* output:
|
||||||
- httpd: fix excessive buffering
|
- httpd: fix excessive buffering
|
||||||
- openal: force 16 bit playback, as 8 bit doesn't work
|
- openal: force 16 bit playback, as 8 bit doesn't work
|
||||||
|
|
|
@ -587,24 +587,13 @@ typedef struct ffmpeg_tag_map {
|
||||||
} ffmpeg_tag_map;
|
} ffmpeg_tag_map;
|
||||||
|
|
||||||
static const ffmpeg_tag_map ffmpeg_tag_maps[] = {
|
static const ffmpeg_tag_map ffmpeg_tag_maps[] = {
|
||||||
{ TAG_TITLE, "title" },
|
#if LIBAVFORMAT_VERSION_INT < ((52<<16)+(50<<8))
|
||||||
#if LIBAVFORMAT_VERSION_INT >= ((52<<16)+(50<<8))
|
|
||||||
{ TAG_ARTIST, "artist" },
|
|
||||||
{ TAG_DATE, "date" },
|
|
||||||
#else
|
|
||||||
{ TAG_ARTIST, "author" },
|
{ TAG_ARTIST, "author" },
|
||||||
{ TAG_DATE, "year" },
|
{ TAG_DATE, "year" },
|
||||||
#endif
|
#endif
|
||||||
{ TAG_ALBUM, "album" },
|
|
||||||
{ TAG_COMMENT, "comment" },
|
|
||||||
{ TAG_GENRE, "genre" },
|
|
||||||
{ TAG_TRACK, "track" },
|
|
||||||
{ TAG_ARTIST_SORT, "author-sort" },
|
{ TAG_ARTIST_SORT, "author-sort" },
|
||||||
{ TAG_ALBUM_ARTIST, "album_artist" },
|
{ TAG_ALBUM_ARTIST, "album_artist" },
|
||||||
{ TAG_ALBUM_ARTIST_SORT, "album_artist-sort" },
|
{ TAG_ALBUM_ARTIST_SORT, "album_artist-sort" },
|
||||||
{ TAG_COMPOSER, "composer" },
|
|
||||||
{ TAG_PERFORMER, "performer" },
|
|
||||||
{ TAG_DISC, "disc" },
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#if LIBAVFORMAT_VERSION_INT < AV_VERSION_INT(53,1,0)
|
#if LIBAVFORMAT_VERSION_INT < AV_VERSION_INT(53,1,0)
|
||||||
|
@ -626,6 +615,10 @@ ffmpeg_copy_metadata(struct tag *tag, enum tag_type type,
|
||||||
static void
|
static void
|
||||||
ffmpeg_copy_dictionary(struct tag *tag, AVDictionary *dict)
|
ffmpeg_copy_dictionary(struct tag *tag, AVDictionary *dict)
|
||||||
{
|
{
|
||||||
|
for (unsigned i = 0; i < TAG_NUM_OF_ITEM_TYPES; ++i)
|
||||||
|
ffmpeg_copy_metadata(tag, i,
|
||||||
|
dict, tag_item_names[i]);
|
||||||
|
|
||||||
for (unsigned i = 0; i < G_N_ELEMENTS(ffmpeg_tag_maps); i++)
|
for (unsigned i = 0; i < G_N_ELEMENTS(ffmpeg_tag_maps); i++)
|
||||||
ffmpeg_copy_metadata(tag, ffmpeg_tag_maps[i].type,
|
ffmpeg_copy_metadata(tag, ffmpeg_tag_maps[i].type,
|
||||||
dict, ffmpeg_tag_maps[i].name);
|
dict, ffmpeg_tag_maps[i].name);
|
||||||
|
|
Loading…
Reference in New Issue