summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavformat/movenc.c14
-rw-r--r--libavformat/movenc.h1
-rw-r--r--tests/ref/fate/sub-movtextenc2
-rw-r--r--tests/ref/lavf/ismv12
-rw-r--r--tests/ref/lavf/mov16
-rw-r--r--tests/ref/seek/lavf-mov44
-rw-r--r--tests/ref/vsynth/vsynth1-mpeg44
-rw-r--r--tests/ref/vsynth/vsynth2-mpeg44
8 files changed, 49 insertions, 48 deletions
diff --git a/libavformat/movenc.c b/libavformat/movenc.c
index 47594d04da..d4ff7f08c6 100644
--- a/libavformat/movenc.c
+++ b/libavformat/movenc.c
@@ -2225,7 +2225,8 @@ 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))
+ if (!mov->exact &&
+ !mov_write_string_metadata(s, pb, "\251too", "encoding_tool", 1))
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);
@@ -2345,14 +2346,9 @@ static int mov_write_udta_tag(AVIOContext *pb, MOVMuxContext *mov,
AVFormatContext *s)
{
AVIOContext *pb_buf;
- int i, ret, size;
+ int ret, size;
uint8_t *buf;
- for (i = 0; i < s->nb_streams; i++)
- if (mov->tracks[i].enc->flags & CODEC_FLAG_BITEXACT) {
- return 0;
- }
-
ret = avio_open_dyn_buf(&pb_buf);
if (ret < 0)
return ret;
@@ -3767,6 +3763,10 @@ static int mov_write_header(AVFormatContext *s)
else if (!strcmp("f4v", s->oformat->name)) mov->mode = MODE_F4V;
}
+ for (i = 0; i < s->nb_streams; i++)
+ if (s->streams[i]->codec->flags & CODEC_FLAG_BITEXACT)
+ mov->exact = 1;
+
/* Set the FRAGMENT flag if any of the fragmentation methods are
* enabled. */
if (mov->max_fragment_duration || mov->max_fragment_size ||
diff --git a/libavformat/movenc.h b/libavformat/movenc.h
index 09f3ea772c..81b2613230 100644
--- a/libavformat/movenc.h
+++ b/libavformat/movenc.h
@@ -156,6 +156,7 @@ typedef struct MOVMuxContext {
int flags;
int rtp_flags;
+ int exact;
int iods_skip;
int iods_video_profile;
diff --git a/tests/ref/fate/sub-movtextenc b/tests/ref/fate/sub-movtextenc
index f6f41746a6..5d99766a37 100644
--- a/tests/ref/fate/sub-movtextenc
+++ b/tests/ref/fate/sub-movtextenc
@@ -1 +1 @@
-cf3d43e6de1f97681583ba08d9fe5938
+3c685e807d4961924d0abcc18b3f8fa8
diff --git a/tests/ref/lavf/ismv b/tests/ref/lavf/ismv
index 764695e54d..2c8d92c292 100644
--- a/tests/ref/lavf/ismv
+++ b/tests/ref/lavf/ismv
@@ -1,9 +1,9 @@
-df243ab73b33905776bdaefb79d14be8 *./tests/data/lavf/lavf.ismv
-312453 ./tests/data/lavf/lavf.ismv
+17b0b8eff852edd25fa38aed062689d7 *./tests/data/lavf/lavf.ismv
+312546 ./tests/data/lavf/lavf.ismv
./tests/data/lavf/lavf.ismv CRC=0xb7d29d29
-c40d80b3b35c9cd1324dead65dfcdb69 *./tests/data/lavf/lavf.ismv
-321359 ./tests/data/lavf/lavf.ismv
+543e5146df7bd4b7eb7edc94e0034ad9 *./tests/data/lavf/lavf.ismv
+321452 ./tests/data/lavf/lavf.ismv
./tests/data/lavf/lavf.ismv CRC=0x33834815
-df243ab73b33905776bdaefb79d14be8 *./tests/data/lavf/lavf.ismv
-312453 ./tests/data/lavf/lavf.ismv
+17b0b8eff852edd25fa38aed062689d7 *./tests/data/lavf/lavf.ismv
+312546 ./tests/data/lavf/lavf.ismv
./tests/data/lavf/lavf.ismv CRC=0xb7d29d29
diff --git a/tests/ref/lavf/mov b/tests/ref/lavf/mov
index 6c7375393b..42c671687b 100644
--- a/tests/ref/lavf/mov
+++ b/tests/ref/lavf/mov
@@ -1,12 +1,12 @@
-65ba2cff95100a4914b2ff507eb42818 *./tests/data/lavf/lavf.mov
-366421 ./tests/data/lavf/lavf.mov
+23150fc2d9980d5b0c50713e4271858a *./tests/data/lavf/lavf.mov
+366449 ./tests/data/lavf/lavf.mov
./tests/data/lavf/lavf.mov CRC=0xbb2b949b
-b9b988b23b5e5aff8760d0475908f837 *./tests/data/lavf/lavf.mov
-357511 ./tests/data/lavf/lavf.mov
+faa9a584701f112013e7f6ed7e97d8a4 *./tests/data/lavf/lavf.mov
+357539 ./tests/data/lavf/lavf.mov
./tests/data/lavf/lavf.mov CRC=0xbb2b949b
-5c5c79e09490763a2692c91c5985b7ea *./tests/data/lavf/lavf.mov
-366593 ./tests/data/lavf/lavf.mov
+0badb31442bdd8ecf2d1dc2ed2a94561 *./tests/data/lavf/lavf.mov
+366621 ./tests/data/lavf/lavf.mov
./tests/data/lavf/lavf.mov CRC=0xa9793231
-c1d4ff07ccad169cb6fca003661f0c12 *./tests/data/lavf/lavf.mov
-356893 ./tests/data/lavf/lavf.mov
+74d318eab7cacb39f3aec00ae8f85422 *./tests/data/lavf/lavf.mov
+356921 ./tests/data/lavf/lavf.mov
./tests/data/lavf/lavf.mov CRC=0xbb2b949b
diff --git a/tests/ref/seek/lavf-mov b/tests/ref/seek/lavf-mov
index 93a9a23422..27ea7c7730 100644
--- a/tests/ref/seek/lavf-mov
+++ b/tests/ref/seek/lavf-mov
@@ -1,48 +1,48 @@
-ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 1739 size: 27837
+ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 1767 size: 27837
ret: 0 st:-1 flags:0 ts:-1.000000
-ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 1739 size: 27837
+ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 1767 size: 27837
ret: 0 st:-1 flags:1 ts: 1.894167
-ret: 0 st: 1 flags:1 dts: 0.952018 pts: 0.952018 pos: 326943 size: 1024
+ret: 0 st: 1 flags:1 dts: 0.952018 pts: 0.952018 pos: 326971 size: 1024
ret: 0 st: 0 flags:0 ts: 0.788359
-ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos: 327967 size: 27834
+ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos: 327995 size: 27834
ret: 0 st: 0 flags:1 ts:-0.317500
-ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 1739 size: 27837
+ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 1767 size: 27837
ret:-1 st: 1 flags:0 ts: 2.576667
ret: 0 st: 1 flags:1 ts: 1.470839
-ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos: 327967 size: 27834
+ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos: 327995 size: 27834
ret: 0 st:-1 flags:0 ts: 0.365002
-ret: 0 st: 0 flags:1 dts: 0.480000 pts: 0.480000 pos: 165221 size: 27925
+ret: 0 st: 0 flags:1 dts: 0.480000 pts: 0.480000 pos: 165249 size: 27925
ret: 0 st:-1 flags:1 ts:-0.740831
-ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 1739 size: 27837
+ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 1767 size: 27837
ret:-1 st: 0 flags:0 ts: 2.153359
ret: 0 st: 0 flags:1 ts: 1.047500
-ret: 0 st: 1 flags:1 dts: 0.952018 pts: 0.952018 pos: 326943 size: 1024
+ret: 0 st: 1 flags:1 dts: 0.952018 pts: 0.952018 pos: 326971 size: 1024
ret: 0 st: 1 flags:0 ts:-0.058322
-ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 1739 size: 27837
+ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 1767 size: 27837
ret: 0 st: 1 flags:1 ts: 2.835828
-ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos: 327967 size: 27834
+ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos: 327995 size: 27834
ret:-1 st:-1 flags:0 ts: 1.730004
ret: 0 st:-1 flags:1 ts: 0.624171
-ret: 0 st: 1 flags:1 dts: 0.464399 pts: 0.464399 pos: 164197 size: 1024
+ret: 0 st: 1 flags:1 dts: 0.464399 pts: 0.464399 pos: 164225 size: 1024
ret: 0 st: 0 flags:0 ts:-0.481641
-ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 1739 size: 27837
+ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 1767 size: 27837
ret: 0 st: 0 flags:1 ts: 2.412500
-ret: 0 st: 1 flags:1 dts: 0.952018 pts: 0.952018 pos: 326943 size: 1024
+ret: 0 st: 1 flags:1 dts: 0.952018 pts: 0.952018 pos: 326971 size: 1024
ret:-1 st: 1 flags:0 ts: 1.306667
ret: 0 st: 1 flags:1 ts: 0.200839
-ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 1739 size: 27837
+ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 1767 size: 27837
ret: 0 st:-1 flags:0 ts:-0.904994
-ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 1739 size: 27837
+ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 1767 size: 27837
ret: 0 st:-1 flags:1 ts: 1.989173
-ret: 0 st: 1 flags:1 dts: 0.952018 pts: 0.952018 pos: 326943 size: 1024
+ret: 0 st: 1 flags:1 dts: 0.952018 pts: 0.952018 pos: 326971 size: 1024
ret: 0 st: 0 flags:0 ts: 0.883359
-ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos: 327967 size: 27834
+ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos: 327995 size: 27834
ret: 0 st: 0 flags:1 ts:-0.222500
-ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 1739 size: 27837
+ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 1767 size: 27837
ret:-1 st: 1 flags:0 ts: 2.671678
ret: 0 st: 1 flags:1 ts: 1.565850
-ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos: 327967 size: 27834
+ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos: 327995 size: 27834
ret: 0 st:-1 flags:0 ts: 0.460008
-ret: 0 st: 0 flags:1 dts: 0.480000 pts: 0.480000 pos: 165221 size: 27925
+ret: 0 st: 0 flags:1 dts: 0.480000 pts: 0.480000 pos: 165249 size: 27925
ret: 0 st:-1 flags:1 ts:-0.645825
-ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 1739 size: 27837
+ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 1767 size: 27837
diff --git a/tests/ref/vsynth/vsynth1-mpeg4 b/tests/ref/vsynth/vsynth1-mpeg4
index 9a58987f22..4e9b4bd03a 100644
--- a/tests/ref/vsynth/vsynth1-mpeg4
+++ b/tests/ref/vsynth/vsynth1-mpeg4
@@ -1,4 +1,4 @@
-a52ff2ce472737e07462d6b51673a886 *tests/data/fate/vsynth1-mpeg4.mp4
-540024 tests/data/fate/vsynth1-mpeg4.mp4
+b4e8871c504a22c8c874c7e845b73da7 *tests/data/fate/vsynth1-mpeg4.mp4
+540085 tests/data/fate/vsynth1-mpeg4.mp4
f80ec173d37f2f91add031e95579a220 *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 0956543986..ac5ee39030 100644
--- a/tests/ref/vsynth/vsynth2-mpeg4
+++ b/tests/ref/vsynth/vsynth2-mpeg4
@@ -1,4 +1,4 @@
-3d99aa9393f2a1a9319580b78df2bf3d *tests/data/fate/vsynth2-mpeg4.mp4
-119661 tests/data/fate/vsynth2-mpeg4.mp4
+4a029747434d24d128b078a5e6aa1e88 *tests/data/fate/vsynth2-mpeg4.mp4
+119722 tests/data/fate/vsynth2-mpeg4.mp4
9a1e085d9e488c5ead0c940c9612a37a *tests/data/fate/vsynth2-mpeg4.out.rawvideo
stddev: 5.34 PSNR: 33.57 MAXDIFF: 83 bytes: 7603200/ 7603200