mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
Merge commit '9bfc6e02bae9de354fb9ba09a8a140e83eeadf7d'
* commit '9bfc6e02bae9de354fb9ba09a8a140e83eeadf7d': afifo: fix request_samples on the last frame in certain cases Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
commit
e4c0f258d3
@ -183,7 +183,24 @@ static int return_audio_frame(AVFilterContext *ctx)
|
||||
}
|
||||
|
||||
while (s->out->nb_samples < s->allocated_samples) {
|
||||
int len = FFMIN(s->allocated_samples - s->out->nb_samples,
|
||||
int len;
|
||||
|
||||
if (!s->root.next) {
|
||||
ret = ff_request_frame(ctx->inputs[0]);
|
||||
if (ret == AVERROR_EOF) {
|
||||
av_samples_set_silence(s->out->extended_data,
|
||||
s->out->nb_samples,
|
||||
s->allocated_samples -
|
||||
s->out->nb_samples,
|
||||
nb_channels, link->format);
|
||||
s->out->nb_samples = s->allocated_samples;
|
||||
break;
|
||||
} else if (ret < 0)
|
||||
return ret;
|
||||
}
|
||||
head = s->root.next->frame;
|
||||
|
||||
len = FFMIN(s->allocated_samples - s->out->nb_samples,
|
||||
head->nb_samples);
|
||||
|
||||
av_samples_copy(s->out->extended_data, head->extended_data,
|
||||
@ -194,21 +211,6 @@ static int return_audio_frame(AVFilterContext *ctx)
|
||||
if (len == head->nb_samples) {
|
||||
av_frame_free(&head);
|
||||
queue_pop(s);
|
||||
|
||||
if (!s->root.next &&
|
||||
(ret = ff_request_frame(ctx->inputs[0])) < 0) {
|
||||
if (ret == AVERROR_EOF) {
|
||||
av_samples_set_silence(s->out->extended_data,
|
||||
s->out->nb_samples,
|
||||
s->allocated_samples -
|
||||
s->out->nb_samples,
|
||||
nb_channels, link->format);
|
||||
s->out->nb_samples = s->allocated_samples;
|
||||
break;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
head = s->root.next->frame;
|
||||
} else {
|
||||
buffer_offset(link, head, len);
|
||||
}
|
||||
|
@ -51,7 +51,7 @@ fate-filter-join: SRC2 = $(TARGET_PATH)/tests/data/asynth-44100-3.wav
|
||||
fate-filter-join: tests/data/asynth-44100-2.wav tests/data/asynth-44100-3.wav
|
||||
fate-filter-join: CMD = md5 -i $(SRC1) -i $(SRC2) -filter_complex join=channel_layout=5 -f s16le
|
||||
fate-filter-join: CMP = oneline
|
||||
fate-filter-join: REF = 38fa1b18b0c46d77df6f17bfc4f078dd
|
||||
fate-filter-join: REF = 409e66fc5ece4ddea4aa16bc47026bb0
|
||||
|
||||
FATE_AFILTER-$(call ALLYES, WAV_DEMUXER PCM_S16LE_DECODER PCM_S16LE_ENCODER PCM_S16LE_MUXER APERMS_FILTER VOLUME_FILTER) += fate-filter-volume
|
||||
fate-filter-volume: SRC = $(TARGET_PATH)/tests/data/asynth-44100-2.wav
|
||||
|
Loading…
Reference in New Issue
Block a user