summaryrefslogtreecommitdiffstats
path: root/audio/filter/af_scaletempo.c
diff options
context:
space:
mode:
Diffstat (limited to 'audio/filter/af_scaletempo.c')
-rw-r--r--audio/filter/af_scaletempo.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/audio/filter/af_scaletempo.c b/audio/filter/af_scaletempo.c
index 707060578f..8702819372 100644
--- a/audio/filter/af_scaletempo.c
+++ b/audio/filter/af_scaletempo.c
@@ -433,9 +433,15 @@ static int control(struct af_instance *af, int cmd, void *arg)
return af_test_output(af, (struct mp_audio *)arg);
}
case AF_CONTROL_SET_PLAYBACK_SPEED: {
- if (s->speed_tempo == s->speed_pitch)
- break; // doesn't change speed
- update_speed(af, *(double *)arg);
+ double speed = *(double *)arg;
+ if (s->speed_tempo) {
+ if (s->speed_pitch)
+ break;
+ update_speed(af, speed);
+ } else if (s->speed_pitch) {
+ update_speed(af, speed);
+ break; // do not signal OK
+ }
return AF_OK;
}
case AF_CONTROL_RESET: