[FFmpeg-cvslog] Write the fiel atom to mov files independently of the used video coded.

Carl Eugen Hoyos git at videolan.org
Thu Feb 14 15:53:09 CET 2013


ffmpeg | branch: release/1.0 | Carl Eugen Hoyos <cehoyos at ag.or.at> | Thu Feb 14 15:23:51 2013 +0100| [397e769f74dd4460db571e5126271214e8895d2a] | committer: Carl Eugen Hoyos

Write the fiel atom to mov files independently of the used video coded.

The QuickTime specification does not contain any hint that the atom
must not be written in some cases and both the QuickTime and the
AVID decoders do not fail if the atom is present.

This change allows to signal (visually) interlaced streams with
a codec different from uncompressed video.

As a side-effect, this fixes ticket #2202
(cherry picked from commit 7d0e3b197c817b307d599a23704a44763ed0bbdd)

Conflicts:
	tests/ref/fate/vsynth1-avui
	tests/ref/fate/vsynth1-dnxhd-1080i
	tests/ref/fate/vsynth1-mpeg4
	tests/ref/fate/vsynth2-avui
	tests/ref/fate/vsynth2-dnxhd-1080i
	tests/ref/fate/vsynth2-mpeg4
	tests/ref/lavf/mov
	tests/ref/seek/lavf_mov

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=397e769f74dd4460db571e5126271214e8895d2a
---

 libavformat/movenc.c |    7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/libavformat/movenc.c b/libavformat/movenc.c
index 7819f6e..9fe78b6 100644
--- a/libavformat/movenc.c
+++ b/libavformat/movenc.c
@@ -1097,13 +1097,14 @@ static int mov_write_video_tag(AVIOContext *pb, MOVTrack *track)
         mov_write_avcc_tag(pb, track);
         if(track->mode == MODE_IPOD)
             mov_write_uuid_tag_ipod(pb);
-    } else if (track->enc->field_order != AV_FIELD_UNKNOWN)
-        mov_write_fiel_tag(pb, track);
-    else if (track->enc->codec_id == AV_CODEC_ID_VC1 && track->vos_len > 0)
+    } else if (track->enc->codec_id == AV_CODEC_ID_VC1 && track->vos_len > 0)
         mov_write_dvc1_tag(pb, track);
     else if (track->vos_len > 0)
         mov_write_glbl_tag(pb, track);
 
+    if (track->enc->field_order != AV_FIELD_UNKNOWN)
+        mov_write_fiel_tag(pb, track);
+
     if (track->enc->sample_aspect_ratio.den && track->enc->sample_aspect_ratio.num &&
         track->enc->sample_aspect_ratio.den != track->enc->sample_aspect_ratio.num) {
         mov_write_pasp_tag(pb, track);



More information about the ffmpeg-cvslog mailing list