[MPlayer-cvslog] r29836 - trunk/mplayer.c

reimar subversion at mplayerhq.hu
Fri Nov 6 16:56:30 CET 2009


Author: reimar
Date: Fri Nov  6 16:56:30 2009
New Revision: 29836

Log:
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.

Modified:
   trunk/mplayer.c

Modified: trunk/mplayer.c
==============================================================================
--- trunk/mplayer.c	Fri Nov  6 16:45:55 2009	(r29835)
+++ trunk/mplayer.c	Fri Nov  6 16:56:30 2009	(r29836)
@@ -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;
 }
 
 


More information about the MPlayer-cvslog mailing list