Module: libav
Branch: master
Commit: 84b721db366c0734fdfd23c8daaa7da7da21f761

Author:    Vladimir Pantelic <[email protected]>
Committer: Anton Khirnov <[email protected]>
Date:      Wed Feb  6 14:35:27 2013 +0100

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 <[email protected]>
Signed-off-by: Anton Khirnov <[email protected]>

---

 libavformat/asf.c    |    4 ++++
 libavformat/asf.h    |    1 +
 libavformat/asfdec.c |    6 ++++++
 3 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/libavformat/asf.c b/libavformat/asf.c
index eda8bd0..52afa09 100644
--- a/libavformat/asf.c
+++ b/libavformat/asf.c
@@ -109,6 +109,10 @@ const ff_asf_guid ff_asf_metadata_header = {
     0xea, 0xcb, 0xf8, 0xc5, 0xaf, 0x5b, 0x77, 0x48, 0x84, 0x67, 0xaa, 0x8c, 
0x44, 0xfa, 0x4c, 0xca
 };
 
+const ff_asf_guid ff_asf_metadata_library_header = {
+    0x94, 0x1c, 0x23, 0x44, 0x98, 0x94, 0xd1, 0x49, 0xa1, 0x41, 0x1d, 0x13, 
0x4e, 0x45, 0x70, 0x54
+};
+
 const ff_asf_guid ff_asf_marker_header = {
     0x01, 0xCD, 0x87, 0xF4, 0x51, 0xA9, 0xCF, 0x11, 0x8E, 0xE6, 0x00, 0xC0, 
0x0C, 0x20, 0x53, 0x65
 };
diff --git a/libavformat/asf.h b/libavformat/asf.h
index 1d94a2c..3aada8b 100644
--- a/libavformat/asf.h
+++ b/libavformat/asf.h
@@ -103,6 +103,7 @@ extern const ff_asf_guid ff_asf_simple_index_header;
 extern const ff_asf_guid ff_asf_ext_stream_embed_stream_header;
 extern const ff_asf_guid ff_asf_ext_stream_audio_stream;
 extern const ff_asf_guid ff_asf_metadata_header;
+extern const ff_asf_guid ff_asf_metadata_library_header;
 extern const ff_asf_guid ff_asf_marker_header;
 extern const ff_asf_guid ff_asf_my_guid;
 extern const ff_asf_guid ff_asf_language_guid;
diff --git a/libavformat/asfdec.c b/libavformat/asfdec.c
index e85ee8f..51422ea 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);
 

_______________________________________________
libav-commits mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-commits

Reply via email to