24.03.2015 14:29, David Henningsson wrote: > Changes since v2: > - Hui has written a test case to test the new lfe filter's rewind functionality > - Several bugs found and fixed in the lfe filter rewinding; the trickiest being > the fact that we modify our buffer in-place while still needing to retain the > original in case we need to rewind. As a result, we now do an extra memcpy (argh). > - A few minor changes based on Alexander's comments. I have tested the series. It works as intended and does not produce valgrind warnings. I think, though, that enabling the LFE filter by default should be the last patch in the series. I still have the concern that the global daemon.conf flag for enabling the LFE remixer is too coarse. Also, on IRC, we agreed that in the laptop use case the correct crossover frequency may be significantly higher than 120 Hz, and I promised to send the scripts for measurements. But that agreement also means that we need to rethink the case when the LFE is already present in the set of input channels. Currently, PulseAudio just passes the all channels through. Low frequencies from main channels should, instead, end up in the subwoofer, because the original separation frequency (intended for hi-fi speakers) is wrong for the laptop. Some receivers and amplifiers have a user-adjustable parameter whether to pass LFE through (as PulseAudio does) or to recreate it (as one would need in the laptop scenario). Anyway, this can be improved later, after merging the series. And the big comment in resampler.c still says: /* OK, we shall do the full monty: upmixing and downmixing. Our * algorithm is relatively simple, does not do spacialization, delay * elements or apply lowpass filters for LFE. Patches are always * welcome, though. Oh, and it doesn't do any matrix decoding. (Which * probably wouldn't make any sense anyway.) ...which is now too pessimistic. -- Alexander E. Patrakov