Add a VorbisComment metadata conversion table and use it in the FLAC and
authorJustin Ruggles <justin.ruggles@gmail.com>
Sat, 13 Jun 2009 22:45:58 +0000 (22:45 +0000)
committerJustin Ruggles <justin.ruggles@gmail.com>
Sat, 13 Jun 2009 22:45:58 +0000 (22:45 +0000)
Ogg demuxers.

Originally committed as revision 19186 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/flacdec.c
libavformat/oggdec.c
libavformat/oggdec.h
libavformat/oggparsevorbis.c

index c843214..067d4fa 100644 (file)
@@ -146,4 +146,5 @@ AVInputFormat flac_demuxer = {
     .flags= AVFMT_GENERIC_INDEX,
     .extensions = "flac",
     .value = CODEC_ID_FLAC,
+    .metadata_conv = ff_vorbiscomment_metadata_conv,
 };
index 5362489..5d42db7 100644 (file)
@@ -583,4 +583,5 @@ AVInputFormat ogg_demuxer = {
     NULL,
     ogg_read_timestamp,
     .extensions = "ogg",
+    .metadata_conv = ff_vorbiscomment_metadata_conv,
 };
index cbba414..91a5974 100644 (file)
@@ -26,6 +26,7 @@
 #define AVFORMAT_OGGDEC_H
 
 #include "avformat.h"
+#include "metadata.h"
 
 struct ogg_codec {
     const int8_t *magic;
@@ -91,6 +92,8 @@ extern const struct ogg_codec ff_speex_codec;
 extern const struct ogg_codec ff_theora_codec;
 extern const struct ogg_codec ff_vorbis_codec;
 
+extern const AVMetadataConv ff_vorbiscomment_metadata_conv[];
+
 int vorbis_comment(AVFormatContext *ms, uint8_t *buf, int size);
 
 #endif /* AVFORMAT_OGGDEC_H */
index 8eb1f47..5b45631 100644 (file)
 #include "avformat.h"
 #include "oggdec.h"
 
+/**
+ * VorbisComment metadata conversion mapping.
+ * from Ogg Vorbis I format specification: comment field and header specification
+ * http://xiph.org/vorbis/doc/v-comment.html
+ */
+const AVMetadataConv ff_vorbiscomment_metadata_conv[] = {
+    { "ARTIST"     , "author" },
+    { "TITLE"      , "title"  },
+    { "ALBUM"      , "album"  },
+    { "DATE"       , "year"   },
+    { "TRACKNUMBER", "track"  },
+    { "GENRE"      , "genre"  },
+    { 0 }
+};
+
 int
 vorbis_comment(AVFormatContext * as, uint8_t *buf, int size)
 {