From d72aef4e922b71fd00665c863b66682ac36fc264 Mon Sep 17 00:00:00 2001 From: bbraun Date: Tue, 21 Aug 2012 03:21:39 +0200 Subject: movenc: add more metadata types Fixes Ticket1052 Signed-off-by: Michael Niedermayer --- libavformat/movenc.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'libavformat') diff --git a/libavformat/movenc.c b/libavformat/movenc.c index 7d50131d17..71037bd3c0 100644 --- a/libavformat/movenc.c +++ b/libavformat/movenc.c @@ -2012,6 +2012,24 @@ static int mov_write_trkn_tag(AVIOContext *pb, MOVMuxContext *mov, return size; } +static int mov_write_int8_metadata(AVFormatContext *s, AVIOContext *pb, + const char *name, const char *tag, + int len) +{ + AVDictionaryEntry *t = NULL; + uint8_t num; + + if (!(t = av_dict_get(s->metadata, tag, NULL, 0))) + return 0; + num = t ? atoi(t->value) : 0; + + avio_wb32(pb, len+8); + ffio_wfourcc(pb, name); + if (len==4) avio_wb32(pb, num); + else avio_w8 (pb, num); + return len+8; +} + /* iTunes meta data list */ static int mov_write_ilst_tag(AVIOContext *pb, MOVMuxContext *mov, AVFormatContext *s) @@ -2036,6 +2054,11 @@ static int mov_write_ilst_tag(AVIOContext *pb, MOVMuxContext *mov, mov_write_string_metadata(s, pb, "tvsh", "show" , 1); mov_write_string_metadata(s, pb, "tven", "episode_id",1); mov_write_string_metadata(s, pb, "tvnn", "network" , 1); + mov_write_int8_metadata (s, pb, "tves", "episode_sort",4); + mov_write_int8_metadata (s, pb, "tvsn", "season_number",4); + mov_write_int8_metadata (s, pb, "stik", "media_type",1); + mov_write_int8_metadata (s, pb, "hdvd", "hd_video", 1); + mov_write_int8_metadata (s, pb, "pgap", "gapless_playback",1); mov_write_trkn_tag(pb, mov, s); mov_write_tmpo_tag(pb, s); return update_size(pb, pos); -- cgit v1.2.3