Don't forget about audio remaining in buffer, in case there is enough
authorCorey Hickey <bugfood-ml@fatooh.org>
Wed, 16 May 2007 02:02:22 +0000 (02:02 +0000)
committerCorey Hickey <bugfood-ml@fatooh.org>
Wed, 16 May 2007 02:02:22 +0000 (02:02 +0000)
left to make another DV frame.

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

libavformat/dvenc.c

index a660fb5..98faf06 100644 (file)
@@ -266,13 +266,15 @@ int dv_assemble_frame(DVMuxContext *c, AVStream* st,
     /* Lets see if we have enough data to construct one DV frame */
     if (c->has_video == 1 && c->has_audio + 1 == 1<<c->n_ast) {
         dv_inject_metadata(c, *frame);
+        c->has_audio = 0;
         for (i=0; i<c->n_ast; i++) {
              dv_inject_audio(c, i, *frame);
              av_fifo_drain(&c->audio_data[i], reqasize);
+             c->has_audio |= ((reqasize <= av_fifo_size(&c->audio_data[i])) << i);
         }
 
         c->has_video = 0;
-        c->has_audio = 0;
+
         c->frames++;
 
         return c->sys->frame_size;