AMR开源解码时碰到的有关问题

AMR开源解码时碰到的问题
1.   AMR   fixed   和   AMR   Float-point有什么区别?  
      是不是Float-point能够解nb   fixed的音频?

2.   使用float-point和fixed两种版本的解码器在解AMR时,解出来的数据听起来象录音的那种声音,是不是解码不正确?  
      我使用ffdshow解码3GP中的amr发现解码出来的PCM与使用ANSI-C那个解码出来的PCM数据不相同,   ffdshow的声音正常,   ANSI-C那个就是象录音的那种声音.
     
    AMR解码出来的PCM数据的WAVEFORMATEX   应该是
wave.wFormatTag   =   1;
wave.nSamplesPerSec   =   8000;
wave.nAvgBytesPerSec   =   32000;
wave.nBlockAlign   =   4;
wave.nChannels   =   2;
wave.cbSize   =   0;
wave.wBitsPerSample   =   16;  

请高手分析一下解码出来为什么声音异常?

------解决方案--------------------
For amr_nb should be:

wave.wFormatTag = WAVE_FORMAT_PCM;
wave.nSamplesPerSec = 8000;
wave.nAvgBytesPerSec = 16000;
wave.nBlockAlign = 2;
wave.nChannels = 1;
wave.cbSize = 0;
wave.wBitsPerSample = 16;

------解决方案--------------------
我们在S60平台上做AMR流媒体播放时,就使用了3GPP官方提供的amr解码代码。

3GPP AMR Floating-point Speech Codec