#include "metadata.h"
#include "libavutil/avstring.h"
-#if LIBAVFORMAT_VERSION_MAJOR < 53
+#if FF_API_OLD_METADATA
#define SIZE_OFFSET(x) sizeof(((AVFormatContext*)0)->x),offsetof(AVFormatContext,x)
{ "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) },
#define FILL_METADATA(s, key, value) { \
- if (value && *value && !av_metadata_get(s->metadata, #key, NULL, 0)) \
- av_metadata_set(&s->metadata, (const AVMetadataTag){#key, value}); \
+ if (!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_STR(s, key) { \
+ if (s->key && *s->key) FILL_METADATA(s, key, s->key); }
#define FILL_METADATA_INT(s, key) { \
char number[10]; \
snprintf(number, sizeof(number), "%d", s->key); \
{
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);
}
}
-#endif /* LIBAVFORMAT_VERSION_MAJOR < 53 */
+#endif /* FF_API_OLD_METADATA */