1
0
Fork 0

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:
Rajiv Harlalka 2024-03-12 21:01:16 -06:00 committed by Kieran Kunhya
parent 8996945d45
commit 4700925d22
1 changed files with 9 additions and 9 deletions

View File

@ -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 :