Mercurial > libavformat.hg
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 |
