mirror of
https://github.com/mpv-player/mpv
synced 2024-12-23 23:32:26 +00:00
Fixes FriBiDi support and extends it with configure options. Patch by Raindel Shachar <raindel@techunix.technion.ac.il>
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@10650 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
d1b85029f8
commit
f6ecfe741f
@ -197,6 +197,15 @@
|
||||
|
||||
#ifdef USE_SUB
|
||||
{"sub", &sub_name, CONF_TYPE_STRING_LIST, 0, 0, 0, NULL},
|
||||
#ifdef USE_FRIBIDI
|
||||
{"fribidi_charset", &fribidi_charset, CONF_TYPE_STRING, 0, 0, 0, NULL},
|
||||
{"flip_hebrew", &flip_hebrew, CONF_TYPE_FLAG, 0, 0, 1, NULL},
|
||||
{"noflip_hebrew", &flip_hebrew, CONF_TYPE_FLAG, 0, 1, 0, NULL},
|
||||
#else
|
||||
{"fribidi_charset", "MPlayer wasn't compiled with FriBiDi support\n", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
|
||||
{"flip_hebrew", "MPlayer wasn't compiled with FriBiDi support\n", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
|
||||
{"noflip_hebrew", "MPlayer wasn't compiled with FriBiDi support\n", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
|
||||
#endif
|
||||
#ifdef USE_ICONV
|
||||
{"subcp", &sub_cp, CONF_TYPE_STRING, 0, 0, 0, NULL},
|
||||
#endif
|
||||
|
@ -27,6 +27,8 @@ char *sub_cp=NULL;
|
||||
#endif
|
||||
#ifdef USE_FRIBIDI
|
||||
#include <fribidi/fribidi.h>
|
||||
char *fribidi_charset = NULL;
|
||||
int flip_hebrew = 1;
|
||||
#endif
|
||||
|
||||
extern char* dvdsub_lang;
|
||||
@ -1040,11 +1042,12 @@ subtitle* sub_fribidi (subtitle *sub, int sub_utf8)
|
||||
int l=sub->lines;
|
||||
int char_set_num;
|
||||
fribidi_boolean log2vis;
|
||||
if(flip_hebrew) { // Please fix the indentation someday
|
||||
fribidi_set_mirroring (FRIBIDI_TRUE);
|
||||
fribidi_set_reorder_nsm (FRIBIDI_FALSE);
|
||||
|
||||
if( sub_utf8 == 0 ) {
|
||||
char_set_num = fribidi_parse_charset ("ISO8859-8");//We might want to make this a config option
|
||||
char_set_num = fribidi_parse_charset (fribidi_charset?fribidi_charset:"ISO8859-8");
|
||||
}else {
|
||||
char_set_num = fribidi_parse_charset ("UTF-8");
|
||||
}
|
||||
@ -1065,7 +1068,6 @@ subtitle* sub_fribidi (subtitle *sub, int sub_utf8)
|
||||
len = fribidi_remove_bidi_marks (visual, len, NULL, NULL,
|
||||
NULL);
|
||||
if((op = (char*)malloc(sizeof(char)*(max(2*orig_len,2*len) + 1))) == NULL) {
|
||||
if((op = ALLOCATE(char,(max(2*orig_len,2*len) + 1))) == NULL) {
|
||||
mp_msg(MSGT_SUBREADER,MSGL_WARN,"SUB: error allocating mem.\n");
|
||||
l++;
|
||||
break;
|
||||
@ -1080,6 +1082,7 @@ subtitle* sub_fribidi (subtitle *sub, int sub_utf8)
|
||||
free (sub->text[--l]);
|
||||
return ERR;
|
||||
}
|
||||
}
|
||||
return sub;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user