It seems there's no such thing as stdint.h on FreeBSD.
A solution is to include sys/types.h instead (maybe in #ifdefs FreeBSD?):
mpeg3io.h:6: stdint.h: No such file or directory
mpeg3protos.h:4: stdint.h: No such file or directory
The compilation fails for mpeg3io.c, because gcc doesn't like the
unsigned int result = ... (88)
unsigned char result = (94).
If you declare 'result' in the usual way, i.e. just
unsigned int result;
unsigned char result;
compilation will proceed up until CSS, which tries to include linux/cdrom.h. IANAE and can't fix this, but maybe you could just use libdvdread or libdvdcss?
ifo.h fails for some reason, too.
mpeg3io.c includes mntent.h (a glibc-ism), for which we find the following nice comments on Google:
"It appears that the authors sucessfully choose the least portable of the three available APIs."
It looks like a dead end for me here...
Could please fix the things mentioned above which can be fixed by #ifdefs so other people can give it a try?