Mercurial > mplayer.hg
comparison subreader.c @ 9143:6af323788366
maybe fix ogm vs. iconv
author | arpi |
---|---|
date | Tue, 28 Jan 2003 18:28:09 +0000 |
parents | 7a06258271d6 |
children | ab8238290141 |
comparison
equal
deleted
inserted
replaced
9142:a540a2632da1 | 9143:6af323788366 |
---|---|
932 | 932 |
933 void subcp_close (void) | 933 void subcp_close (void) |
934 { | 934 { |
935 if (icdsc != (iconv_t)(-1)){ | 935 if (icdsc != (iconv_t)(-1)){ |
936 (void) iconv_close (icdsc); | 936 (void) iconv_close (icdsc); |
937 icdsc = (iconv_t)(-1); | |
937 sub_utf8=sub_utf8_prev; | 938 sub_utf8=sub_utf8_prev; |
938 mp_msg(MSGT_SUBREADER,MSGL_V,"SUB: closed iconv descriptor.\n"); | 939 mp_msg(MSGT_SUBREADER,MSGL_V,"SUB: closed iconv descriptor.\n"); |
939 } | 940 } |
940 } | 941 } |
941 | 942 |
981 // for demux_ogg.c: | 982 // for demux_ogg.c: |
982 subtitle* subcp_recode1 (subtitle *sub) | 983 subtitle* subcp_recode1 (subtitle *sub) |
983 { | 984 { |
984 int l=sub->lines; | 985 int l=sub->lines; |
985 size_t ileft, oleft; | 986 size_t ileft, oleft; |
986 char *op, *ip; | 987 |
988 if(icdsc == (iconv_t)(-1)) return sub; | |
987 | 989 |
988 while (l){ | 990 while (l){ |
989 ip = icbuffer; | 991 char *ip = icbuffer; |
990 op = sub->text[--l]; | 992 char *op = sub->text[--l]; |
991 strcpy(ip, op); | 993 strcpy(ip, op); |
992 ileft = strlen(ip); | 994 ileft = strlen(ip); |
993 oleft = ICBUFFSIZE - 1; | 995 oleft = ICBUFFSIZE - 1; |
994 | 996 |
995 if (iconv(icdsc, &ip, &ileft, | 997 if (iconv(icdsc, &ip, &ileft, |
996 &op, &oleft) == (size_t)(-1)) { | 998 &op, &oleft) == (size_t)(-1)) { |
997 mp_msg(MSGT_SUBREADER,MSGL_WARN,"SUB: error recoding line (2).\n"); | 999 mp_msg(MSGT_SUBREADER,MSGL_V,"SUB: error recoding line (2).\n"); |
998 return sub; | 1000 return sub; |
999 } | 1001 } |
1000 *op='\0' ; | 1002 *op='\0' ; |
1001 } | 1003 } |
1002 return sub; | 1004 return sub; |