Mercurial > libavformat.hg
diff metadata_compat.c @ 4180:0df2e345a1a8 libavformat
move ff_metadata_sync_compat to metadata_compat.c
| author | aurel |
|---|---|
| date | Thu, 08 Jan 2009 23:30:02 +0000 |
| parents | c32a783ff374 |
| children | 17a8a3696ee1 |
line wrap: on
line diff
--- a/metadata_compat.c Thu Jan 08 23:24:51 2009 +0000 +++ b/metadata_compat.c Thu Jan 08 23:30:02 2009 +0000 @@ -102,4 +102,40 @@ } } + +#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 */
