[pulseaudio-discuss] card: Only set active_profile with available profile

Tanu Kaskinen tanu.kaskinen at linux.intel.com
Sat Nov 16 00:51:37 PST 2013


On Fri, 2013-11-15 at 09:31 +0100, Colin Guthrie wrote:
> 'Twas brillig, and Tanu Kaskinen at 05/11/13 20:34 did gyre and gimble:
> >  src/pulsecore/card.c |    7 ++++++-
> >  1 file changed, 6 insertions(+), 1 deletion(-)
> > 
> > New commits:
> > commit f434087e42bca15fae938f6cc01d2875c4c7728b
> > Author: Luiz Augusto von Dentz <luiz.von.dentz at intel.com>
> > Date:   Sun Nov 3 15:05:34 2013 +0200
> > 
> >     card: Only set active_profile with available profile
> >     
> >     When a card is being created and no profile has been assigned
> >     pa_card_new will attempt to select one from the list but it does that
> >     without checking the available flag which can lead to select profiles
> >     not available.
> > 
> > diff --git a/src/pulsecore/card.c b/src/pulsecore/card.c
> > index e6e0836..4ae16c2 100644
> > --- a/src/pulsecore/card.c
> > +++ b/src/pulsecore/card.c
> > @@ -195,9 +195,14 @@ pa_card *pa_card_new(pa_core *core, pa_card_new_data *data) {
> >              c->save_profile = data->save_profile;
> >  
> >      if (!c->active_profile) {
> > -        PA_HASHMAP_FOREACH(profile, c->profiles, state)
> > +        PA_HASHMAP_FOREACH(profile, c->profiles, state) {
> > +            if (profile->available == PA_AVAILABLE_NO)
> > +                continue;
> > +
> >              if (!c->active_profile || profile->priority > c->active_profile->priority)
> >                  c->active_profile = profile;
> > +        }
> > +        pa_assert(c->active_profile);
> 
> Doesn't this leave the possibility of a crash if no active profiles exist?
> 
> Wouldn't it make more sense to fall back to setting it to *something*
> even if it is unavailable?

There's always the "off" profile that will be available, both in alsa
and bluetooth.

It seems that both you and Luiz posted patches that change the same
code, and both remove the assertion. Have you talked with Luiz? Could
you two agree which version you prefer? I don't have an opinion at this
point. I haven't concentrated on the patches enough to even know what
problem you're solving - is it just that the assertion makes you
nervous, or is there some other benefit.

-- 
Tanu



More information about the pulseaudio-discuss mailing list