[pulseaudio-discuss] [PATCH v6 16/25] loopback: Reset sink input rate when source or sink changes

Tanu Kaskinen tanuk at iki.fi
Tue Aug 16 22:35:58 UTC 2016


On Tue, 2016-08-16 at 20:51 +0200, Georg Chini wrote:
> On 16.08.2016 19:07, Tanu Kaskinen wrote:
> > 
> > On Sun, 2016-06-05 at 21:05 +0200, Georg Chini wrote:
> > > ---
> > >   src/modules/module-loopback.c | 18 ++++++++++++++++--
> > >   1 file changed, 16 insertions(+), 2 deletions(-)
> > > 
> > > diff --git a/src/modules/module-loopback.c b/src/modules/module-
> > > loopback.c
> > > index c54b531..c773a98 100644
> > > --- a/src/modules/module-loopback.c
> > > +++ b/src/modules/module-loopback.c
> > > @@ -539,7 +539,12 @@ static bool
> > > source_output_may_move_to_cb(pa_source_output *o, pa_source *dest) {
> > >       if (!u->sink_input || !u->sink_input->sink)
> > >           return true;
> > >   
> > > -    return dest != u->sink_input->sink->monitor_source;
> > > +    /* We may still be adjusting, so reset rate to default before
> > > moving the source */
> > > +    if (dest != u->sink_input->sink->monitor_source) {
> > > +        pa_sink_input_set_rate(u->sink_input, u->source_output-
> > > > 
> > > > sample_spec.rate);
> > > +        return true;
> > > +    }
> > > +    return false;
> > This is not the right place to reset the rate. Even if we return true
> > here, it doesn't mean that the stream will actually be moved, so we may
> > end up resetting the rate needlessly.
> 
> It is not a big problem, if the rate is reset unnecessarily, it will quickly
> go back to the equilibrium value. It might however be a problem,
> if we are switching source or sink rapidly and are still getting rid of
> the initial latency error from the previous switch. Then the rate has
> not yet reached the equilibrium and may be far from the nominal
> rate. (this is what I mean with "still adjusting").
> So it is important to switch the rate back to nominal __before__
> switching to a new sink or source.

Is there some problem with using the moving callback?

-- 
Tanu


More information about the pulseaudio-discuss mailing list