[Speex-dev] converting 16-bit samples in LPSTR to short

Peter Gien peterg at podglo.com
Sat Sep 16 07:48:19 PDT 2006


I am capturing 16 bit mono sound samples using some Win32 API function
calls. These function calls return the sound samples in an array of
characters. My assumption is that this array of characters represents pairs
of bytes that make up a short integer.

I'm using the following code to convert the samples:

LPTSTR *lpSaveBuffer;
     BYTE a = lpSaveBuffer[2*j];    // left byte
     BYTE b = lpSaveBuffer[2*j + 1]; // right byte
     short sample =  (a << 8) | (b & 0xff);

I'm getting garbage as a result of this conversion. Any help would be

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.xiph.org/pipermail/speex-dev/attachments/20060916/1ce9e9cd/attachment.htm

More information about the Speex-dev mailing list