diff options
author | uau <uau@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2007-11-01 06:52:38 +0000 |
---|---|---|
committer | uau <uau@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2007-11-01 06:52:38 +0000 |
commit | d33703496cb65e9e1c23c4076c674c8d8623f738 (patch) | |
tree | 7eb2abcb437dbf192df4a275b370017647f70163 /mplayer.c | |
parent | aa657df525afced0ebaf6b921e009bd6a01d7330 (diff) | |
download | mpv-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.c | 22 |
1 files changed, 14 insertions, 8 deletions
@@ -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); |