[MPlayer-users] Crash with -ao jack when channel layout changes in a broadcast aac/latm stream

Ingo Brückl ib at wupperonline.de
Wed Dec 11 21:44:14 CET 2013

Reimar Döffinger wrote on Wed, 11 Dec 2013 20:41:25 +0100:

> I am not sure it will fix the reason for the crash (that seems partially
> unrelated), but below patch seems to avoid the issue by fully rebuilding
> the filter chain.
> Unfortunately it means that runtime-changes like volume etc. will
> get lost every time.
> Note that there might be an additional issue with FFmpeg not respecting
> that only 2 channels were requested - I don't know if the AAC decoder
> is supposed to respect that or not.
> +++ b/mplayer.c
> @@ -2218,6 +2218,9 @@ static int fill_audio_out_buffers(void)
>      }
>      if (format_change) {
>          uninit_player(INITIALIZED_AO);
> +        af_uninit(sh_audio->afilter);
> +        free(sh_audio->afilter);
> +        sh_audio->afilter = NULL;
>          reinit_audio_chain();
>      }
>      return 1;

This may cause trouble with the GUI which will continue using a freed
afilter. (It will be set for the GUI not until the build_afilter_chain()
call in reinit_audio_chain().)

I'd hate to see a 4th GUI_SET_AFILTER call in mplayer.c though.

On the other hand, I'd rather like to eliminate guiInfo members sh_video and
afilter anyway, and get them directly from mpcontext when needed.


More information about the MPlayer-users mailing list