diff --git a/libavformat/dvenc.c b/libavformat/dvenc.c index a660fb5479..98faf06fb7 100644 --- a/libavformat/dvenc.c +++ b/libavformat/dvenc.c @@ -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<n_ast) { dv_inject_metadata(c, *frame); + c->has_audio = 0; for (i=0; in_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;