diff options
-rw-r--r-- | libmpdemux/open.c | 6 | ||||
-rw-r--r-- | mplayer.c | 2 |
2 files changed, 5 insertions, 3 deletions
diff --git a/libmpdemux/open.c b/libmpdemux/open.c index f0a3e7fff2..927dbeb971 100644 --- a/libmpdemux/open.c +++ b/libmpdemux/open.c @@ -618,7 +618,8 @@ int dvd_chapter_from_cell(dvd_priv_t* dvd,int title,int cell) int dvd_aid_from_lang(stream_t *stream, unsigned char* lang){ dvd_priv_t *d=stream->priv; int code,i; - while(lang && strlen(lang)>=2){ +if(lang){ + while(strlen(lang)>=2){ code=lang[1]|(lang[0]<<8); for(i=0;i<d->nr_of_channels;i++){ if(d->audio_streams[i].language==code){ @@ -631,7 +632,8 @@ int code,i; lang+=2; while (lang[0]==',' || lang[0]==' ') ++lang; } mp_msg(MSGT_OPEN,MSGL_WARN,"No matching DVD audio language found!\n"); - return -1; +} +return d->nr_of_channels ? d->audio_streams[0].id : -1; } int dvd_sid_from_lang(stream_t *stream, unsigned char* lang){ @@ -1319,7 +1319,7 @@ if(stream_dump_type==5){ #ifdef USE_DVDREAD if(stream->type==STREAMTYPE_DVD){ current_module="dvd lang->id"; - if(audio_lang && audio_id==-1) audio_id=dvd_aid_from_lang(stream,audio_lang); + if(audio_id==-1) audio_id=dvd_aid_from_lang(stream,audio_lang); if(dvdsub_lang && dvdsub_id==-1) dvdsub_id=dvd_sid_from_lang(stream,dvdsub_lang); current_module=NULL; } |