diff options
author | Paul B Mahol <onemda@gmail.com> | 2012-12-30 17:13:28 +0000 |
---|---|---|
committer | Paul B Mahol <onemda@gmail.com> | 2013-01-03 19:35:02 +0000 |
commit | 48340bbb366aeaa6af94a19c6baa211de4c14a47 (patch) | |
tree | 16953becbeff60788627cab7246b4b84951593ba | |
parent | 0c8943939eb0a0b7172c0664bd0b594c069c9bb7 (diff) | |
download | ffmpeg-48340bbb366aeaa6af94a19c6baa211de4c14a47.tar.gz |
aiffenc: metadata support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
-rw-r--r-- | libavformat/aiffenc.c | 21 | ||||
-rw-r--r-- | tests/ref/lavf/aiff | 4 |
2 files changed, 23 insertions, 2 deletions
diff --git a/libavformat/aiffenc.c b/libavformat/aiffenc.c index df6c756b7a..525bd49623 100644 --- a/libavformat/aiffenc.c +++ b/libavformat/aiffenc.c @@ -33,6 +33,22 @@ typedef struct { int64_t ssnd; } AIFFOutputContext; +static void put_meta(AVFormatContext *s, const char *key, uint32_t id) +{ + AVDictionaryEntry *tag; + AVIOContext *pb = s->pb; + + if (tag = av_dict_get(s->metadata, key, NULL, 0)) { + int size = strlen(tag->value); + + avio_wl32(pb, id); + avio_wb32(pb, FFALIGN(size, 2)); + avio_write(pb, tag->value, size); + if (size & 1) + avio_w8(pb, 0); + } +} + static int aiff_write_header(AVFormatContext *s) { AIFFOutputContext *aiff = s->priv_data; @@ -70,6 +86,11 @@ static int aiff_write_header(AVFormatContext *s) ff_mov_write_chan(pb, enc->channel_layout); } + put_meta(s, "title", MKTAG('N', 'A', 'M', 'E')); + put_meta(s, "author", MKTAG('A', 'U', 'T', 'H')); + put_meta(s, "copyright", MKTAG('(', 'c', ')', ' ')); + put_meta(s, "comment", MKTAG('A', 'N', 'N', 'O')); + /* Common chunk */ ffio_wfourcc(pb, "COMM"); avio_wb32(pb, aifc ? 24 : 18); /* size */ diff --git a/tests/ref/lavf/aiff b/tests/ref/lavf/aiff index e5d6fc375b..2a5cd81090 100644 --- a/tests/ref/lavf/aiff +++ b/tests/ref/lavf/aiff @@ -1,3 +1,3 @@ -379908755146d4ead062abe9c3b5c582 *./tests/data/lavf/lavf.aif -90166 ./tests/data/lavf/lavf.aif +b0d42747a6fc99a5cd1ab0e861671f3a *./tests/data/lavf/lavf.aif +90182 ./tests/data/lavf/lavf.aif ./tests/data/lavf/lavf.aif CRC=0xf1ae5536 |