lavfi/atempo: avoid asendcmd assertion failure
Check for zeros equal to the total samples early, because in that case we would already be leaving the first few frames out. Fixes trac ticket #10692
This commit is contained in:
parent
8996945d45
commit
4700925d22
@ -531,21 +531,21 @@ static int yae_load_frag(ATempoContext *atempo,
|
|||||||
dst = frag->data;
|
dst = frag->data;
|
||||||
|
|
||||||
start = atempo->position[0] - atempo->size;
|
start = atempo->position[0] - atempo->size;
|
||||||
zeros = 0;
|
|
||||||
|
|
||||||
if (frag->position[0] < start) {
|
// what we don't have we substitute with zeros:
|
||||||
// what we don't have we substitute with zeros:
|
zeros =
|
||||||
zeros = FFMIN(start - frag->position[0], (int64_t)nsamples);
|
frag->position[0] < start ?
|
||||||
av_assert0(zeros != nsamples);
|
FFMIN(start - frag->position[0], (int64_t)nsamples) : 0;
|
||||||
|
|
||||||
memset(dst, 0, zeros * atempo->stride);
|
|
||||||
dst += zeros * atempo->stride;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (zeros == nsamples) {
|
if (zeros == nsamples) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (frag->position[0] < start) {
|
||||||
|
memset(dst, 0, zeros * atempo->stride);
|
||||||
|
dst += zeros * atempo->stride;
|
||||||
|
}
|
||||||
|
|
||||||
// get the remaining data from the ring buffer:
|
// get the remaining data from the ring buffer:
|
||||||
na = (atempo->head < atempo->tail ?
|
na = (atempo->head < atempo->tail ?
|
||||||
atempo->tail - atempo->head :
|
atempo->tail - atempo->head :
|
||||||
|
Loading…
x
Reference in New Issue
Block a user