|
|
|
@ -153,7 +153,7 @@ typedef struct ATempoContext { |
|
|
|
|
|
|
|
|
|
static const AVOption atempo_options[] = { |
|
|
|
|
{ "tempo", "set tempo scale factor", |
|
|
|
|
OFFSET(tempo), AV_OPT_TYPE_DOUBLE, { .dbl = 1.0 }, 0.5, 2.0, |
|
|
|
|
OFFSET(tempo), AV_OPT_TYPE_DOUBLE, { .dbl = 1.0 }, 0.5, 100.0, |
|
|
|
|
AV_OPT_FLAG_AUDIO_PARAM | AV_OPT_FLAG_FILTERING_PARAM }, |
|
|
|
|
{ NULL } |
|
|
|
|
}; |
|
|
|
@ -439,8 +439,8 @@ static int yae_load_data(ATempoContext *atempo, |
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// samples are not expected to be skipped:
|
|
|
|
|
av_assert0(read_size <= atempo->ring); |
|
|
|
|
// samples are not expected to be skipped, unless tempo is greater than 2:
|
|
|
|
|
av_assert0(read_size <= atempo->ring || atempo->tempo > 2.0); |
|
|
|
|
|
|
|
|
|
while (atempo->position[0] < stop_here && src < src_end) { |
|
|
|
|
int src_samples = (src_end - src) / atempo->stride; |
|
|
|
|