<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 5.50.4134.600" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Hi</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Please acknowledge this message as I am not sure if
your organizations still exist.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>On trying to integrate your 3 formats into an app I
find that the position of the start of each format ID differs.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Both "vorbis" and "fLaC" start at char 29 (the 30th
char in the file) and "speex " starts at char 28 (the 29th char in
the file).</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Speex appears to correlate with the documents
supplied and the other two not.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Speex</FONT></DIV>
<DIV><FONT face=Arial size=2>----------</FONT></DIV>
<DIV><FONT face=Arial size=2>In the file at
\vorbis-tools-1.0.1\ogg123\speex_format.c I find the following</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>int speex_can_decode (data_source_t
*source)<BR>{<BR> char buf[36];<BR> int len;</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2> len = source->transport->peek(source,
buf, sizeof(char), 36);</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2> if (len >= 32 && memcmp(buf,
"OggS", 4) == 0<BR> && memcmp(buf+28,
"Speex ", 8) == 0) /* 3 trailing spaces */<BR>
return 1;<BR> else<BR> return 0;<BR>}<BR></FONT></DIV>
<DIV><FONT face=Arial size=2>Flac</FONT></DIV>
<DIV><FONT face=Arial size=2>-------</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>In the file at
\vorbis-tools-1.0.1\oggenc\flac.c I find the following</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2><BR>int oggflac_id(unsigned char *buf, int
len)<BR>{<BR> if (len < 32) return 0;</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2> return memcmp(buf, "OggS", 4) == 0 &&
flac_id(buf+28, len - 28);<BR>}<BR></FONT></DIV>
<DIV><FONT face=Arial size=2>Summary</FONT></DIV>
<DIV><FONT face=Arial size=2>--------------</FONT></DIV>
<DIV><FONT face=Arial size=2>It looks as if the format of the ogg header has
changed and the documentation has not, and this info has not been passed onto
the speex folks.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>On trying to decode an empty .spx file using
speexdec.exe I get an op-system generated error "This program has
performed an illegal operation and has been closed
down"". This I think is caused by trying to read beyond the
EOF. </FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Speex also does not appear to set up the exit
code.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Is there a "totally-silent" option for
speexenc.exe and speexdec.exe?</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>I would appreciate it if I could get an
early reply to e-mail that I sent a few days ago.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Regards</FONT></DIV>
<DIV><FONT face=Arial size=2> </DIV></FONT></BODY></HTML>