# HG changeset patch # User corey # Date 1179280942 0 # Node ID 0cd7cfbee2e807e83b8d7c9152080bfb5dd12dff # Parent 8fc44b349f59bfd9fc7cbc3070738d65162f5c96 Don't forget about audio remaining in buffer, in case there is enough left to make another DV frame. diff -r 8fc44b349f59 -r 0cd7cfbee2e8 dvenc.c --- a/dvenc.c Tue May 15 14:58:30 2007 +0000 +++ b/dvenc.c Wed May 16 02:02:22 2007 +0000 @@ -266,13 +266,15 @@ /* 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;