summaryrefslogtreecommitdiffstats
path: root/mplayer.c
diff options
context:
space:
mode:
Diffstat (limited to 'mplayer.c')
-rw-r--r--mplayer.c23
1 files changed, 16 insertions, 7 deletions
diff --git a/mplayer.c b/mplayer.c
index f0056de7df..ca13bbd92c 100644
--- a/mplayer.c
+++ b/mplayer.c
@@ -764,6 +764,22 @@ play_dvd:
if(filename) mp_msg(MSGT_CPLAYER,MSGL_INFO,MSGTR_Playing, filename);
+ current_module="vobsub";
+ if (vobsub_name){
+ vo_vobsub=vobsub_open(vobsub_name);
+ if(vo_vobsub==NULL)
+ mp_msg(MSGT_CPLAYER,MSGL_ERR,MSGTR_CantLoadSub,vobsub_name);
+ }else if(sub_auto && filename && (strlen(filename)>=5)){
+ /* try to autodetect vobsub from movie filename ::atmos */
+ char *buf = malloc((strlen(filename)-3) * sizeof(char));
+ memset(buf,0,strlen(filename)-3); // make sure string is terminated
+ strncpy(buf, filename, strlen(filename)-4);
+ vo_vobsub=vobsub_open(buf);
+ free(buf);
+ }
+ if(vo_vobsub)
+ sub_auto=0; // don't do autosub for textsubs if vobsub found
+
#ifdef USE_SUB_OLD
// check .sub
if(sub_name){
@@ -789,13 +805,6 @@ play_dvd:
if(subtitles && stream_dump_type==4) dump_mpsub(subtitles, fps);
#endif
- current_module="vobsub";
- if (vobsub_name){
- vo_vobsub=vobsub_open(vobsub_name);
- if(vo_vobsub==NULL)
- mp_msg(MSGT_CPLAYER,MSGL_ERR,MSGTR_CantLoadSub,vobsub_name);
- }
-
stream=NULL;
demuxer=NULL;
d_audio=NULL;