mirror of https://git.ffmpeg.org/ffmpeg.git
Don't forget about audio remaining in buffer, in case there is enough
left to make another DV frame. Originally committed as revision 9032 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
c6bcbb2cd3
commit
2e374f12b5
|
@ -266,13 +266,15 @@ int dv_assemble_frame(DVMuxContext *c, AVStream* st,
|
||||||
/* Lets see if we have enough data to construct one DV frame */
|
/* 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) {
|
if (c->has_video == 1 && c->has_audio + 1 == 1<<c->n_ast) {
|
||||||
dv_inject_metadata(c, *frame);
|
dv_inject_metadata(c, *frame);
|
||||||
|
c->has_audio = 0;
|
||||||
for (i=0; i<c->n_ast; i++) {
|
for (i=0; i<c->n_ast; i++) {
|
||||||
dv_inject_audio(c, i, *frame);
|
dv_inject_audio(c, i, *frame);
|
||||||
av_fifo_drain(&c->audio_data[i], reqasize);
|
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_video = 0;
|
||||||
c->has_audio = 0;
|
|
||||||
c->frames++;
|
c->frames++;
|
||||||
|
|
||||||
return c->sys->frame_size;
|
return c->sys->frame_size;
|
||||||
|
|
Loading…
Reference in New Issue