- if ((reader = pcm_open_native_converter(reader)) != 0)
- if ((reader = pcm_open_sint16_converter(reader)) != 0)
- reader = extrapolater_open(reader);
+ reader = pcm_open_native_converter(reader);
+ if (reader && PCM_IS_FLOAT(pcm_get_format(reader)))
+ reader = limiter_open(reader);
+ if (reader && (reader = pcm_open_sint16_converter(reader)) != 0)
+ reader = extrapolater_open(reader);