Force codec_tag I420 for Quicktime Planar Y'CbCr 8-bit 4:2:0 raw codec,
authorCarl Eugen Hoyos <cehoyos@rainbow.studorg.tuwien.ac.at>
Sun, 24 Jan 2010 21:37:35 +0000 (21:37 +0000)
committerCarl Eugen Hoyos <cehoyos@rainbow.studorg.tuwien.ac.at>
Sun, 24 Jan 2010 21:37:35 +0000 (21:37 +0000)
because YV12 triggers an UV swap in rawdec.c, fixes issue 1687.

Originally committed as revision 21436 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/mov.c

index b824620..4765f18 100644 (file)
@@ -939,6 +939,9 @@ static int mov_read_stsd(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
                     PUT_UTF8(codec_name[i+1], tmp, st->codec->codec_name[pos++] = tmp;)
                 }
                 st->codec->codec_name[pos] = 0;
                     PUT_UTF8(codec_name[i+1], tmp, st->codec->codec_name[pos++] = tmp;)
                 }
                 st->codec->codec_name[pos] = 0;
+                /* codec_tag YV12 triggers an UV swap in rawdec.c */
+                if (!memcmp(st->codec->codec_name, "Planar Y'CbCr 8-bit 4:2:0", 25))
+                    st->codec->codec_tag=MKTAG('I', '4', '2', '0');
             }
 
             st->codec->bits_per_coded_sample = get_be16(pb); /* depth */
             }
 
             st->codec->bits_per_coded_sample = get_be16(pb); /* depth */