[MPlayer-dev-eng] [PATCH] Fix a sndio crash when exiting in muted state
Alexander Strasser
eclipse7 at gmx.net
Tue Mar 28 22:25:55 EEST 2023
On 2023-03-26 15:58 +0200, Reimar Döffinger wrote:
>
> > On 25 Mar 2023, at 16:22, Reimar Döffinger <Reimar.Doeffinger at gmx.de> wrote:
> >
> >> On 24 Mar 2023, at 21:38, Alexander Strasser <eclipse7 at gmx.net> wrote:
> >>
> >> On 2023-03-22 22:58 +0100, Reimar Döffinger wrote:
> >>>> Index: libao2/ao_sndio.c
> >>>> ===================================================================
> >>>> --- libao2/ao_sndio.c (revision 38412)
> >>>> +++ libao2/ao_sndio.c (working copy)
> >>>> @@ -159,6 +159,7 @@
> >>>> pfds = NULL;
> >>>> sio_close(hdl);
> >>>> hdl = NULL;
> >>>> + havevol = 0;
> >>>> return 0;
> >>>> }
> >>>>
> >>>> @@ -172,6 +173,7 @@
> >>>> hdl = NULL;
> >>>> free(pfds);
> >>>> pfds = NULL;
> >>>> + havevol = 0;
> >>>> }
> >>>
> >>> Well, it's probably a good idea to do that, but a aoctl happening after uninit (if I understand right) is the far worse issue an probably needs to be fixed by itself.
> >>
> >>
> >> Could you test if the attached patch also fixes the issues you observed?
> >>
> >> Only lightly tested but it would help if you could confirm if it fixes
> >> the problem.
> >
> > I don't know, this seems the far more obvious and straight-forward fix? IMO this looks just like an oversight really.
> >
> > --- mplayer.c (revision 38410)
> > +++ mplayer.c (working copy)
> > @@ -672,6 +672,7 @@
> > if (mpctx->audio_out)
> > mpctx->audio_out->uninit(mpctx->eof ? 0 : 1);
> > mpctx->audio_out = NULL;
> > + mpctx->mixer.audio_out = NULL;
> > }
> > #ifdef CONFIG_GUI
>
> After some discussion, probably all our patches make sense, but a full solution likely needs a bit more.
> Essentially, I think the aos need to have a flag whether their mixer (volume etc) is a global, persistent one.
> If it is, we should not NULL the mixer audio out here, but instead require the ao SETVOLUME remains valid/allowed after uninit.
> To do it really properly, there would be also some additional logic to handle it fully correctly when different files are played with different -ao options.
I would like doing something like that after a release.
Would need some design and probably more or less changes in all aos
depending on the exact architecture chosen.
> Each of the patches on their own fixes that specific crash, and mine is probably safest there, but without Alexander's causes a regression (audio remains muted after MPlayer exits).
> So if no objections, I think it would be best for someone (Alex?) to apply them all in one go.
I intent to apply all of the patches after a quick test session in one go.
Will do it probably on Friday.
Thank you all,
Alexander
More information about the MPlayer-dev-eng
mailing list