mirror of https://github.com/mpv-player/mpv
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:
parent
725ff339e7
commit
8457972ae4
|
@ -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 ====================
|
||||
|
|
19
vobsub.c
19
vobsub.c
|
@ -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;
|
||||
|
|
2
vobsub.h
2
vobsub.h
|
@ -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 */
|
||||
|
||||
|
|
Loading…
Reference in New Issue