From fefbdf991b0427c3b32d9333fedccdaf91a9a50e Mon Sep 17 00:00:00 2001 From: reimar Date: Fri, 6 Nov 2009 15:56:30 +0000 Subject: Disable audio when initializing the filter chain fails (can happen e.g. when the hwmpa decoder is used but the hardware does not support hardware MPEG audio). Otherwise this will lead to a crash later on when the decode code tries to access the audio filter chain. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29836 b3059339-0415-0410-9bf9-f77b7e298cf2 --- mplayer.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'mplayer.c') diff --git a/mplayer.c b/mplayer.c index 3ac29d322e..52b5fd3285 100644 --- a/mplayer.c +++ b/mplayer.c @@ -1642,10 +1642,7 @@ if(mpctx->sh_audio){ ao_data.format,0))){ // FAILED: mp_msg(MSGT_CPLAYER,MSGL_ERR,MSGTR_CannotInitAO); - uninit_player(INITIALIZED_ACODEC); // close codec - mpctx->sh_audio=mpctx->d_audio->sh=NULL; // -> nosound - mpctx->d_audio->id = -2; - return; + goto init_error; } else { // SUCCESS: initialized_flags|=INITIALIZED_AO; @@ -1663,15 +1660,19 @@ if(mpctx->sh_audio){ current_module="af_init"; if(!build_afilter_chain(mpctx->sh_audio, &ao_data)) { mp_msg(MSGT_CPLAYER,MSGL_ERR,MSGTR_NoMatchingFilter); -// mp_msg(MSGT_CPLAYER,MSGL_ERR,"Couldn't find matching filter / ao format! -> NOSOUND\n"); -// uninit_player(INITIALIZED_ACODEC|INITIALIZED_AO); // close codec & ao -// sh_audio=mpctx->d_audio->sh=NULL; // -> nosound + goto init_error; } #endif } mpctx->mixer.audio_out = mpctx->audio_out; mpctx->mixer.volstep = volstep; } +return; + +init_error: + uninit_player(INITIALIZED_ACODEC|INITIALIZED_AO); // close codec and possibly AO + mpctx->sh_audio=mpctx->d_audio->sh=NULL; // -> nosound + mpctx->d_audio->id = -2; } -- cgit v1.2.3