[pulseaudio-discuss] Rewind Handling in module-lfe-lp

Justin Chudgar justin at justinzane.com
Tue Mar 26 19:34:24 PDT 2013


https://github.com/justinzane/pulseaudio/blob/master/src/modules/module-lfe-lp.c

First, thanks to both of you for helping me get this far. I've got a mostly 
correct (I think) filter setup based on Alexander's feedback. Now I'm trying to 
get rewind buffering done. I've read the wiki page that Tanu sent and I've been 
talking to ohsix on IRC.

All of which has left me more educated but just as clueless about what to 
actually implement.... :(

My understanding is that since I've got a causal filter, I need to do one of 
the two things when a rewind request appears:
1 - buffer the biquad samples so that I can restart filtering the rewound input 
memblock_q immediately
- or -
2 - buffer the input samples for at least sample_rate/20 and when a rewind come 
in, set the biquad samples to 0.0 and filter the buffered input.

Is this even remotely correct?

Also, is it possible? likely? for a rewind to occur during the processing of a 
sink_input_pop_cb? Since this is where the filtering occurs, how does one 
manage locking of the shared userdata?

The more focused on my little bit of code, the better, and thanks again.


More information about the pulseaudio-discuss mailing list