Compactando dados PCM

Estou usando as funções WinAPI - Wave para criar um programa de gravação que grava o microfone por X segundos. Pesquisei um pouco na rede e descobri que os dados do PCM são muito grandes e será um problema enviá-los por soquetes ...

Como posso compactá-lo para algo menor? Qualquer maneira simples / "barata"?

Eu também notei que, quando declaro o formato usando as funções da API Wave, estou usando este código:

WAVEFORMATEX pFormat;
pFormat.wFormatTag= WAVE_FORMAT_PCM;     // simple, uncompressed format
pFormat.nChannels=1;                    //  1=mono, 2=stereo
pFormat.nSamplesPerSec=sampleRate;      // 44100
pFormat.nAvgBytesPerSec=sampleRate*2;   // = nSamplesPerSec * n.Channels * wBitsPerSample/8
pFormat.nBlockAlign=2;                  // = n.Channels * wBitsPerSample/8
pFormat.wBitsPerSample=16;              //  16 for high quality, 8 for telephone-grade
pFormat.cbSize=0;

Como você pode ver,pFormat.wFormatTag= WAVE_FORMAT_PCM; talvez eu possa inserir em vez deWAVE_FORMAT_PCM outra coisa, então será compactada imediatamente? Eu verifiquei o MSDN para outros valores, embora nenhum deles funcione para mim no meu Visual Studio ...

Então o que eu posso fazer?

Obrigado!

questionAnswers(3)

yourAnswerToTheQuestion