#!/bin/sh

# NOTE: This is obsolete!  Mplayer since 1.0_rc2 has a scaletempo audio filter.

# Usage is: fastplay <speed factor> <mplayer arguments>
# eg:       fastplay 1.6 FunnyMovie.avi

fifo1="`mktemp -tu fastplay.XXXXXX`"
fifo2="`mktemp -tu fastplay.XXXXXX`"

syncmagic=90

speed=$1
shift

temposhift=`echo "9k $speed      1 - 100 * p" | dc`
ratefix=`   echo "9k $speed 1 r/ 1 - 100 * p" | dc`

cleanup () { rm "$fifo1" "$fifo2"; }

mkfifo "$fifo1" "$fifo2"
trap cleanup 2 15

sox -t wav "$fifo2" -t ossdsp -w -s /dev/dsp &
soundstretch "$fifo1" "$fifo2" -rate="$ratefix" -tempo="$temposhift" &
mplayer -autosync "$syncmagic" -speed "$speed" -ao "pcm:waveheader:file=$fifo1" "$@"

wait

cleanup

