亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? subreader.c.svn-base

?? sigmadesign smp8623 gui source code ,bingo
?? SVN-BASE
?? 第 1 頁 / 共 4 頁
字號:
		return (subtitle *) ERR;	    jLength = RMasciiLength(directive);	    for (cont = 0; cont < jLength; ++cont) {		if (isalpha(*(directive + cont)))		    *(directive + cont) = toupper(*(directive + cont));	    }	    if ((strstr(directive, "RDB") != NULL)		|| (strstr(directive, "RDC") != NULL)		|| (strstr(directive, "RLB") != NULL)		|| (strstr(directive, "RLG") != NULL)) {		continue;	    }	    if (strstr(directive, "JL") != NULL) {		current->alignment = SUB_ALIGNMENT_BOTTOMLEFT;	    } else if (strstr(directive, "JR") != NULL) {		current->alignment = SUB_ALIGNMENT_BOTTOMRIGHT;	    } else {		current->alignment = SUB_ALIGNMENT_BOTTOMCENTER;	    }	    strcpy(line2, line1);	    p = line2;	}	for (q = line1; (!eol(*p)) && (current->lines < SUB_MAX_TEXT); ++p) {	    switch (*p) {	    case '{':		comment++;		break;	    case '}':		if (comment) {		    --comment;		    //the next line to get rid of a blank after the comment		    if ((*(p + 1)) == ' ')			p++;		}		break;	    case '~':		if (!comment) {		    *q = ' ';		    ++q;		}		break;	    case ' ':	    case '\t':		if ((*(p + 1) == ' ') || (*(p + 1) == '\t'))		    break;		if (!comment) {		    *q = ' ';		    ++q;		}		break;	    case '\\':		if (*(p + 1) == 'n') {		    *q = '\0';		    q = line1;		    current->text[current->lines++] = strdup(line1);		    ++p;		    break;		}		if ((toupper(*(p + 1)) == 'C')		    || (toupper(*(p + 1)) == 'F')) {		    ++p,++p;		    break;		}		if ((*(p + 1) == 'B') || (*(p + 1) == 'b') || (*(p + 1) == 'D') ||	//actually this means "insert current date here"		    (*(p + 1) == 'I') || (*(p + 1) == 'i') || (*(p + 1) == 'N') || (*(p + 1) == 'T') ||	//actually this means "insert current time here"		    (*(p + 1) == 'U') || (*(p + 1) == 'u')) {		    ++p;		    break;		}		if ((*(p + 1) == '\\') ||		    (*(p + 1) == '~') || (*(p + 1) == '{')) {		    ++p;		} else if (eol(*(p + 1))) {		    if (!stream_read_line(st, directive, LINE_LEN))			return NULL;		    trail_space(directive);		    strncat(line2, directive,			    (LINE_LEN > 511) ? LINE_LEN : 511);		    break;		}	    default:		if (!comment) {		    *q = *p;		    ++q;		}	    }			//-- switch	}			//-- for	*q = '\0';	current->text[current->lines] = strdup(line1);    }				//-- while    current->lines++;    return current;}static int sub_autodetect (stream_t* st, RMint32 *uses_time) {    RMascii line[LINE_LEN+1];    int i,j=0;    RMascii p;    while (j < 100) {	j++;	if (!stream_read_line (st, line, LINE_LEN))	    return SUB_INVALID;	if (sscanf (line, "{%d}{%d}", &i, &i)==2)		{*uses_time=0;return SUB_MICRODVD;}	if (sscanf (line, "{%d}{}", &i)==1)		{*uses_time=0;return SUB_MICRODVD;}	if (sscanf (line, "[%d][%d]", &i, &i)==2)		{*uses_time=1;return SUB_MPL2;}	if (sscanf (line, "%d:%d:%d.%d,%d:%d:%d.%d",     &i, &i, &i, &i, &i, &i, &i, &i)==8)		{*uses_time=1;return SUB_SUBRIP;}	if (sscanf (line, "%d:%d:%d%[,.:]%d --> %d:%d:%d%[,.:]%d", &i, &i, &i, (RMascii *)&i, &i, &i, &i, &i, (RMascii *)&i, &i)==10)		{*uses_time=1;return SUB_SUBVIEWER;}	if (sscanf (line, "{T %d:%d:%d:%d",&i, &i, &i, &i)==4)		{*uses_time=1;return SUB_SUBVIEWER2;}	if (strstr (line, "<SAMI>"))		{*uses_time=1; return SUB_SAMI;}	if (sscanf(line, "%d:%d:%d.%d %d:%d:%d.%d", &i, &i, &i, &i, &i, &i, &i, &i) == 8)		{*uses_time = 1; return SUB_JACOSUB;}	if (sscanf(line, "@%d @%d", &i, &i) == 2)		{*uses_time = 1; return SUB_JACOSUB;}	if (sscanf (line, "%d:%d:%d:",     &i, &i, &i )==3)		{*uses_time=1;return SUB_VPLAYER;}	if (sscanf (line, "%d:%d:%d ",     &i, &i, &i )==3)		{*uses_time=1;return SUB_VPLAYER;}	//TODO: just checking if first line of sub starts with "<" is WAY	// too weak test for RT	// Please someone who knows the format of RT... FIX IT!!!	// It may conflict with other sub formats in the future (actually it doesn't)	if ( *line == '<' )		{*uses_time=1;return SUB_RT;}	if (!RMMemcmp(line, "Dialogue: Marked", 16))		{*uses_time=1; return SUB_SSA;}	if (!RMMemcmp(line, "Dialogue: ", 10))		{*uses_time=1; return SUB_SSA;}	if (sscanf (line, "%d,%d,\"%c", &i, &i, (RMascii *) &i) == 3)		{*uses_time=1;return SUB_PJS;}	if (sscanf (line, "FORMAT=%d", &i) == 1)		{*uses_time=0; return SUB_MPSUB;}	if (sscanf (line, "FORMAT=TIM%c", &p)==1 && p=='E')		{*uses_time=1; return SUB_MPSUB;}	if (strstr (line, "-->>"))		{*uses_time=0; return SUB_AQTITLE;}	if (sscanf (line, "[%d:%d:%d]", &i, &i, &i)==3)		{*uses_time=1;return SUB_SUBRIP09;}    }    return SUB_INVALID;  // too many bad lines}#ifdef DUMPSUBSint sub_utf8=0;#elseextern int sub_utf8;int sub_utf8_prev=0;#endifRMreal sub_delay= 0.0;RMreal sub_fps = 25;#ifdef USE_ICONVstatic iconv_t icdsc = (iconv_t)(-1);void	subcp_open (stream_t *st){	RMascii *tocp = "UTF-8";	if (sub_cp){		RMascii *cp_tmp = sub_cp;#ifdef HAVE_ENCA		RMascii enca_lang[3], enca_fallback[100];		int free_cp_tmp = 0;		if (sscanf(sub_cp, "enca:%2s:%99s", enca_lang, enca_fallback) == 2		     || sscanf(sub_cp, "ENCA:%2s:%99s", enca_lang, enca_fallback) == 2) {		  if (st && st->flags & STREAM_SEEK ) {		    cp_tmp = guess_cp(st, enca_lang, enca_fallback);		    free_cp_tmp = 1;		  } else {		    cp_tmp = enca_fallback;		  }		}#endif		if ((icdsc = iconv_open (tocp, cp_tmp)) != (iconv_t)(-1)){			sub_utf8 = 2;		}#ifdef HAVE_ENCA		if (free_cp_tmp && cp_tmp) RFREE(cp_tmp);#endif	}}void	subcp_close (void){	if (icdsc != (iconv_t)(-1)){		(void) iconv_close (icdsc);		icdsc = (iconv_t)(-1);	}}subtitle* subcp_recode (subtitle *sub){	int l=sub->lines;	size_t ileft, oleft;	RMascii *op, *ip, *ot;	if(icdsc == (iconv_t)(-1)) return sub;	while (l){		ip = sub->text[--l];		ileft = RMasciiLength(ip);		oleft = 4 * ileft;		if (!(ot = MALLOC(oleft + 1))){		   	continue;		}		op = ot;		if (iconv(icdsc, &ip, &ileft,			  &op, &oleft) == (size_t)(-1)) {			RFREE(ot);			continue;		}		*op='\0' ;		RFREE (sub->text[l]);		sub->text[l] = ot;	}	return sub;}#endif#ifdef USE_FRIBIDI#ifndef max#define max(a,b)  (((a)>(b))?(a):(b))#endifsubtitle* sub_fribidi (subtitle *sub, int sub_utf8){  FriBidiChar logical[LINE_LEN+1], visual[LINE_LEN+1]; // Hopefully these two won't smash the stack  RMascii        *ip      = NULL, *op     = NULL;  FriBidiCharType base;  size_t len,orig_len;  int l=sub->lines;  int char_set_num;  fribidi_boolean log2vis;  if(flip_hebrew) { // Please fix the indentation someday  fribidi_set_mirroring(1);  fribidi_set_reorder_nsm(0);  if( sub_utf8 == 0 ) {    char_set_num = fribidi_parse_charset (fribidi_charset?fribidi_charset:"ISO8859-8");  }else {    char_set_num = fribidi_parse_charset ("UTF-8");  }  while (l) {    ip = sub->text[--l];    orig_len = len = RMasciiLength( ip ); // We assume that we don't use full unicode, only UTF-8 or ISO8859-x    if(len > LINE_LEN) {      l++;      break;    }    len = fribidi_charset_to_unicode (char_set_num, ip, len, logical);    base = fribidi_flip_commas?FRIBIDI_TYPE_ON:FRIBIDI_TYPE_L;    log2vis = fribidi_log2vis (logical, len, &base,			       /* output */			       visual, NULL, NULL, NULL);    if(log2vis) {      len = fribidi_remove_bidi_marks (visual, len, NULL, NULL,				       NULL);      if((op = MALLOC((max(2*orig_len,2*len) + 1))) == NULL) {	l++;	break;      }      fribidi_unicode_to_charset ( char_set_num, visual, len,op);      RFREE (ip);      sub->text[l] = op;    }  }  if (l){    for (l = sub->lines; l;)      RFREE (sub->text[--l]);    return ERR;  }  }  return sub;}#endifstatic void adjust_subs_time(subtitle* sub, RMreal subtime, RMreal fps, int block,                             int sub_num, int sub_uses_time) {//	int n,m;//	subtitle* nextsub;//	int i = sub_num;//	RMuint32 subfms = (sub_uses_time ? 100 : fps) * subtime;//	RMuint32 overlap = (sub_uses_time ? 100 : fps) / 5; // 0.2s////	n=m=0;//	if (i)	for (;;){//		if (sub->end <= sub->start){//			sub->end = sub->start + subfms;//			m++;//			n++;//		}//		if (!--i) break;//		nextsub = sub + 1;//	    if(block){//		if ((sub->end > nextsub->start) && (sub->end <= nextsub->start + overlap)) {//		    // these subtitles overlap for less than 0.2 seconds//		    // and would result in very short overlapping subtitle//		    // so let's fix the problem here, before overlapping code//		    // get its hands on them//		    unsigned delta = sub->end - nextsub->start, half = delta / 2;//		    sub->end -= half + 1;//		    nextsub->start += delta - half;//		}//		if (sub->end >= nextsub->start){//			sub->end = nextsub->start - 1;//			if (sub->end - sub->start > subfms)//				sub->end = sub->start + subfms;//			if (!m)//				n++;//		}//	    }////		/* Theory://		 * Movies are often converted from FILM (24 fps)//		 * to PAL (25) by simply speeding it up, so we//		 * to multiply the original timestmaps by//		 * (Movie's FPS / Subtitle's (guessed) FPS)//		 * so eg. for 23.98 fps movie and PAL time based//		 * subtitles we say -subfps 25 and we're fine!//		 */////		/* timed sub fps correction ::atmos */////		if(sub_uses_time && sub_fps) {////			sub->start *= sub_fps/fps;////			sub->end   *= sub_fps/fps;////		}////		sub = nextsub;//		m = 0;//	}}struct subreader {    subtitle * (*read)(stream_t *st,subtitle *dest);    void       (*post)(subtitle *dest);    const RMascii *name;};sub_data* sub_read_file (RMascii *filename, RMreal fps) {    stream_t* fd;    RMint32 n_max, i;    subtitle *first, *sub, *return_sub;    sub_data *subt_data;    RMint32 uses_time = 0, sub_num = 0, sub_errs = 0;    struct subreader sr[]=    {	    { sub_read_line_microdvd, NULL, "microdvd" },	    { sub_read_line_subrip, NULL, "subrip" },	    { sub_read_line_subviewer, NULL, "subviewer" },	    { sub_read_line_sami, NULL, "sami" },	    { sub_read_line_vplayer, NULL, "vplayer" },	    { sub_read_line_rt, NULL, "rt" },	    { sub_read_line_ssa, sub_pp_ssa, "ssa" },	    { sub_read_line_pjs, NULL, "pjs" },	    { sub_read_line_aqt, NULL, "aqt" },	    { sub_read_line_subviewer2, NULL, "subviewer 2.0" },	    { sub_read_line_subrip09, NULL, "subrip 0.9" },	    { sub_read_line_jacosub, NULL, "jacosub" },	    { sub_read_line_mpl2, NULL, "mpl2" }    };    struct subreader *srp;    if(filename==NULL) return NULL; //qnx segfault    i = 0;    fd=open_stream_gfx (filename, NULL, &i); if (!fd) return NULL;    sub_format=sub_autodetect (fd, &uses_time);    mpsub_multiplier = (uses_time ? 100.0 : 1.0);    if (sub_format==SUB_INVALID) {free_stream(fd); return NULL;}    srp=sr+sub_format;    stream_reset(fd);    stream_seek(fd,0);    sub_num=0;n_max=512;    first=MALLOC(n_max*sizeof(subtitle));    if(!first){	    return NULL;    }    while(1){        if(sub_num>=n_max){        	subtitle* _t;  //      	RMuint32 _g = n_max;  //      	RMuint32 g, h;            n_max+=32;            _t = MALLOC(n_max*sizeof(subtitle)); //           printf("sub num: %d", (RMuint16) sub_num);            RMMemcpy(_t, first, (sub_num) * sizeof(subtitle));  //          for(g = 0; g < (RMuint32)(sub_num - 1); g++)   //         	for(h = 0; h < first[g].lines; h ++)    //        		RFREE(first[g].text[h]);            RFREE(first);            first = _t;            _t = NULL;// //           first=realloc(first,n_max*sizeof(subtitle));        }		sub = &first[sub_num];		RMMemset(sub, '\0', sizeof(subtitle));//		sub = NULL;	   	sub=srp->read(fd,sub);    	if(!sub) break;   // EOF		if ( sub == ERR )		{		//	printf("error\n");    		if ( first ) RFREE(first);	 		return NULL;	 	}        	// Apply any post processing that needs recoding first        if ((sub!=ERR) && !sub_no_text_pp && srp->post) srp->post(sub);        if(sub==ERR) ++sub_errs; else ++sub_num; // Error vs. Valid    }    free_stream(fd);//    printf ("SUB: Subtitle format %s time.\n", uses_time?"uses":"doesn't use");    if(sub_num<=0){	RFREE(first);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久aⅴ国产欧美74aaa| 日韩高清欧美激情| 欧美一区二区三区啪啪| 欧美日韩一卡二卡| 欧美乱熟臀69xxxxxx| 91久久精品网| 在线观看精品一区| 欧美日韩精品三区| 欧美精品日韩一本| 欧美电影影音先锋| 欧美变态口味重另类| 2021国产精品久久精品 | 国产精品国产三级国产普通话蜜臀 | 国产成人免费视频网站| 丁香婷婷深情五月亚洲| 91亚洲精品久久久蜜桃| 91福利在线免费观看| 欧美另类z0zxhd电影| 日韩三级电影网址| 日本一区二区免费在线| 亚洲免费观看在线视频| 天堂va蜜桃一区二区三区| 久久精品国产色蜜蜜麻豆| 国产高清精品在线| 一本大道久久a久久精二百| 欧美系列日韩一区| 久久在线观看免费| 亚洲精品国产a| 麻豆视频一区二区| av激情成人网| 日韩视频在线永久播放| 国产精品久久久久久久久免费桃花 | 亚洲人成影院在线观看| 午夜一区二区三区视频| 国产福利91精品一区二区三区| av一区二区三区在线| 欧美一区二区三区四区在线观看| 国产欧美日产一区| 婷婷激情综合网| 97成人超碰视| 精品国产第一区二区三区观看体验| 亚洲欧洲成人精品av97| 捆绑调教美女网站视频一区| 99久久精品免费看| 久久一日本道色综合| 亚洲一区二区三区在线播放| 国产98色在线|日韩| 欧美福利一区二区| 亚洲免费在线电影| 国产suv精品一区二区6| 555夜色666亚洲国产免| 亚洲免费在线看| 国产91富婆露脸刺激对白| 欧美一级二级三级乱码| 亚洲国产精品久久一线不卡| 91一区二区三区在线观看| 久久久久久久久久电影| 九九久久精品视频| 欧美精品xxxxbbbb| 亚洲一区在线观看网站| 不卡的看片网站| 国产蜜臀97一区二区三区| 加勒比av一区二区| 欧美大白屁股肥臀xxxxxx| 亚洲一区中文日韩| 欧美亚洲国产一区在线观看网站 | 亚洲综合在线视频| 91免费观看在线| 国产精品国产三级国产普通话蜜臀| 久久精品理论片| 欧美成人精品高清在线播放| 日韩高清国产一区在线| 欧美一级久久久| 久久精品久久99精品久久| 日韩一本二本av| 日本成人中文字幕在线视频| 日韩视频123| 韩国理伦片一区二区三区在线播放| 欧美一级欧美一级在线播放| 日本美女一区二区| 欧美成人欧美edvon| 国产乱码精品一区二区三区五月婷| 精品少妇一区二区三区| 国产乱码精品一区二区三区av| 久久久亚洲国产美女国产盗摄| 国产一区二区三区四区五区入口 | 久久电影网电视剧免费观看| 日韩一区二区免费在线观看| 久久精品99久久久| 中文字幕va一区二区三区| 91网上在线视频| 午夜视黄欧洲亚洲| 欧美一区二区在线播放| 九一久久久久久| 亚洲天堂久久久久久久| 欧美日韩一区三区| 精品一区二区免费视频| 中文字幕一区二区三区四区不卡| 色婷婷久久一区二区三区麻豆| 亚洲一区二区三区在线| 精品国精品自拍自在线| 不卡的av在线播放| 日韩av电影免费观看高清完整版 | 国产精品免费视频观看| 色又黄又爽网站www久久| 婷婷久久综合九色综合伊人色| 精品国产免费人成电影在线观看四季| 成人综合婷婷国产精品久久免费| 亚洲精品福利视频网站| 日韩欧美第一区| 色综合久久中文字幕综合网 | 国产精品一区二区三区四区| 成人欧美一区二区三区| 欧美日韩高清不卡| 国产1区2区3区精品美女| 亚洲国产精品久久不卡毛片 | 精品日韩在线观看| 欧美性欧美巨大黑白大战| 国产美女精品在线| 亚洲成人动漫精品| 国产精品美女久久久久久久网站| 欧美精选午夜久久久乱码6080| 国产高清亚洲一区| 日韩成人午夜电影| 亚洲乱码中文字幕综合| 国产亲近乱来精品视频| 91精品国产黑色紧身裤美女| a在线播放不卡| 久久精品国产精品亚洲红杏| 亚洲精品自拍动漫在线| 国产女人水真多18毛片18精品视频 | 91精品国产色综合久久不卡电影| 国产69精品久久99不卡| 国产一区二区电影| 美女视频一区在线观看| 亚洲综合偷拍欧美一区色| 亚洲欧美在线aaa| 久久久久久久久久久99999| 日韩欧美专区在线| 欧美日韩高清一区二区不卡| 色婷婷综合久久久久中文一区二区| 国产酒店精品激情| 极品尤物av久久免费看| 日韩黄色小视频| 日本一不卡视频| 日韩福利视频网| 亚洲电影欧美电影有声小说| 亚洲综合视频在线观看| 亚洲高清视频中文字幕| 亚洲一二三级电影| 午夜日韩在线电影| 日韩影院免费视频| 日本欧美在线看| 精品一区二区三区香蕉蜜桃| 青草国产精品久久久久久| 舔着乳尖日韩一区| 蜜臀精品一区二区三区在线观看| 日日欢夜夜爽一区| 久久精品999| 韩国女主播一区| 成人一区在线看| 在线亚洲一区二区| 欧美日韩综合不卡| 91精品综合久久久久久| 精品少妇一区二区三区视频免付费 | 国产一区不卡精品| 成人精品免费视频| 91免费视频观看| 欧美日韩国产综合一区二区三区 | 国产一区二区影院| 成人中文字幕合集| 在线免费观看视频一区| 7777精品伊人久久久大香线蕉经典版下载 | 在线视频亚洲一区| 在线观看视频91| 日韩一级高清毛片| 欧美国产精品一区二区| 亚洲综合色婷婷| 国产综合色精品一区二区三区| 成人动漫中文字幕| 欧美日韩国产三级| 久久久久久久综合色一本| 一区二区在线看| 久久99精品国产.久久久久久| 成人性视频免费网站| 色综合天天综合网国产成人综合天 | 日韩网站在线看片你懂的| 久久精品一区二区三区四区| 国产精品免费视频一区| 日韩激情av在线| 99国产欧美久久久精品| 日韩一区二区免费在线电影| 国产精品久久久久久久第一福利| 亚洲一区二区三区免费视频| 韩国毛片一区二区三区| 欧美日本韩国一区| 中文字幕亚洲成人| 韩国欧美国产一区| 欧美精品在线观看播放| 《视频一区视频二区|