summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavformat/asfdec.c8
-rw-r--r--libavformat/version.h2
2 files changed, 8 insertions, 2 deletions
diff --git a/libavformat/asfdec.c b/libavformat/asfdec.c
index 8522ce4555..fac5806798 100644
--- a/libavformat/asfdec.c
+++ b/libavformat/asfdec.c
@@ -80,10 +80,12 @@ typedef struct ASFContext {
ASFStream *asf_st; ///< currently decoded stream
int no_resync_search;
+ int export_xmp;
} ASFContext;
static const AVOption options[] = {
{ "no_resync_search", "Don't try to resynchronize by looking for a certain optional start code", offsetof(ASFContext, no_resync_search), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, AV_OPT_FLAG_DECODING_PARAM },
+ { "export_xmp", "Export full XMP metadata", offsetof(ASFContext, export_xmp), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, AV_OPT_FLAG_DECODING_PARAM },
{ NULL },
};
@@ -281,12 +283,16 @@ static void get_id3_tag(AVFormatContext *s, int len)
static void get_tag(AVFormatContext *s, const char *key, int type, int len, int type2_size)
{
- char *value;
+ ASFContext *asf = s->priv_data;
+ char *value = NULL;
int64_t off = avio_tell(s->pb);
if ((unsigned)len >= (UINT_MAX - 1) / 2)
return;
+ if (!asf->export_xmp && !strncmp(key, "xmp", 3))
+ goto finish;
+
value = av_malloc(2 * len + 1);
if (!value)
goto finish;
diff --git a/libavformat/version.h b/libavformat/version.h
index ce7528edb9..6226615206 100644
--- a/libavformat/version.h
+++ b/libavformat/version.h
@@ -31,7 +31,7 @@
#define LIBAVFORMAT_VERSION_MAJOR 56
#define LIBAVFORMAT_VERSION_MINOR 16
-#define LIBAVFORMAT_VERSION_MICRO 0
+#define LIBAVFORMAT_VERSION_MICRO 1
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
LIBAVFORMAT_VERSION_MINOR, \