comparison dvenc.c @ 2086:0cd7cfbee2e8 libavformat

Don't forget about audio remaining in buffer, in case there is enough left to make another DV frame.
author corey
date Wed, 16 May 2007 02:02:22 +0000
parents 2f0154760e5f
children 147b82d29e29
comparison
equal deleted inserted replaced
2085:8fc44b349f59 2086:0cd7cfbee2e8
264 } 264 }
265 265
266 /* Lets see if we have enough data to construct one DV frame */ 266 /* Lets see if we have enough data to construct one DV frame */
267 if (c->has_video == 1 && c->has_audio + 1 == 1<<c->n_ast) { 267 if (c->has_video == 1 && c->has_audio + 1 == 1<<c->n_ast) {
268 dv_inject_metadata(c, *frame); 268 dv_inject_metadata(c, *frame);
269 c->has_audio = 0;
269 for (i=0; i<c->n_ast; i++) { 270 for (i=0; i<c->n_ast; i++) {
270 dv_inject_audio(c, i, *frame); 271 dv_inject_audio(c, i, *frame);
271 av_fifo_drain(&c->audio_data[i], reqasize); 272 av_fifo_drain(&c->audio_data[i], reqasize);
273 c->has_audio |= ((reqasize <= av_fifo_size(&c->audio_data[i])) << i);
272 } 274 }
273 275
274 c->has_video = 0; 276 c->has_video = 0;
275 c->has_audio = 0; 277
276 c->frames++; 278 c->frames++;
277 279
278 return c->sys->frame_size; 280 return c->sys->frame_size;
279 } 281 }
280 282