summaryrefslogtreecommitdiff
path: root/libavformat/metadata_compat.c
diff options
context:
space:
mode:
authorAurelien Jacobs <aurel@gnuage.org>2009-01-08 23:30:02 +0000
committerAurelien Jacobs <aurel@gnuage.org>2009-01-08 23:30:02 +0000
commit97ca83a566782e8d136adc086e74f1942bb2e4f3 (patch)
tree5c35d52c90edbce922de1a5a04895902028cf536 /libavformat/metadata_compat.c
parente99f76ab79e0f1285ef8a6c8700beed228c0b98f (diff)
move ff_metadata_sync_compat to metadata_compat.c
Originally committed as revision 16500 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavformat/metadata_compat.c')
-rw-r--r--libavformat/metadata_compat.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/libavformat/metadata_compat.c b/libavformat/metadata_compat.c
index 8b1e5eba6d..ab03826d53 100644
--- a/libavformat/metadata_compat.c
+++ b/libavformat/metadata_compat.c
@@ -102,4 +102,40 @@ 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}); \
+ }
+#define FILL_METADATA_STR(s, key) FILL_METADATA(s, key, s->key)
+#define FILL_METADATA_INT(s, key) { \
+ char number[10]; \
+ snprintf(number, sizeof(number), "%d", s->key); \
+ if(s->key) FILL_METADATA(s, key, number) }
+
+void ff_metadata_sync_compat(AVFormatContext *ctx)
+{
+ int i;
+
+ FILL_METADATA_STR(ctx, title);
+ FILL_METADATA_STR(ctx, author);
+ FILL_METADATA_STR(ctx, copyright);
+ FILL_METADATA_STR(ctx, comment);
+ FILL_METADATA_STR(ctx, album);
+ FILL_METADATA_INT(ctx, year);
+ FILL_METADATA_INT(ctx, track);
+ FILL_METADATA_STR(ctx, genre);
+ for (i=0; i<ctx->nb_chapters; i++)
+ FILL_METADATA_STR(ctx->chapters[i], title);
+ for (i=0; i<ctx->nb_programs; i++) {
+ FILL_METADATA_STR(ctx->programs[i], name);
+ FILL_METADATA_STR(ctx->programs[i], provider_name);
+ }
+ for (i=0; i<ctx->nb_streams; i++) {
+ FILL_METADATA_STR(ctx->streams[i], language);
+ FILL_METADATA_STR(ctx->streams[i], filename);
+ }
+}
+
#endif /* LIBAVFORMAT_VERSION_MAJOR < 53 */