Here is the patch to make vobsub subtitle use -slang option, I have not made a

new option for vobsub. Now mplayer will use the setting of slang first, and
then langidx from .idx file, if all failed, no sub.
patch by hephooey@fastmail.fm


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@8536 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
arpi 2002-12-23 01:54:58 +00:00
parent 725ff339e7
commit 8457972ae4
3 changed files with 21 additions and 1 deletions

View File

@ -1039,6 +1039,7 @@ if(!use_stdin && !slave_mode){
if(vo_vobsub){
sub_auto=0; // don't do autosub for textsubs if vobsub found
inited_flags|=INITED_VOBSUB;
vobsub_set_from_lang(vo_vobsub, dvdsub_lang);
}
//============ Open & Sync STREAM --- fork cache2 ====================

View File

@ -1150,6 +1150,25 @@ vobsub_get_id(void *vobhandle, unsigned int index)
return (index < vob->spu_streams_size) ? vob->spu_streams[index].id : NULL;
}
int
vobsub_set_from_lang(void *vobhandle, unsigned char * lang)
{
int i;
vobsub_t *vob= (vobsub_t *) vobhandle;
while(lang && strlen(lang) >= 2){
for(i=0; i < vob->spu_streams_size; i++)
if (vob->spu_streams[i].id)
if ((strncmp(vob->spu_streams[i].id, lang, 2)==0)){
vobsub_id=i;
mp_msg(MSGT_VOBSUB, MSGL_INFO, "Selected VOBSUB language: %d language: %s\n", i, vob->spu_streams[i].id);
return;
}
lang+=2;while (lang[0]==',' || lang[0]==' ') ++lang;
}
mp_msg(MSGT_VOBSUB, MSGL_WARN, "No matching VOBSUB languge found!\n");
return -1;
}
int
vobsub_get_packet(void *vobhandle, float pts,void** data, int* timestamp) {
vobsub_t *vob = (vobsub_t *)vobhandle;

View File

@ -13,6 +13,6 @@ extern char *vobsub_get_id(void * /* vobhandle */, unsigned int /* index */);
extern void *vobsub_out_open(const char *basename, const unsigned int *palette, unsigned int orig_width, unsigned int orig_height, const char *id, unsigned int index);
extern void vobsub_out_output(void *me, const unsigned char *packet, int len, double pts);
extern void vobsub_out_close(void *me);
extern int vobsub_set_from_lang(void *vobhandle, unsigned char * lang);
#endif /* MPLAYER_VOBSUB_H */