mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
avconv: check output stream recording time before each frame returned from filters
There may be multiple frames returned, so with just one check we can write more than requested to the output.
This commit is contained in:
parent
a508e7a1ff
commit
bb7431f4fc
4
avconv.c
4
avconv.c
@ -1668,7 +1668,7 @@ static int poll_filters(void)
|
||||
OutputFile *of = output_files[ost->file_index];
|
||||
int ret = 0;
|
||||
|
||||
if (!ost->filter || ost->is_past_recording_time)
|
||||
if (!ost->filter)
|
||||
continue;
|
||||
|
||||
if (!ost->filtered_frame && !(ost->filtered_frame = avcodec_alloc_frame())) {
|
||||
@ -1677,7 +1677,7 @@ static int poll_filters(void)
|
||||
avcodec_get_frame_defaults(ost->filtered_frame);
|
||||
filtered_frame = ost->filtered_frame;
|
||||
|
||||
while (ret >= 0) {
|
||||
while (ret >= 0 && !ost->is_past_recording_time) {
|
||||
if (ost->enc->type == AVMEDIA_TYPE_AUDIO &&
|
||||
!(ost->enc->capabilities & CODEC_CAP_VARIABLE_FRAME_SIZE))
|
||||
ret = av_buffersink_read_samples(ost->filter->filter, &picref,
|
||||
|
Loading…
Reference in New Issue
Block a user