diff options
author | Sebastian Dröge <sebastian@centricular.com> | 2016-01-29 17:45:05 +0100 |
---|---|---|
committer | Michael Niedermayer <michael@niedermayer.cc> | 2016-02-01 18:32:15 +0100 |
commit | e3a125c970dbb99aa3b4f2aa126433709403c988 (patch) | |
tree | 635963b6860560ec88dd1036133a2693427c056e | |
parent | f781bf3e101b9c11d50dccd01971f5a09d54acfc (diff) | |
download | ffmpeg-e3a125c970dbb99aa3b4f2aa126433709403c988.tar.gz |
Revert "do not write f2 if not interlaced"
This reverts commit 8ed82d8174a666f80ab8834e3617cbe91ae740a9.
SMPTE S377-1-2009c defines in F.4.1 that the Video Line Map should
always be an array with two 32 bit integers as elements. This is
repeated in G.2.12 with actual examples for progressive content,
where the second value would always be 0.
Additionally, the IRT MXF analyser also lists this as the only
error in the MXF output from ffmpeg: https://mxf-analyser-cloud.irt.de
Reviewed-by: Tomas Härdin <tomas.hardin@codemill.se>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-rw-r--r-- | libavformat/mxfenc.c | 10 | ||||
-rw-r--r-- | tests/ref/lavf/mxf | 6 | ||||
-rw-r--r-- | tests/ref/lavf/mxf_opatom | 2 |
3 files changed, 9 insertions, 9 deletions
diff --git a/libavformat/mxfenc.c b/libavformat/mxfenc.c index 35c67f7813..6da8b10fb4 100644 --- a/libavformat/mxfenc.c +++ b/libavformat/mxfenc.c @@ -1013,7 +1013,7 @@ static void mxf_write_cdci_common(AVFormatContext *s, AVStream *st, const UID ke int stored_height = (st->codec->height+15)/16*16; int display_height; int f1, f2; - unsigned desc_size = size+8+8+8+8+8+8+8+5+16+sc->interlaced*4+12+20+5; + unsigned desc_size = size+8+8+8+8+8+8+8+5+16+4+12+20+5; if (sc->interlaced && sc->field_dominance) desc_size += 5; if (sc->signal_standard) @@ -1081,12 +1081,12 @@ static void mxf_write_cdci_common(AVFormatContext *s, AVStream *st, const UID ke f1 *= 2; } - mxf_write_local_tag(pb, 12+sc->interlaced*4, 0x320D); - avio_wb32(pb, sc->interlaced ? 2 : 1); + + mxf_write_local_tag(pb, 16, 0x320D); + avio_wb32(pb, 2); avio_wb32(pb, 4); avio_wb32(pb, f1); - if (sc->interlaced) - avio_wb32(pb, f2); + avio_wb32(pb, f2); mxf_write_local_tag(pb, 8, 0x320E); avio_wb32(pb, sc->aspect_ratio.num); diff --git a/tests/ref/lavf/mxf b/tests/ref/lavf/mxf index bc113f35ae..e1c0c79b05 100644 --- a/tests/ref/lavf/mxf +++ b/tests/ref/lavf/mxf @@ -1,9 +1,9 @@ -6d00bf68ec95d0aac959defccdb0190e *./tests/data/lavf/lavf.mxf +f9b570c7b4fbbc2b71f2236b32e7cbb6 *./tests/data/lavf/lavf.mxf 525369 ./tests/data/lavf/lavf.mxf ./tests/data/lavf/lavf.mxf CRC=0xdbfff6f1 -0bbdd13de78db8ab9314f083b7da0f30 *./tests/data/lavf/lavf.mxf +8f6a9a6b409f0f5a0bf003f8dea26314 *./tests/data/lavf/lavf.mxf 560697 ./tests/data/lavf/lavf.mxf ./tests/data/lavf/lavf.mxf CRC=0x11a6178e -462f95f19b3e0fd119a204a96eb6f424 *./tests/data/lavf/lavf.mxf +10ac0f158fc0af356439b818de7601e3 *./tests/data/lavf/lavf.mxf 525369 ./tests/data/lavf/lavf.mxf ./tests/data/lavf/lavf.mxf CRC=0xdbfff6f1 diff --git a/tests/ref/lavf/mxf_opatom b/tests/ref/lavf/mxf_opatom index 8dfc55a824..ea1190c06a 100644 --- a/tests/ref/lavf/mxf_opatom +++ b/tests/ref/lavf/mxf_opatom @@ -1,3 +1,3 @@ -2205907020248f73876eaad745d2f5b5 *./tests/data/lavf/lavf.mxf_opatom +962c2cd582340f8961a8283636093abf *./tests/data/lavf/lavf.mxf_opatom 4717113 ./tests/data/lavf/lavf.mxf_opatom ./tests/data/lavf/lavf.mxf_opatom CRC=0xf55aa22a |