From e95c7a61852cc5b9ce5445ff034b87553e61958a Mon Sep 17 00:00:00 2001 From: Luca Barbato Date: Mon, 15 Jun 2015 20:40:46 +0200 Subject: [PATCH] mov: Preserve the metadata even when bit-exactness is requested Make sure to not write the custom `encoder` string in that case. Bug-Id: 845 CC: libav-stable@libav.org --- libavformat/movenc.c | 14 +++++++------- tests/ref/vsynth/vsynth1-mpeg4 | 4 ++-- tests/ref/vsynth/vsynth2-mpeg4 | 4 ++-- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/libavformat/movenc.c b/libavformat/movenc.c index 761c3e8323..d8255c8fa1 100644 --- a/libavformat/movenc.c +++ b/libavformat/movenc.c @@ -1768,7 +1768,7 @@ static int mov_write_track_udta_tag(AVIOContext *pb, MOVMuxContext *mov, int ret, size; uint8_t *buf; - if (!st || mov->fc->flags & AVFMT_FLAG_BITEXACT) + if (!st) return 0; ret = avio_open_dyn_buf(&pb_buf); @@ -2062,8 +2062,10 @@ static int mov_write_ilst_tag(AVIOContext *pb, MOVMuxContext *mov, mov_write_string_metadata(s, pb, "\251wrt", "composer" , 1); mov_write_string_metadata(s, pb, "\251alb", "album" , 1); mov_write_string_metadata(s, pb, "\251day", "date" , 1); - if (!mov_write_string_metadata(s, pb, "\251too", "encoding_tool", 1)) - mov_write_string_tag(pb, "\251too", LIBAVFORMAT_IDENT, 0, 1); + if (!mov_write_string_metadata(s, pb, "\251too", "encoding_tool", 1)) { + if (!(s->flags & AVFMT_FLAG_BITEXACT)) + mov_write_string_tag(pb, "\251too", LIBAVFORMAT_IDENT, 0, 1); + } mov_write_string_metadata(s, pb, "\251cmt", "comment" , 1); mov_write_string_metadata(s, pb, "\251gen", "genre" , 1); mov_write_string_metadata(s, pb, "\251cpy", "copyright", 1); @@ -2166,9 +2168,6 @@ static int mov_write_udta_tag(AVIOContext *pb, MOVMuxContext *mov, int ret, size; uint8_t *buf; - if (s->flags & AVFMT_FLAG_BITEXACT) - return 0; - ret = avio_open_dyn_buf(&pb_buf); if (ret < 0) return ret; @@ -2188,7 +2187,8 @@ static int mov_write_udta_tag(AVIOContext *pb, MOVMuxContext *mov, mov_write_string_metadata(s, pb_buf, "\251aut", "author", 0); mov_write_string_metadata(s, pb_buf, "\251alb", "album", 0); mov_write_string_metadata(s, pb_buf, "\251day", "date", 0); - mov_write_string_metadata(s, pb_buf, "\251swr", "encoder", 0); + if (!(s->flags & AVFMT_FLAG_BITEXACT)) + mov_write_string_metadata(s, pb_buf, "\251swr", "encoder", 0); mov_write_string_metadata(s, pb_buf, "\251des", "comment", 0); mov_write_string_metadata(s, pb_buf, "\251gen", "genre", 0); mov_write_string_metadata(s, pb_buf, "\251cpy", "copyright", 0); diff --git a/tests/ref/vsynth/vsynth1-mpeg4 b/tests/ref/vsynth/vsynth1-mpeg4 index 38a7294a1a..ac1ebc7780 100644 --- a/tests/ref/vsynth/vsynth1-mpeg4 +++ b/tests/ref/vsynth/vsynth1-mpeg4 @@ -1,4 +1,4 @@ -dc927acd770e19a97456ecbd4d786938 *tests/data/fate/vsynth1-mpeg4.mp4 -540180 tests/data/fate/vsynth1-mpeg4.mp4 +173f524d5cd2591709bf1d5d2818b420 *tests/data/fate/vsynth1-mpeg4.mp4 +540241 tests/data/fate/vsynth1-mpeg4.mp4 8828a375448dc5c2215163ba70656f89 *tests/data/fate/vsynth1-mpeg4.out.rawvideo stddev: 7.97 PSNR: 30.10 MAXDIFF: 105 bytes: 7603200/ 7603200 diff --git a/tests/ref/vsynth/vsynth2-mpeg4 b/tests/ref/vsynth/vsynth2-mpeg4 index 1aa75a8cb0..bd47f14e3a 100644 --- a/tests/ref/vsynth/vsynth2-mpeg4 +++ b/tests/ref/vsynth/vsynth2-mpeg4 @@ -1,4 +1,4 @@ -f60260ca447624a19ad8307abad7a431 *tests/data/fate/vsynth2-mpeg4.mp4 -159432 tests/data/fate/vsynth2-mpeg4.mp4 +5476cf4dc144eac67b12737fd8966641 *tests/data/fate/vsynth2-mpeg4.mp4 +159493 tests/data/fate/vsynth2-mpeg4.mp4 871fda3853f4766669ad875923920bd5 *tests/data/fate/vsynth2-mpeg4.out.rawvideo stddev: 6.02 PSNR: 32.53 MAXDIFF: 89 bytes: 7603200/ 7603200