[MPlayer-users] iconv.h used in font_load_ft.c though USE_ICONV undefined

Stefan Gürtler Stefan.guertler at stud.tum.de
Thu Feb 5 21:46:51 CET 2004


Hi

Once again i have a problem with an header file while compiling MPlayer
using MinGW.
This time there is the file iconv.h missing while compiling font_load_ft.c

font_load_ft.c:21:19: iconv.h: No such file or directory
font_load_ft.c:736: error: parse error before '*' token
font_load_ft.c: In function `decode_char':
font_load_ft.c:738: error: `c' undeclared (first use in this function)
font_load_ft.c:738: error: (Each undeclared identifier is reported only once
font_load_ft.c:738: error: for each function it appears in.)
font_load_ft.c:743: error: `cd' undeclared (first use in this function)
font_load_ft.c: In function `prepare_charset':
font_load_ft.c:760: error: `iconv_t' undeclared (first use in this function)
font_load_ft.c:760: error: parse error before "cd"
font_load_ft.c:763: error: `cd' undeclared (first use in this function)
make[1]: *** [font_load_ft.o] Error 1

In libvo/font_load_ft.c, line 21:

#include <iconv.h>
No "#ifdef USE_ICONV" enclosing it.

Above it in line 14 there is an
#ifdef HAVE_FREETYPE
and its #endif is at the end of the file.

Does this falsely imply that ther is an libiconv installed on the system?
I had a look at configure, but i could no see any checks for libiconv in the
HAVE_FREETYPE chapter.

Later on in font_load_ft.c you will find the function decode_char:

/* decode from 'encoding' to unicode */
static FT_ULong decode_char(iconv_t *cd, char c) {
    char *inbuf = &c;
    char *outbuf = (char*)&o;
    int inbytesleft = 1;
    int outbytesleft = sizeof(FT_ULong);

    iconv(*cd, &inbuf, &inbytesleft, &outbuf, &outbytesleft);

    /* convert unicode BigEndian -> MachineEndian */
    o = be2me_32(o);

    // if (count==-1) o = 0; // not OK, at least my iconv() returns E2BIG
for all
    if (outbytesleft!=0) o = 0;

    /* we don't want control characters */
    if (o>=0x7f && o<0xa0) o = 0;
    return o;
}
Here the type iconv_t which is defined in iconv.h is used
The same goes for function
static int prepare_charset(char *charmap, char *encoding, FT_ULong *charset,
FT_
ULong *charcodes)

I had a look at the Revision 1.12 of font_load_ft.c using the CVS-Web
interface. There everything concerning iconv.h looks the same for me. Now i
am puzzled why i used to be able tu compile mplayer before.

Some information on libiconv
http://www.gnu.org/software/libiconv/#TOCdownloading


Configuration:
Stefan at J5U7R1 ~/main
$
./configure --prefix=/opt/mplayer_real10 --with-win32libdir=./codecs --enabl
e-real --with-reallibdir=./codecs


config.h states:
#undef USE_ICONV

CVS checkout from February 5th, 2004, both mplayer and libavcodec


Yours
Stefan




More information about the MPlayer-users mailing list