Mercurial > mplayer.hg
changeset 8618:a879b231b7e3
This patch adds a call to subcp_recode1(), so this subtitles too are
processed through iconv().
Kresimir Kukulj madmax@iskon.hr
author | arpi |
---|---|
date | Sat, 28 Dec 2002 15:19:41 +0000 |
parents | 6ffbe7608013 |
children | 544bb92b62e5 |
files | libmpdemux/demux_ogg.c subreader.c subreader.h |
diffstat | 3 files changed, 35 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/libmpdemux/demux_ogg.c Sat Dec 28 15:03:23 2002 +0000 +++ b/libmpdemux/demux_ogg.c Sat Dec 28 15:19:41 2002 +0000 @@ -231,6 +231,9 @@ mp_msg(MSGT_DEMUX,MSGL_DBG2,"ogg sub lines: %d first: '%s'\n", ogg_sub.lines, ogg_sub.text[0]); +#ifdef USE_ICONV + subcp_recode1(&ogg_sub); +#endif vo_sub = &ogg_sub; vo_osd_changed(OSDTYPE_SUBTITLE); } @@ -465,6 +468,10 @@ sh_audio_t* sh_a; sh_video_t* sh_v; +#ifdef USE_ICONV + subcp_open(); +#endif + s = demuxer->stream; ogg_d = (ogg_demuxer_t*)calloc(1,sizeof(ogg_demuxer_t)); @@ -1006,6 +1013,10 @@ if(!ogg_d) return; +#ifdef USE_ICONV + subcp_close(); +#endif + if(ogg_d->subs) free(ogg_d->subs); if(ogg_d->syncpoints)
--- a/subreader.c Sat Dec 28 15:03:23 2002 +0000 +++ b/subreader.c Sat Dec 28 15:19:41 2002 +0000 @@ -964,6 +964,29 @@ return sub; } +// for demux_ogg.c: +subtitle* subcp_recode1 (subtitle *sub) +{ + int l=sub->lines; + size_t ileft, oleft; + char *op, *ip; + + while (l){ + ip = icbuffer; + op = sub->text[--l]; + strcpy(ip, op); + ileft = strlen(ip); + oleft = ICBUFFSIZE - 1; + + if (iconv(icdsc, &ip, &ileft, + &op, &oleft) == (size_t)(-1)) { + mp_msg(MSGT_SUBREADER,MSGL_WARN,"SUB: error recoding line.\n"); + return sub; + } + *op='\0' ; + } + return sub; +} #endif static void adjust_subs_time(subtitle* sub, float subtime, float fps, int block){
--- a/subreader.h Sat Dec 28 15:03:23 2002 +0000 +++ b/subreader.h Sat Dec 28 15:19:41 2002 +0000 @@ -38,6 +38,7 @@ } subtitle; subtitle* sub_read_file (char *filename, float pts); +subtitle* subcp_recode1 (subtitle *sub); char * sub_filename(char *path, char * fname); void list_sub_file(subtitle* subs); void dump_srt(subtitle* subs, float fps);