diff options
author | reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2009-11-06 15:56:30 +0000 |
---|---|---|
committer | reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2009-11-06 15:56:30 +0000 |
commit | fefbdf991b0427c3b32d9333fedccdaf91a9a50e (patch) | |
tree | db497b5d957151ae79e76e6a5bebc53368bc86ae /mplayer.c | |
parent | c6b1e6880b39160b1a37ab0b4fc0c3ca29ff7367 (diff) | |
download | mpv-fefbdf991b0427c3b32d9333fedccdaf91a9a50e.tar.bz2 mpv-fefbdf991b0427c3b32d9333fedccdaf91a9a50e.tar.xz |
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
Diffstat (limited to 'mplayer.c')
-rw-r--r-- | mplayer.c | 15 |
1 files changed, 8 insertions, 7 deletions
@@ -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; } |