- const double f_speed = floor( ( (double)INPUT_RATE_DEFAULT / abs(i_rate) + 0.05 ) / 0.1 + i_dir ) * 0.1;
- if( f_speed <= (double)INPUT_RATE_DEFAULT / INPUT_RATE_MAX ) /* Needed to avoid infinity */
- i_rate = INPUT_RATE_MAX;
- else
- i_rate = INPUT_RATE_DEFAULT / f_speed + 0.5;
-
- i_rate = i_sign * __MIN( __MAX( i_rate, INPUT_RATE_MIN ), INPUT_RATE_MAX );
-
- var_SetInteger( p_input, "rate", i_rate );
-
- char psz_msg[7+1];
- snprintf( psz_msg, sizeof(psz_msg), _("%.2fx"), (double)INPUT_RATE_DEFAULT / i_rate );
- vout_OSDMessage( VLC_OBJECT(p_input), DEFAULT_CHAN, "%s", psz_msg );
+ var_SetFloat( p_input, "rate", f_newrate );
+ DisplayRate( p_vout, f_newrate );