write mdat in write_header avoid check in write_packet
authorBaptiste Coudurier <baptiste.coudurier@gmail.com>
Thu, 13 Apr 2006 13:21:20 +0000 (13:21 +0000)
committerBaptiste Coudurier <baptiste.coudurier@gmail.com>
Thu, 13 Apr 2006 13:21:20 +0000 (13:21 +0000)
Originally committed as revision 5286 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/movenc.c

index f152959..0ef0474 100644 (file)
@@ -69,7 +69,6 @@ typedef struct MOVContext {
     int     mode;
     int64_t time;
     int     nb_streams;
-    int     mdat_written;
     offset_t mdat_pos;
     long    timescale;
     MOVTrack tracks[MAX_STREAMS];
@@ -1620,6 +1619,9 @@ static int mov_write_header(AVFormatContext *s)
         mov->tracks[i].mode = mov->mode;
     }
 
+    mov_write_mdat_tag(pb, mov);
+    mov->time = s->timestamp + 0x7C25B080; //1970 based -> 1904 based
+
     put_flush_packet(pb);
 
     return 0;
@@ -1701,11 +1703,6 @@ static int mov_write_packet(AVFormatContext *s, AVPacket *pkt)
             return -1;
         trk->ents_allocated += MOV_INDEX_CLUSTER_SIZE;
     }
-    if (mov->mdat_written == 0) {
-        mov_write_mdat_tag(pb, mov);
-        mov->mdat_written = 1;
-        mov->time = s->timestamp + 0x7C25B080; //1970 based -> 1904 based
-    }
 
     trk->cluster[cl][id].pos = url_ftell(pb);
     trk->cluster[cl][id].samplesInChunk = samplesInChunk;