OSDN Git Service

support mp4 fragmented files without any samples in the moov atom
authorBaptiste Coudurier <baptiste.coudurier@gmail.com>
Sun, 30 Mar 2008 21:15:06 +0000 (21:15 +0000)
committerBaptiste Coudurier <baptiste.coudurier@gmail.com>
Sun, 30 Mar 2008 21:15:06 +0000 (21:15 +0000)
Originally committed as revision 12635 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/mov.c

index 0c232e6..3289334 100644 (file)
@@ -1235,8 +1235,8 @@ static int mov_read_trak(MOVContext *c, ByteIOContext *pb, MOV_atom_t atom)
         return ret;
 
     /* sanity checks */
-    if(!sc->stts_count || !sc->chunk_count || !sc->sample_to_chunk_sz ||
-       (!sc->sample_size && !sc->sample_count)){
+    if(sc->chunk_count && (!sc->stts_count || !sc->sample_to_chunk_sz ||
+                           (!sc->sample_size && !sc->sample_count))){
         av_log(c->fc, AV_LOG_ERROR, "stream %d, missing mandatory atoms, broken header\n",
                st->index);
         sc->sample_count = 0; //ignore track
@@ -1456,8 +1456,6 @@ static int mov_read_trun(MOVContext *c, ByteIOContext *pb, MOV_atom_t atom)
     sc = st->priv_data;
     if (sc->pseudo_stream_id+1 != frag->stsd_id)
         return 0;
-    if (!st->nb_index_entries)
-        return -1;
     get_byte(pb); /* version */
     flags = get_be24(pb);
     entries = get_be32(pb);