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!