You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-15 14:13:16 +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:
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,
|
||||
|
Reference in New Issue
Block a user