summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--audio/filter/af_scaletempo.c2
-rw-r--r--player/audio.c6
2 files changed, 5 insertions, 3 deletions
diff --git a/audio/filter/af_scaletempo.c b/audio/filter/af_scaletempo.c
index a4f055bee9..1f187a98bc 100644
--- a/audio/filter/af_scaletempo.c
+++ b/audio/filter/af_scaletempo.c
@@ -305,7 +305,7 @@ static int control(struct af_instance *af, int cmd, void *arg)
if (AF_FORMAT_IS_SPECIAL(data->format)) {
MP_ERR(af, "Changing speed is not supported with spdif formats.\n");
- return AF_DETACH;
+ return AF_ERROR;
}
mp_audio_force_interleaved_format(data);
diff --git a/player/audio.c b/player/audio.c
index f1dfe66784..306df086ab 100644
--- a/player/audio.c
+++ b/player/audio.c
@@ -104,8 +104,10 @@ static int recreate_audio_filters(struct MPContext *mpctx)
{
assert(mpctx->d_audio);
- if (update_playback_speed_filters(mpctx) < 0)
- return -1;
+ if (update_playback_speed_filters(mpctx) < 0) {
+ mpctx->opts->playback_speed = 1.0;
+ mp_notify(mpctx, MP_EVENT_CHANGE_ALL, NULL);
+ }
struct af_stream *afs = mpctx->d_audio->afilter;
if (afs->initialized < 1 && af_init(afs) < 0) {