diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2009-01-04 18:48:37 +0000 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2009-01-04 18:48:37 +0000 |
commit | 47146dfbf6bca94dd0706b4313cc5e26edaf18d4 (patch) | |
tree | ba7242f58b79aadcd06267356a5fdc5b08e17130 /libavformat/avienc.c | |
parent | 045cbba92dad0728d9c277a6588a6c3e114f3917 (diff) | |
download | ffmpeg-47146dfbf6bca94dd0706b4313cc5e26edaf18d4.tar.gz |
Generic metadata API.
avi is updated as example.
No version bump, the API still might change slightly ...
No update to ffmpeg.c as requested by aurel.
Originally committed as revision 16424 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavformat/avienc.c')
-rw-r--r-- | libavformat/avienc.c | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/libavformat/avienc.c b/libavformat/avienc.c index a672e8d85c..4ae608f780 100644 --- a/libavformat/avienc.c +++ b/libavformat/avienc.c @@ -103,6 +103,15 @@ static void avi_write_info_tag(ByteIOContext *pb, const char *tag, const char *s } } +static void avi_write_info_tag2(AVFormatContext *s, const char *fourcc, const char *key1, const char *key2) +{ + AVMetaDataTag *tag= av_metadata_get(s->meta_data, key1, NULL, AV_METADATA_IGNORE_CASE); + if(!tag && key2) + tag= av_metadata_get(s->meta_data, key2, NULL, AV_METADATA_IGNORE_CASE); + if(tag) + avi_write_info_tag(s->pb, fourcc, tag->value); +} + static int avi_write_counters(AVFormatContext* s, int riff_id) { ByteIOContext *pb = s->pb; @@ -332,17 +341,13 @@ static int avi_write_header(AVFormatContext *s) list2 = start_tag(pb, "LIST"); put_tag(pb, "INFO"); - avi_write_info_tag(pb, "INAM", s->title); - avi_write_info_tag(pb, "IART", s->author); - avi_write_info_tag(pb, "ICOP", s->copyright); - avi_write_info_tag(pb, "ICMT", s->comment); - avi_write_info_tag(pb, "IPRD", s->album); - avi_write_info_tag(pb, "IGNR", s->genre); - if (s->track) { - char str_track[4]; - snprintf(str_track, 4, "%d", s->track); - avi_write_info_tag(pb, "IPRT", str_track); - } + avi_write_info_tag2(s, "INAM", "Title", NULL); + avi_write_info_tag2(s, "IART", "Artist", "Author"); + avi_write_info_tag2(s, "ICOP", "Copyright", NULL); + avi_write_info_tag2(s, "ICMT", "Comment", NULL); + avi_write_info_tag2(s, "IPRD", "Album", NULL); + avi_write_info_tag2(s, "IGNR", "Genre", NULL); + avi_write_info_tag2(s, "IPRT", "Track", NULL); if(!(s->streams[0]->codec->flags & CODEC_FLAG_BITEXACT)) avi_write_info_tag(pb, "ISFT", LIBAVFORMAT_IDENT); end_tag(pb, list2); |