summaryrefslogtreecommitdiffstats
path: root/mplayer.c
diff options
context:
space:
mode:
authoruau <uau@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-11-01 06:52:38 +0000
committeruau <uau@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-11-01 06:52:38 +0000
commitd33703496cb65e9e1c23c4076c674c8d8623f738 (patch)
tree7eb2abcb437dbf192df4a275b370017647f70163 /mplayer.c
parentaa657df525afced0ebaf6b921e009bd6a01d7330 (diff)
downloadmpv-d33703496cb65e9e1c23c4076c674c8d8623f738.tar.bz2
mpv-d33703496cb65e9e1c23c4076c674c8d8623f738.tar.xz
Add audio filter scaletempo
Patch by Robert Juliano, juliano.1 osu edu git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@24924 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'mplayer.c')
-rw-r--r--mplayer.c22
1 files changed, 14 insertions, 8 deletions
diff --git a/mplayer.c b/mplayer.c
index ff98a71b20..a50e7f7694 100644
--- a/mplayer.c
+++ b/mplayer.c
@@ -1203,14 +1203,20 @@ int build_afilter_chain(sh_audio_t *sh_audio, ao_data_t *ao_data)
mpctx->mixer.afilter = NULL;
return 0;
}
- new_srate = sh_audio->samplerate * playback_speed;
- if (new_srate != ao_data->samplerate) {
- // limits are taken from libaf/af_resample.c
- if (new_srate < 8000)
- new_srate = 8000;
- if (new_srate > 192000)
- new_srate = 192000;
- playback_speed = (float)new_srate / (float)sh_audio->samplerate;
+ if(af_control_any_rev(sh_audio->afilter,
+ AF_CONTROL_PLAYBACK_SPEED | AF_CONTROL_SET,
+ &playback_speed)) {
+ new_srate = sh_audio->samplerate;
+ } else {
+ new_srate = sh_audio->samplerate * playback_speed;
+ if (new_srate != ao_data->samplerate) {
+ // limits are taken from libaf/af_resample.c
+ if (new_srate < 8000)
+ new_srate = 8000;
+ if (new_srate > 192000)
+ new_srate = 192000;
+ playback_speed = (float)new_srate / (float)sh_audio->samplerate;
+ }
}
result = init_audio_filters(sh_audio, new_srate,
&ao_data->samplerate, &ao_data->channels, &ao_data->format);