[Xineliboutput-cvslog] vdr-xineliboutput xine_input_vdr.c, 1.246, 1.247
Brought to you by:
phintuka
From: Petri H. <phi...@us...> - 2009-03-30 12:20:52
|
Update of /cvsroot/xineliboutput/vdr-xineliboutput In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv17646 Modified Files: xine_input_vdr.c Log Message: Fixed automatic SPU language selection for non-DVD media types Index: xine_input_vdr.c =================================================================== RCS file: /cvsroot/xineliboutput/vdr-xineliboutput/xine_input_vdr.c,v retrieving revision 1.246 retrieving revision 1.247 diff -u -d -r1.246 -r1.247 --- xine_input_vdr.c 17 Mar 2009 20:03:30 -0000 1.246 +++ xine_input_vdr.c 30 Mar 2009 12:20:38 -0000 1.247 @@ -2863,6 +2863,12 @@ int max_ch = xine_get_stream_info(stream, XINE_STREAM_INFO_MAX_SPU_CHANNEL); int ch = old_ch; int ch_auto = strstr(cmd+10, "auto") ? 1 : 0; + int is_dvd = 0; + + if (this->slave_stream && this->slave_stream->input_plugin) { + const char *mrl = this->slave_stream->input_plugin->get_mrl(this->slave_stream->input_plugin); + is_dvd = !strncmp(mrl, "dvd:/", 5); + } if(strstr(cmd+10, "NEXT")) ch = ch < max_ch ? ch+1 : -2; @@ -2884,7 +2890,7 @@ old_ch = stream->spu_channel_auto; if (ch != old_ch) { - if (ch_auto && stream->spu_channel_user == SPU_CHANNEL_AUTO) { + if (is_dvd && ch_auto && stream->spu_channel_user == SPU_CHANNEL_AUTO) { LOGDBG("Automatic SPU channel %d->%d ignored", old_ch, ch); } else { LOGDBG("Forced SPU channel %d->%d", old_ch, ch); |