diff options
author | Vladimir Pantelic <vladoman@gmail.com> | 2013-02-06 14:35:27 +0100 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2013-02-09 18:57:21 +0100 |
commit | 84b721db366c0734fdfd23c8daaa7da7da21f761 (patch) | |
tree | 07bb53f3077771105b4c57927891d4c0deaa434b /libavformat/asfdec.c | |
parent | 61f9ad2dfcb3f98b7ac5777d19d0e7b61d0be01e (diff) | |
download | ffmpeg-84b721db366c0734fdfd23c8daaa7da7da21f761.tar.gz |
asfdec: also read Metadata Library Object
In some ASF files this objects holds cover art and other tags. Compared to
Metadata Object it can also hold GUIDs, but we ignore these for now.
Signed-off-by: Vladimir Pantelic <vladoman@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Diffstat (limited to 'libavformat/asfdec.c')
-rw-r--r-- | libavformat/asfdec.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/libavformat/asfdec.c b/libavformat/asfdec.c index e85ee8ff81..51422ea137 100644 --- a/libavformat/asfdec.c +++ b/libavformat/asfdec.c @@ -136,6 +136,7 @@ static void print_guid(ff_asf_guid *g) else PRINT_IF_GUID(g, ff_asf_ext_stream_embed_stream_header); else PRINT_IF_GUID(g, ff_asf_ext_stream_audio_stream); else PRINT_IF_GUID(g, ff_asf_metadata_header); + else PRINT_IF_GUID(g, ff_asf_metadata_library_header); else PRINT_IF_GUID(g, ff_asf_marker_header); else PRINT_IF_GUID(g, stream_bitrate_guid); else PRINT_IF_GUID(g, ff_asf_language_guid); @@ -296,6 +297,9 @@ static void get_tag(AVFormatContext *s, const char *key, int type, int len, int } else if (type == 1 && !strcmp(key, "WM/Picture")) { // handle cover art asf_read_picture(s, len); goto finish; + } else if (type == 6) { // (don't) handle GUID + av_log(s, AV_LOG_DEBUG, "Unsupported GUID value in tag %s.\n", key); + goto finish; } else { av_log(s, AV_LOG_DEBUG, "Unsupported value type %d in tag %s.\n", type, key); @@ -740,6 +744,8 @@ static int asf_read_header(AVFormatContext *s) asf_read_ext_content_desc(s, gsize); } else if (!ff_guidcmp(&g, &ff_asf_metadata_header)) { asf_read_metadata(s, gsize); + } else if (!ff_guidcmp(&g, &ff_asf_metadata_library_header)) { + asf_read_metadata(s, gsize); } else if (!ff_guidcmp(&g, &ff_asf_ext_stream_header)) { asf_read_ext_stream_properties(s, gsize); |