]> git.sesse.net Git - ffmpeg/blobdiff - libavformat/metadata_compat.c
Add priv_data_size and priv_data_class to URLProtocol
[ffmpeg] / libavformat / metadata_compat.c
index a7f2dfea92d394f6138a120b0891e3b404d69509..ac99c05c60ada5f2b1d18345de887bd39f3654e1 100644 (file)
@@ -45,8 +45,11 @@ static const struct {
     { "creator",         SIZE_OFFSET(author)    },
     { "written_by",      SIZE_OFFSET(author)    },
     { "lead_performer",  SIZE_OFFSET(author)    },
+    { "composer",        SIZE_OFFSET(author)    },
+    { "performer",       SIZE_OFFSET(author)    },
     { "description",     SIZE_OFFSET(comment)   },
     { "albumtitle",      SIZE_OFFSET(album)     },
+    { "date",            SIZE_OFFSET(year)      },
     { "date_written",    SIZE_OFFSET(year)      },
     { "date_released",   SIZE_OFFSET(year)      },
     { "tracknumber",     SIZE_OFFSET(track)     },
@@ -105,9 +108,8 @@ void ff_metadata_demux_compat(AVFormatContext *ctx)
 
 
 #define FILL_METADATA(s, key, value) {                                        \
-    if (value && *value &&                                                    \
-        !av_metadata_get(s->metadata, #key, NULL, AV_METADATA_IGNORE_CASE))   \
-        av_metadata_set(&s->metadata, (const AVMetadataTag){#key, value});    \
+    if (value && *value && !av_metadata_get(s->metadata, #key, NULL, 0))      \
+        av_metadata_set2(&s->metadata, #key, value, 0);                       \
     }
 #define FILL_METADATA_STR(s, key)  FILL_METADATA(s, key, s->key)
 #define FILL_METADATA_INT(s, key) {                                           \
@@ -119,6 +121,9 @@ void ff_metadata_mux_compat(AVFormatContext *ctx)
 {
     int i;
 
+    if (ctx->metadata && ctx->metadata->count > 0)
+        return;
+
     FILL_METADATA_STR(ctx, title);
     FILL_METADATA_STR(ctx, author);
     FILL_METADATA_STR(ctx, copyright);