summaryrefslogtreecommitdiffstats
path: root/player/audio.c
diff options
context:
space:
mode:
Diffstat (limited to 'player/audio.c')
-rw-r--r--player/audio.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/player/audio.c b/player/audio.c
index 85dda4722c..f532f1167b 100644
--- a/player/audio.c
+++ b/player/audio.c
@@ -88,6 +88,19 @@ int reinit_audio_filters(struct MPContext *mpctx)
return 1;
}
+void set_playback_speed(struct MPContext *mpctx, double new_speed)
+{
+ struct MPOpts *opts = mpctx->opts;
+
+ // Adjust time until next frame flip for nosound mode
+ mpctx->time_frame *= opts->playback_speed / new_speed;
+
+ opts->playback_speed = new_speed;
+
+ if (mpctx->d_audio)
+ recreate_audio_filters(mpctx);
+}
+
void reset_audio_state(struct MPContext *mpctx)
{
if (mpctx->d_audio)