Gregory Maxwell
2011-Jan-24 22:13 UTC
[CELT-dev] Current git CELT breaks audio above +3dBFS.
[I'm primarily intending this message for the developers of netjack, but it may be of interest to other CELT users] Greetings. Jean-marc was concerned that CELT application developers may incorrectly send in non-scaled integers (like ?32767) into the float interface of CELT and thus unintentionally create software which was incompatible with everyone else (and particularly, very incompatible with fixed point decoders). This isn't entirely unlikely, as speex has a float interface scaled this way, though we've never actually seen someone do it. As a result, commit http://git.xiph.org/?p=celt.git;a=commit;h=6ec2ca56cf92418734e6b4029de2202eac73c2a9 adds a clamp so that instead of being able to extend to +138dBFS (before quality started becoming degraded) we are artificially limiting the input to 3dBFS. ?As a consolation, we've recently fixed some quality problems with very quiet signals (down to -144dB), ?so applications which need extended positive dynamic range can achieve it by adding before encoding and removing it after decoding without much quality compromise. The ability of CELT interconnected Jack to exceed 0dBFS is a functionality that I've personally depended on, because it allows me to stick a limiter before my final output and not worry about intermediate gain levels. Since this change in behavior (unlike our API changes) would be easily missed developers while causing intermittent terrible quality for users, I thought it would be good to send this word of caution. Cheers,