sean darcy
2004-Aug-06 15:02 UTC
[speex-dev] openh323 conflict; can speex_encode take short?
openh323 speexcodec.cxx has:
BOOL SpeexCodec::EncodeFrame(BYTE * buffer, unsigned & length)
{
// convert PCM to float
float floatData[SAMPLES_PER_FRAME];
PINDEX i;
for (i = 0; i < SAMPLES_PER_FRAME; i++)
floatData[i] = sampleBuffer[i];
// encode PCM data in sampleBuffer to buffer
speex_bits_reset(bits);
speex_encode(coder_state, floatData, bits);
.................................
which does not compile on gcc-3.3.3:
peexcodec.cxx: In member function `virtual BOOL
SpeexCodec::EncodeFrame(BYTE*,
unsigned int&)':
speexcodec.cxx:410: error: cannot convert `float*' to `short int*' for
argument
`2' to `int speex_encode(void*, short int*, SpeexBits*)'
<p>I think this due to the changes from 1.0 to 1..1 ( I'm using
1.1.4).
If I change:
float floatData[SAMPLES_PER_FRAME];
to
hort floatData[SAMPLES_PER_FRAME];
it compiles.
There's an analogous call to speex_decode().
Is this just a stupid hack, or is this what Speex really wants?
thanks
sean
_________________________________________________________________
Check out MSN PC Safety & Security to help ensure your PC is protected and
safe. http://specials.msn.com/msn/security.asp
--- >8 ----
List archives: http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to
'speex-dev-request@xiph.org'
containing only the word 'unsubscribe' in the body. No subject is
needed.
Unsubscribe messages sent to the list will be ignored/filtered.
Jean-Marc Valin
2004-Aug-06 15:02 UTC
[speex-dev] openh323 conflict; can speex_encode take short?
The speex_decode function changed in 1.1.x and now takes shorts instead
of floats. However, since openh323 ships with it's own version of Speex,
I don't see why you're affected (are you trying to override the speex
code provided in openh323?). One way or another, you should be fine with
Speex 1.0.3.
Jean-Marc
Le sam 03/04/2004 à 20:04, sean darcy a écrit :> openh323 speexcodec.cxx has:
>
> BOOL SpeexCodec::EncodeFrame(BYTE * buffer, unsigned & length)
> {
> // convert PCM to float
> float floatData[SAMPLES_PER_FRAME];
> PINDEX i;
> for (i = 0; i < SAMPLES_PER_FRAME; i++)
> floatData[i] = sampleBuffer[i];
>
> // encode PCM data in sampleBuffer to buffer
> speex_bits_reset(bits);
> speex_encode(coder_state, floatData, bits);
> .................................
>
> which does not compile on gcc-3.3.3:
>
> speexcodec.cxx: In member function `virtual BOOL
> SpeexCodec::EncodeFrame(BYTE*,
> unsigned int&)':
> speexcodec.cxx:410: error: cannot convert `float*' to `short int*'
for
> argument
> `2' to `int speex_encode(void*, short int*, SpeexBits*)'
>
>
> I think this due to the changes from 1.0 to 1..1 ( I'm using 1.1.4).
>
> If I change:
>
> float floatData[SAMPLES_PER_FRAME];
>
> to
>
> short floatData[SAMPLES_PER_FRAME];
>
> it compiles.
>
> There's an analogous call to speex_decode().
>
> Is this just a stupid hack, or is this what Speex really wants?
>
> thanks
> sean
>
> _________________________________________________________________
> Check out MSN PC Safety & Security to help ensure your PC is protected
and
> safe. http://specials.msn.com/msn/security.asp
>
> --- >8 ----
> List archives: http://www.xiph.org/archives/
> Ogg project homepage: http://www.xiph.org/ogg/
> To unsubscribe from this list, send a message to
'speex-dev-request@xiph.org'
> containing only the word 'unsubscribe' in the body. No subject is
needed.
> Unsubscribe messages sent to the list will be ignored/filtered.
--
Jean-Marc Valin
http://www.xiph.org/~jm/
LABORIUS
Université de Sherbrooke, Québec, Canada
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 190 bytes
Desc: Ceci est une partie de message numériquement signée.
Url :
http://lists.xiph.org/pipermail/speex-dev/attachments/20040403/4a99d171/signature-0001.pgp