changeset 4770:59f8fd64538b

autodetect vobsub filename, disable autosub if vobsub found.
author atmos4
date Wed, 20 Feb 2002 22:41:06 +0000
parents 75a701b39d61
children ef9079037084
files mplayer.c
diffstat 1 files changed, 16 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/mplayer.c	Wed Feb 20 17:23:00 2002 +0000
+++ b/mplayer.c	Wed Feb 20 22:41:06 2002 +0000
@@ -764,6 +764,22 @@
 
     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 @@
   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;