[mplayer-dev-eng] audio/video selection broken

gabor gabor at realtime.sk
Tue Dec 10 14:34:58 CET 2002


On Tue, 2002-12-10 at 12:29, Rüdiger Kuhlmann wrote:
> >--[Rüdiger Kuhlmann]--<mplayer-list-UGa6JdjLujS2 at ruediger-kuhlmann.de>
> 
> > the selection of the audio stream via menu has been broken in current CVS.
> > Selecting a new audio ID via menu will cause mplayer to reinitialize even
> > the audio_id value.
> 
> Okay, then, here's a patch for at least a work-around - if you have a better
> idea, feel free to do it better:


btw... do those audio selection options in the menu WORK?

maybe a stupid question,but which keys are used to change them?
:)

gabor
> 
> Index: mplayer.c
> ===================================================================
> RCS file: /cvsroot/mplayer/main/mplayer.c,v
> retrieving revision 1.624
> diff -u -u -r1.624 mplayer.c
> --- mplayer.c	5 Dec 2002 00:18:56 -0000	1.624
> +++ mplayer.c	10 Dec 2002 12:50:48 -0000
> @@ -201,6 +201,8 @@
>  // streaming:
>  int audio_id=-1;
>  int video_id=-1;
> +int gui_audio_id = -1;
> +int gui_video_id = -1;
>  int dvdsub_id=-1;
>  int vobsub_id=-1;
>  static char* audio_lang=NULL;
> @@ -2892,6 +2894,9 @@
>    } else
>      break;
>  } 
> +
> +audio_id = gui_audio_id;
> +video_id = gui_video_id;
>  
>  #ifdef HAVE_NEW_GUI
>   if( use_gui && !playtree_iter ) 
> Index: mplayer.h
> ===================================================================
> RCS file: /cvsroot/mplayer/main/mplayer.h,v
> retrieving revision 1.23
> diff -u -u -r1.23 mplayer.h
> --- mplayer.h	28 Nov 2002 23:17:09 -0000	1.23
> +++ mplayer.h	10 Dec 2002 12:50:48 -0000
> @@ -48,8 +48,8 @@
>  
>  extern int auto_quality;
>  
> -extern int audio_id;
> -extern int video_id;
> +extern int audio_id, gui_audio_id;
> +extern int video_id, gui_video_id;
>  extern int dvdsub_id;
>  
>  extern void exit_player(char* how);
> Index: Gui/mplayer/mw.c
> ===================================================================
> RCS file: /cvsroot/mplayer/main/Gui/mplayer/mw.c,v
> retrieving revision 1.96
> diff -u -u -r1.96 mw.c
> --- Gui/mplayer/mw.c	5 Dec 2002 23:54:15 -0000	1.96
> +++ Gui/mplayer/mw.c	10 Dec 2002 12:50:48 -0000
> @@ -251,7 +252,7 @@
>  
>  void mplEventHandling( int msg,float param )
>  {
> - int j;
> + int j, iparam = (int) param;
>  
>   switch( msg )
>    {
> @@ -269,23 +270,41 @@
>          gtkShow( evPlayNetwork,NULL );
>  	break;
>  
>     case evSetAudio:
>          if ( !guiIntfStruct.demuxer ) break;
> -	audio_id=(int)param;
> +	if (audio_id == iparam) break;
> +	audio_id = gui_audio_id = iparam;
>  	if ( guiIntfStruct.StreamType == STREAMTYPE_DVD ) goto play;
>  	guiIntfStruct.FilenameChanged=1;
>  	break;
>  
>     case evSetVideo:
>          if ( !guiIntfStruct.demuxer ) break;
> -        video_id=(int)param;
> +        if (video_id == iparam) break;
> +        video_id = gui_video_id = iparam;
>          if ( guiIntfStruct.StreamType == STREAMTYPE_DVD ) goto play;
>          guiIntfStruct.FilenameChanged=1;
>          break;
>  
>  #ifdef HAVE_VCD
>     case evSetVCDTrack:
> -        guiIntfStruct.Track=(int)param;
> +        guiIntfStruct.Track = iparam;
>     case evPlayVCD:
>   	gtkSet( gtkClearStruct,0,(void *)guiALL );
>  	guiIntfStruct.StreamType=STREAMTYPE_VCD;
> @@ -362,19 +381,19 @@
>          break;
>  #ifdef USE_DVDREAD
>     case evSetDVDSubtitle:
> -        dvdsub_id=(int)param;
> +        dvdsub_id = iparam;
>          goto play_dvd_2;
>          break;
>     case evSetDVDAudio:
> -        audio_id=(int)param;
> +        audio_id = iparam;
>          goto play_dvd_2;
>          break;
>     case evSetDVDChapter:
> -        guiIntfStruct.DVD.current_chapter=(int)param;
> +        guiIntfStruct.DVD.current_chapter = iparam;
>          goto play_dvd_2;
>          break;
>     case evSetDVDTitle:
> -        guiIntfStruct.DVD.current_title=(int)param;
> +        guiIntfStruct.DVD.current_title = iparam;
>  	guiIntfStruct.DVD.current_chapter=1;
>  	guiIntfStruct.DVD.current_angle=1;
>          goto play_dvd_2;
> @@ -448,7 +467,7 @@
>  
> 
>     case evIconify:
> -        switch ( (int)param )
> +        switch ( iparam )
>           {
>            case 0: wsIconify( appMPlayer.mainWindow ); break;
>            case 1: wsIconify( appMPlayer.subWindow ); break;
> @@ -489,7 +508,7 @@
>          break;
>  
>     case evSetAspect:
> -	switch ( (int)param )
> +	switch ( iparam )
>  	 {
>  	  case 2:  movie_aspect=16.0f / 9.0f; break;
>  	  case 3:  movie_aspect=4.0f / 3.0f;  break;
> 
> Of course, a much better way would be being able to change the audio / video
> stream on the fly without reloading...
-- 
gpg key at www.keyserver.net




More information about the MPlayer-dev-eng mailing list