OSDN Git Service

In mov demuxer, if multiple h264 stsd are present, do not concatenate streams, fix...
authorBaptiste Coudurier <baptiste.coudurier@gmail.com>
Thu, 25 Nov 2010 05:03:29 +0000 (05:03 +0000)
committerBaptiste Coudurier <baptiste.coudurier@gmail.com>
Thu, 25 Nov 2010 05:03:29 +0000 (05:03 +0000)
Originally committed as revision 25825 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/mov.c

index 1fc86ea..eeeba40 100644 (file)
@@ -939,10 +939,14 @@ int ff_mov_read_stsd_entries(MOVContext *c, ByteIOContext *pb, int entries)
             /* Multiple fourcc, we skip JPEG. This is not correct, we should
              * export it as a separate AVStream but this needs a few changes
              * in the MOV demuxer, patch welcome. */
+        multiple_stsd:
             av_log(c->fc, AV_LOG_WARNING, "multiple fourcc not supported\n");
             url_fskip(pb, size - (url_ftell(pb) - start_pos));
             continue;
         }
+        /* we cannot demux concatenated h264 streams because of different extradata */
+        if (st->codec->codec_tag && st->codec->codec_tag == AV_RL32("avc1"))
+            goto multiple_stsd;
         sc->pseudo_stream_id = st->codec->codec_tag ? -1 : pseudo_stream_id;
         sc->dref_id= dref_id;