diff options
-rw-r--r-- | audio/filter/af_scaletempo.c | 2 | ||||
-rw-r--r-- | player/audio.c | 6 |
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) { |